-
Notifications
You must be signed in to change notification settings - Fork 246
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
Stablize 3.5.0 #1925
Comments
Hi @prestist , Making the experimental package stable
Creating the new experimental package
Update all relevant places to use the new experimental package
Update the blackbox tests
Update docs
|
https://src.fedoraproject.org/rpms/rust-ignition-config/pull-request/7 The fcos upstream release for ignition-config-rs needs to be coordinated with coreos-installer upstream release. So that the upstream fedora packing can both land for both packages around the same time. |
Butane Steps
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Marking an experimental spec as stable
When an experimental version of the Ignition config spec (e.g.:
3.1.0-experimental
) is to be declared stable (e.g.3.1.0
), there are a handful of changes that must be made to the code base. These changes should have the following effects:version
field set to the previously experimental version will no longer pass validation. For example, if3.1.0-experimental
is being marked as stable, any configs written for3.1.0-experimental
should have their version fields changed to3.1.0
, for Ignition will no longer accept them.3.1.0-experimental
is being marked as stable, a new version of3.2.0-experimental
(or4.0.0-experimental
if backwards incompatible changes are being made) will now be accepted, and start to accumulate new changes to the spec.Accept
header that Ignition uses whenever fetching a config will be updated to advertise the new stable spec.The changes that are required to achieve these effects are typically the following:
Making the experimental package stable
config/vX_Y_experimental
toconfig/vX_Y
, and update the golangpackage
statements_experimental
from all imports inconfig/vX_Y
MaxVersion
inconfig/vX_Y/types/config.go
to delete thePreRelease
fieldconfig/vX_Y/config.go
to update the comment block onParseCompatibleVersion
config/vX_Y/config_test.go
to test that the new stable version is valid and the old experimental version is invalidAccept
header ininternal/resource/url.go
to specify the new spec version.Creating the new experimental package
config/vX_Y
intoconfig/vX_(Y+1)_experimental
, and update the golangpackage
statementsconfig/vX_Y
imports inconfig/vX_(Y+1)_experimental
toconfig/vX_(Y+1)_experimental
config/vX_(Y+1)_experimental/types/config.go
to setMaxVersion
to the correct major/minor versions withPreRelease
set to"experimental"
config/vX_(Y+1)_experimental/config.go
to point theprev
import to the new stablevX_Y
package and update the comment block onParseCompatibleVersion
config/vX_(Y+1)_experimental/config_test.go
to test that the new stable version is invalid and the new experimental version is validconfig/vX_(Y+1)_experimental/translate/translate.go
to translate from the previous stable version. Update theold_types
import, delete all functions excepttranslateIgnition
andTranslate
, and ensuretranslateIgnition
translates the entireIgnition
struct.config/vX_(Y+1)_experimental/translate/translate_test.go
to point theold
import to the new stablevX_Y/types
packageconfig/config.go
imports to point to the experimental version.config/config_test.go
to add the new experimental version toTestConfigStructure
.generate
to generate the new stable and experimental versions.Update all relevant places to use the new experimental package
config/vX_Y_experimental
should be updated toconfig/vX_(Y+1)_experimental
.tests/register/register.go
in the following ways:config/vX_Y/types
config/vX_Y_experimental/types
toconfig/vX_(Y+1)_experimental/types
config/vX_Y/types
's identifier toconfigVersions
inRegister()
Update the blackbox tests
-experimental
version in the relevantVersionOnlyConfig
test intests/negative/general/config.go
.X.Y.0-experimental
and alter them to useX.Y.0
.Accept
header checks intests/servers/servers.go
to specify the new spec version.Update docs
internal/doc/main.go
to add the new stable spec and reference the new experimental spec ingenerate()
.generate
to regenerate Go schemas and spec docs.docs/migrating-configs.md
.docs/specs.md
, update the list of stable and experimental spec versions (listing the latest stable release first) and update the table listing the Ignition release where a spec has been marked as stable.docs/release-notes.md
, following the format of previous stabilizations. Drop the-exp
version suffix from any notes for the upcoming release.External tests
If there are any external kola tests that are not part of the Ignition repo (e.g. tests in the fedora-coreos-config repo) that use the now-stabilized experimental spec or the corresponding soon-to-be-stabilized Butane spec, CI will fail for the spec stabilization PR.
.cci.jenkinsfile
.-experimental
from affected Ignition and Butane configs in external tests. Remove-experimental
from the Butane configs even though the Butane spec hasn't been stabilized yet; kola will handle it.Other packages
iso customize
andpxe customize
. Update release notes.-experimental
from configs in FCOS docs and remove colocated experimental-config warningsmantle/platform/conf/conf.go
andconf_test.go
.The text was updated successfully, but these errors were encountered: