- Do not use string literals for job class names. Use `class.name` instead.
- Rename `ApplicationJob#good_job_scheduled_at` to `ApplicationJob#job_scheduled_at` to be backend agnostic.
- update queries in bin/check-worker-liveness to use good_jobs table
- Set good_job config options through appropriate OpenProject::Configuration
- Remove delayed_jobs table.
- Update health_check docs.
With the proposed changes the time required to run `./bin/compose setup`
is being reduced from ~18 minutes down to ~7 minutes on my machine.
In addition a workaround is applied to reduce the size of the images.
== Changes
=== Speed-Up `bundle install`
The time spent withing `bundle install` takes a significant amount time
during the `./bin/compose setup`.
We could make use of two improvements, which both allows us to
utitlize multiple CPU cures:
* Make use of the bundle `--jobs` argument
* Make use of the lesser known/used `MAKE` environment variable
A significant amount of time spent during `bundle install` is actually
compiling C-extensions, that's why the usage of the `MAKE` variable will
drastically improve performence.
=== `useradd --no-log-init`
Unfortunately there is a nasty bug when running `useradd` for a huge
`uid`, which could result in excessive image sizes. See attached links
for more information.
=== BuildKit
BuildKit is the default builder toolkit for Docker on Windows and
DockerDesktop on Macs. Using BuildKit will greatly improve performance
when building docker images.
== Links
=== Speed-Up `bundle install`
* [One Weird Trick That Will Speed Up Your Bundle Install](https://build.betterup.com/one-weird-trick-that-will-speed-up-your-bundle-install/)
=== BuildKit
* [Build images with BuildKit](https://docs.docker.com/develop/develop-images/build_enhancements/)
* [Faster builds in Docker Compose 1.25.1 thanks to BuildKit Support](https://www.docker.com/blog/faster-builds-in-compose-thanks-to-buildkit-support/)
=== `useradd --no-log-init`
* Best practices for writing Dockerfiles: [User](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user)
* golang/co: [archive/tar: add support for writing tar containing sparse files](https://github.com/golang/go/issues/13548)
* docker dev and test setup fixes
* added missing >
* include test instructions in quickstart
* fixed typo
Co-authored-by: Philipp Tessenow <tessi@bitcrowd.net>
* removed obsolete comment
Co-authored-by: Philipp Tessenow <tessi@bitcrowd.net>
* amendments
Co-authored-by: Benjamin Bädorf <b.baedorf@openproject.com>
Co-authored-by: Philipp Tessenow <tessi@bitcrowd.net>
* replace very last cuke with spec
* remove cuke support files
* remove cucumber gems
* remove traces of cucumber
* remove no longer required route
* forcefully clear parallel_test features task
* attempt removal of binstub
* attempt to stabilize spec
* Move development docker-compose file to the main directory
This requires us to move some other files around, like the pullpreview and example docker-compose file for production
setups. This commit also does some housekeeping, like removing some old files and deduping configuration.
* Updated to selenium grid
* Fix in-Docker Selenium tests
The Selenium tests now run inside a Docker Chrome Container. Backwards compatability with non-docker setups is not
guaranteed, though it should not be hard to implement with a couple of small fixes.
* Updated docker development documentation
* Improved test timings, changed the documentation
* Updated docker testing again
* Run npm in the frontend directory
* Really run npm in the frontend directory
* Also run npm in frontend when setting up travis cache
* Change directory for one command only
* Change default test driver name
* CI test change fixes
* Fixed syntax error
* Added dev check
* Trying to fix firefox resizing
* Trying to get tests running
* Stop resizing firefox
* Fixed apple icon spec
* fix host in url helpers for omniauth spec
* Fix omniauth specs
* Fix docs
* Small fixes to docker tests
* Added package.json back in
* Change env variables
Co-authored-by: Markus Kahl <machisuji@gmail.com>
There are now separate containers for testing purposes, and the frontend container is a node-only image. Containers run
with a user that has the current user id and gid, making sure that any files that are installed by bundler or npm are
user-owned.
Selenium tests can be ran, but not all of them work yet.
* ove reporting and reporting_engine js to frontend page
* Replace webhook assets javascript
* Add path augment service to dynamically load scripts
* Remove JS-Files that are not used/not needed any more
* Include AugmentingModule correctly
* Remove special handling for checkbox selection which is outdated and two jquery libs that are not used any more
* Load scripts dynamically that are not needed globally
* Move plugin JS to frontend
* Move toggable fieldsets to global listeners
* Move top-menu to global listeners and convert to TS
* Move action_menu to frontend and port to TS
* Move settings listener to frontend
* Remove global js assets that were not used anyway
* Move date range to timelog dynamic script where it's still used until removed
* Move colors to global-listeners and port to TS
* Replace tooltip with simple form instructions on the one place used
Tooltips were only used at the one place in our application, when changing a users password.
We can simply remove it there and use a modern solution the next time we need a tooltip
* Move danger zone validation to frontend and port to TS
* Move colorcontrast to backlogs vendor where it's used now
* Remove contents of application.js.erb
* Move project and user scripts to dynamically loaded
* Move onboarding tour to dynamically loaded
* Use correct syntax for jQuery so that $ is known keyword within this function
* Fix onboarding tour
* Fix onboarding tour for scrum tour
* Fix specs after moving JS
* Remove application.js.erb
* Move locales and ckeditor to the frontend to dynamically load
* Remove bundles caches
These are no longer being used since angular cli
* Ensure locales are exported before angular
Co-authored-by: Henriette Darge <h.darge@openproject.com>