There is a `script/i18n/test_seed_all_locales` to test seeding in all
locales, or one locale.
A GitHub action tests all locales seeding every week on Sunday at 2 AM
UTC. It can also be triggered manually.
Example:
script/i18n/test_seed_all_locales # Seed all locales sequentially
script/i18n/test_seed_all_locales --list # Output available locales as JSON
script/i18n/test_seed_all_locales zh-CN # Seed a single locale
- validation script used unmaintained npm package
- switched to actively maintained package from same maintainer
- pipe full output to stdout
- bump node major version in development backend Dockerfile
- fix two api spec errors and two random warnings - boyscout, hell yeah
* Refactor Docker build/runtime stages for slimmer images
Split runtime and build dependencies into separate stages and build the app in a dedicated stage before runtime copy.
Add a slim prune stage that removes non-runtime source trees, source maps, duplicate enterprise source videos, module test/doc folders, and extra vendored gem artifacts.
This ensures bytes are removed before the final slim copy, so layer size actually decreases while keeping runtime behavior intact.
* Add target-specific Docker image validation in CI
Introduce script/ci/docker_validate_image.sh with validations for slim, slim-bim, and all-in-one images.
Checks include runtime binary presence/absence, plugin asset/module integrity, slim pruning expectations, BIM tooling, and all-in-one API startup/embedded services.
Update docker workflow to run the validator for every matrix target before push.
* fix
* Generate YAML-safe auto Hocuspocus secret
All-in-one startup auto-generates OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__SECRET in the entrypoint.
Environment overrides are parsed through YAML, so leading punctuation in the previous charset (e.g. %) could trigger Psych parsing errors and abort boot.
Restrict generated secret characters to alphanumeric to keep parsing stable while preserving high entropy.
* Fix all-in-one hocuspocus runtime and validation
* Fix all-in-one memcached startup handover
When `db/structure.sql` exists, it's used when doing `rails db:migrate`
instead of running the migrations. When switching to a branch with less
migrations, the test database will be created with the
`db/structure.sql` file which contains the migrations of the previous
branch. They should not be there.
To have the correct database structure for tests, the `db/structure.sql`
file must be removed before running `db:migrate`.
- check if parent directory of this script is an OpenProject repository
suitable to run the command to add the admin user.
- use a variable for the database name in the given instructions to load
it. It makes it easier to change to an existing database name.
[skip ci]
We do this mainly because we faced an issue with Crowdin, where
the translation didn't work correctly in languages that have a separate
translation for the zero plural case.
Looking at the way we use those translations though, it also makes sense in
general to change the translations like this. Having success as the special case
of zero failures is not quite right, because we also have zero failures if there is
a single warning, but we don't show success in that case. Success is always a separate
branch in a case statement and thus it makes sense to treat it as a separate translation.
- Remove rspec_retry and retriable lines
- Remove top level lines which are mostly around blocks executing on each spec
- Make the spec file name bold (more visible)
When giving a url of the first attempt, the script was displaying the
results of the last attempt. That's probably not the intended behavior.
Now it parses the job_id from the url, and if present it will display
the errors from that job.
Also changed the output to display the instructions to checkout the
correct commit at the end of the script, to make it easier to see.