[RTEMS Project] #2886: RTEMS version is wrong on 4.11 branch
RTEMS trac
trac at rtems.org
Sun Feb 5 23:49:33 UTC 2017
#2886: RTEMS version is wrong on 4.11 branch
-----------------------------+------------------------------
Reporter: sebastian.huber | Owner: sebastian.huber
Type: defect | Status: new
Priority: normal | Milestone: 4.11.2
Component: General | Version: 4.11
Severity: normal | Resolution:
Keywords: |
-----------------------------+------------------------------
Comment (by chrisj):
Replying to [comment:2 sebastian.huber]:
> Release procedures should be updated to do a version change to 4.11.2.0
as the last commit before the 4.11.2 release.
I am not sure how we should handle this. I see a couple of possible
solutions, your suggestion is one. The other is to only ever tag a release
when generating the source tarball and a not released type version number
always held in the repo.
The objective is to make no changes between final testing and the release
however this is not that simple to do because we have conflicting
requirements. From a V&V point of view it is simpler if the testing and
any generated documentation for a release is made against the repo hash
(commit) that is used for the release.
The conflicting requirements can be simplified as:
1. Create the test reports against the repo hash.
2. Do not create a release until all testing has been done to meet the
release milestones.
3. Only ever create a single tarball instance for a release.
An aborted or failed release needs to move to the next dot point release
and the failed or aborted release number abandoned. It is better to
document a failure and to provide a traceable corrective measure. It is
important there is no possible way a duplicate release of code could exist
that could be different and we should avoid equivalents.
Changing the repo by adding a special commit to create a release means any
testing against a specific repo hash (commit) is different to the release
hash because an extra commit has been added. This means there needs to be
extra steps in the auditing process to verify any or all releases. The VC
is distributed and can be edited adding complexity. While the likely hood
of this ever happening is low, we need to be able to show it has not
happened and for each release.
A method I have used successfully in the past is to use something like
`4.11.NOT_RELEASED` in the repo. Any code built from the repo is clearly
identified as ''not released'' by default. When the release tarball of
code is created the version labels in the code are changed to the dot
point release number for the release. This does mean the code in the repo
at the hash is not the same as the code in the release however it does
mean there is only one definitive release tarball that can be created and
the process of doing this is controlled by the release procedure and it
does not require interactions with an external shared repo.
The release script is open and available for auditing so a V&V team can
verify the changes made to the code checked out from the repo at the
release hash. I have seen V&V perform a build of the code from the repo at
the release hash before release tagging and also from the released source
code then performing a binary diff on the binary images of the complete
system. The auditing procedure contained a list of agreed exceptions, the
release tags, date/time stamps if present, and checksums.
Note, I am not a fan of the `99` version numbering for development we
currently use.
--
Ticket URL: <http://devel.rtems.org/ticket/2886#comment:3>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list