When generating the list of flags that would actually be enabled,
the value specified in the option was ANDed with the list of flags that actually existed.
At this time, I mistakenly performed a logical AND with the list
of "values to invalidate" specified in the option.
This mistake caused a problem in which some flags could not be enabled.
This commit fixes this to AND with the list of values you want to enable.
as original one caused following error:
W: GPG error: https://deb.nodesource.com/node_20.x nodistro InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 2F59B5F99B1BE0B4
E: The repository 'https://deb.nodesource.com/node_20.x nodistro InRelease' is not signed.
Required version is updated from v18.16.x to v20.13.x
with GitLab v17.0.0 release.
Documentation:
- "Bump required Node.js version to 20 in installation guide"
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154523
.tool-versions:
- "Update .tool-versions and .nvmrc to use nodejs v20.12.2"
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/149615
- Set distro to "nodistro" for nodejs to get later updates
GitLab v17.0.0 or later requires (grants) nodejs v20.13.x or later,
but nodejs v20.5.1 is installed for focal even later LTS are released.
To avoid this issue, official installer script uses "nodistro"
instead of specific distribution.
See:
83867e0fdd/scripts/deb/setup_20.x (L74)
like below:
````
Configuring gitlab::feature_flags...
- Launching rails runner to set feature flags. This will take some time....
- Specified feature flags to be disabled:
--- "auto_devops_banner_disabled"
--- "invalid_flag_name"
- Specified feature flags to be enabled
--- "git_push_create_all_pipelines"
--- "another_invalid_flag_name"
- Following flags are probably invalid and have been ignored
--- invalid_flag_name
--- another_invalid_flag_name
- Apply user defined feature flags:
--- auto_devops_banner_disabled : off
--- git_push_create_all_pipelines : on
````
- Do not `puts` parsed options (formatted by ruby's `.to_s`),
`puts` each specified target with three hyphens instead
- `puts` each ignored target on each line with three hyphens instead of single line csv
- It requires database is set up because
feature flags are stored to DB (table `application_settings`)
- Add configuration parameter GITLAB_FEATURE_FLAGS_ENABLE_TARGETS
and GITLAB_FEATURE_FLAGS_DISABLE_TARGETS
- Add ruby script to configure feature flags from command line
and invoke runtime (from configure_gitlab())