Skip to content

Full refactor of this repository #204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 171 commits into from
Closed

Conversation

Kreyren
Copy link
Contributor

@Kreyren Kreyren commented Apr 15, 2020

Development moved on Kreyren#1


DO_NOT_MERGE: Work in progress..

MAINTAINERS

Review once all checks are completed

Required assistance

  • The current build of environments takes longer that i would like -> Theia should be able to install dependencies based on files present in the repository which it should do already? If so provide more info for implementation

CONTRIBUTORS

appending the last layer will be handled explicitely by me since this is a close-source code set for security.

Checklist (later used as changelog)

  • New "Gitpod docker cores" - Gitpod users has now the option of using gitpod/<core> dockerimages that set the mandatory minimums for specified dockerimage
    • Debian
    • Ubuntu
    • Gentoo
    • Exherbo-gnu
    • Exherbo-musl
    • Archlinux
    • Fedora
  • Support for Debian
    • htop
    • Openbox (Used in theia desktop)
    • Full programming language support
      • Rust
      • Java
      • Dotnet
      • Python
      • PHP
      • Nginx
      • Go
      • Node.js
      • Ruby
      • Haskell
      • Emmet
      • Elm
      • Elixir
      • Arduino
      • Free Pascal
      • Julia
      • Crystal
      • Nim
    • Editors
      • emacs
      • vim
      • nano
    • Shells
      • Bash
      • Ion
      • Powershell
      • Busybox sh
    • Linting tools
      • Shellcheck
      • Pylint
      • Hadolint
      • valgrind
      • cppcheck
      • markdownlint
    • Utilities
      • Homebrew
      • zip
      • unzip
      • tar
      • Packages for building (build-essentials)
      • less
      • git
      • mirror-grapper implemented
      • Docker (for development) -- See Docker support gitpod#52
  • Support for Ubuntu
    • htop
    • Openbox (Used in theia desktop)
    • Full programming language support
      • Rust
      • Java
      • Dotnet
      • Python
      • PHP
      • Nginx
      • Go
      • Node.js
      • Ruby
      • Haskell
      • Emmet
      • Elm
      • Elixir
      • Arduino
      • Free Pascal
      • Julia
      • Crystal
      • Nim
    • Editors
      • emacs
      • vim
      • nano
    • Shells
      • Bash
      • Ion
      • Powershell
      • Busybox sh
    • Linting tools
      • Shellcheck
      • Pylint
      • Hadolint
      • valgrind
      • cppcheck
      • markdownlint
    • Utilities
      • Homebrew
      • zip
      • unzip
      • tar
      • Packages for building (build-essentials)
      • less
      • git
      • Docker (for development) -- See Docker support gitpod#52
  • Support for Exherbo
    • exherbo-gnu
    • htop
    • Openbox (Used in theia desktop)
    • Full programming language support
      • Rust
      • Java
      • Dotnet
      • Python
      • PHP
      • Nginx
      • Go
      • Node.js
      • Ruby
      • Haskell
      • Emmet
      • Elm
      • Elixir
      • Arduino
      • Free Pascal
      • Julia
      • Crystal
      • Nim
    • Editors
      • emacs
      • vim
      • nano
    • Shells
      • Bash
      • Ion
      • Powershell
      • Busybox sh
    • Linting tools
      • Shellcheck
      • Pylint
      • Hadolint
      • valgrind
      • cppcheck
      • markdownlint
    • Utilities
      • Homebrew
      • zip
      • unzip
      • tar
      • Packages for building (build-essentials)
      • less
      • git
      • Docker (for development) -- See Docker support gitpod#52
    • exherbo-musl
    • htop
    • Openbox (Used in theia desktop)
    • Full programming language support
      • Rust
      • Java
      • Dotnet
      • Python
      • PHP
      • Nginx
      • Go
      • Node.js
      • Ruby
      • Haskell
      • Emmet
      • Elm
      • Elixir
      • Arduino
      • Free Pascal
      • Julia
      • Crystal
      • Nim
    • Editors
      • emacs
      • vim
      • nano
    • Shells
      • Bash
      • Ion
      • Powershell
      • Busybox sh
    • Linting tools
      • Shellcheck
      • Pylint
      • Hadolint
      • valgrind
      • cppcheck
      • markdownlint
    • Utilities
      • Homebrew
      • zip
      • unzip
      • tar
      • Packages for building (build-essentials)
      • less
      • git
      • Docker (for development) -- See Docker support gitpod#52
  • Support for Gentoo
    • htop
    • Openbox (Used in theia desktop)
    • Full programming language support
      • Rust
      • Java
      • Dotnet
      • Python
      • PHP
      • Nginx
      • Go
      • Node.js
      • Ruby
      • Haskell
      • Emmet
      • Elm
      • Elixir
      • Arduino
      • Free Pascal
      • Julia
      • Crystal
      • Nim
    • Editors
      • emacs
      • vim
      • nano
    • Shells
      • Bash
      • Ion
      • Powershell
      • Busybox sh
    • Linting tools
      • Shellcheck
      • Pylint
      • Hadolint
      • valgrind
      • cppcheck
      • markdownlint
    • Utilities
      • Homebrew
      • zip
      • unzip
      • tar
      • Packages for building (build-essentials)
      • less
      • git
      • Docker (for development) -- See Docker support gitpod#52
  • Support for Archlinux
    • htop
    • Openbox (Used in theia desktop)
    • Full programming language support
      • Rust
      • Java
      • Dotnet
      • Python
      • PHP
      • Nginx
      • Go
      • Node.js
      • Ruby
      • Haskell
      • Emmet
      • Elm
      • Elixir
      • Arduino
      • Free Pascal
      • Julia
      • Crystal
      • Nim
    • Editors
      • emacs
      • vim
      • nano
    • Shells
      • Bash
      • Ion
      • Powershell
      • Busybox sh
    • Linting tools
      • Shellcheck
      • Pylint
      • Hadolint
      • valgrind
      • cppcheck
      • markdownlint
    • Utilities
      • Homebrew
      • zip
      • unzip
      • tar
      • Packages for building (build-essentials)
      • less
      • git
      • Docker (for development) -- See Docker support gitpod#52
  • Support for other Linux distributions on demand
  • Support for other kernels using Vagrant (on hold, partially implemented and available for contrib)
  • Gitpod layers now support multiple distributions allowing them to be built
  • Various code quality fixes
    • CircleCI frontend has been rewritten to comply with code quality standard
    • Fixed code quality issues in gitpod-layer
  • New features
    • End-users can now use shell property in their gitpod.yml files to use following shells:
      • Bash
      • Shell
      • Redox's ion-shell
      • Powershell (Using powershell for linux)
    • End-users can now set PS1 per repository
    • End-users can now use package property in gitpod.yml to install various packages without the need to use dockerfile
  • End-users can now use apt without root
  • The terminal now speaks multiple languages based on LANG set by the end-user
  • Thealer! New package management system designed for gitpod
  • Repository management
    • CI
      • shell
      • bash
      • Assign labels based on file path
    • CD
      • Deploy docker images automatically to dockerhub (hub.docker.com)
      • Deploy valgrant files directly in vagrantup (vagrantup.com)
  • Vagrant frontend support
    • New "Gitpod Vagrant cores"
    • Debian
    • Ubuntu
    • Gentoo
    • Exherbo-gnu
    • Exherbo-musl
    • Archlinux
    • Fedora

References

This follows up on my contribution in gitpod-layer

Notes

Images can be tested using

gp preview yolo && make debian && git add * && git commit -m "$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c10)" && git push && gp preview https://gitpod.io/#https://github.com/gitpod-io/workspace-images/pull/204

I believe that this makes it much more efficient to maintain while providing more features

DO_NOT_MERGE: Dockerimages has to be tested to ensure that they fit abstract, since i don't the permission i can't ensure that it does.
@Kreyren
Copy link
Contributor Author

Kreyren commented Apr 15, 2020

NOTICE: The other "cores" does not have the abstract implemented yet, requesting more info for the abstract (See in-code docummentation in case i forgot something) and method to test the images to ensure that it works as expected.

@@ -1,4 +1,7 @@
#!/bin/sh

# FIXME(Kreyren): Oh gawd who wrote this, Abstract required for proper implementation
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also i need abstract for the CircleCI to fix code quality and hopefully improve the runtime.

@Kreyren Kreyren marked this pull request as draft April 15, 2020 16:39
@Kreyren
Copy link
Contributor Author

Kreyren commented Apr 15, 2020

This should also permanently resolve issues alike #204 and other security and maintainance issues associated with ubuntu.

@Kreyren
Copy link
Contributor Author

Kreyren commented Apr 15, 2020

Maitainers: No need to review i figured out reliable way to test this commit will ping you when it's finished~

Kreyren pushed a commit to gitpod-io/exheredpod that referenced this pull request Apr 16, 2020
@Kreyren
Copy link
Contributor Author

Kreyren commented Apr 16, 2020

NOTICE: Shellcheck 0.5.0 is not usable, see false trigger:

image

Code:

case "$DISTRO" in
	debian)
		case "$expectedShell" in
			bash) apt install -y bash-completion || die 1 "Unable to install bash-completion" ;;
			sh|dash) true ;; # nothing else to do here
			powershell)	apt install -y powershell || die 1 "Unable to install powershell" ;;
			*) die 255 "Unexpected shell in variable expectedShell with value '$expectedShell' has been provided to shellConfig script"
		esac
	;;
	*) die 255 "Unexpected distribution '$DISTRO' has been parsed in shellConfig script"
esac

@jankeromnes
Copy link
Contributor

Hi @Kreyren, please try to avoid sending as many commits to this Pull Request. Many of us receive a notification for every commit, and it also triggers a new full CircleCI workflow, which is quite resource-intensive.

@Kreyren
Copy link
Contributor Author

Kreyren commented Apr 18, 2020

Hi @Kreyren, please try to avoid sending as many commits to this Pull Request. Many of us receive a notification for every commit, and it also triggers a new full CircleCI workflow, which is quite resource-intensive.

I though that you won't be getting notifications for draft merge requests?

Noted, closing will reopen once finished.

@Kreyren Kreyren closed this Apr 18, 2020
@Kreyren
Copy link
Contributor Author

Kreyren commented Apr 18, 2020

Development moved on Kreyren#1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants