Automating DE processes
The DE workflow is (roughly) :
- Developer branches package from P:DE:Trunk
- Developer submits package to P:DE:Trunk:Testing
- Boss runs checks on package
- Boss creates branch of P:DE:Trunk
- Boss submits package(s) to new branch
Later:
- Boss rejects package
or
- Boss notifies maintainers that checks passed
Then:
- Package is accepted to P:DE:Trunk by a maintainer
- bz is updated
BOSS Checks
BOSS runs the following checks (and stops as soon as one fails)
To be done:
- changelog in proper format (present, syntactically correct)
- changelog has entry for this commit
- last changelog version matches spec file version
- tarball not changed within same package version
- executing spectacle doesn't change anything if .yaml present
- yaml must be present if spec is based on .yaml
- content of source tar ball should not change without its changing.
- check that old tarball has been removed if new one is introduced
- SR not empty (define empty?)
- No changes at all. At times people are trying rebuild packages by submitting empty change. (Sage)
Process Testing
The Project:DE:BOSS:Trunk and Project:DE:BOSS:Trunk:Testing areas are used
to test the processes.
The processes to be tested are deployed to /srv/BOSS/processes/Project/DE/BOSS/Trunk/
DE_Trunk_SRs
To deploy:
- set irc_channel and final_project
- Copy to Project:DE:Trunk
- symlink: SRCSRV_REQUEST_CREATE and SRCSRV_REQUEST_STATECHANGE in Trunk and Trunk:Testing
cd Trunk
ln -s DE_Trunk_SRs SRCSRV_REQUEST_CREATE SRCSRV_REQUEST_STATECHANGE
cd Testing
ln -s ../DE_Trunk_SRs SRCSRV_REQUEST_CREATE SRCSRV_REQUEST_STATECHANGE
Wish List
- e-mail notice of SR's especially when SR is rejected
- Check if package upstream has changed and do a report of the packages that needs to be rebased on top of the new upstream. Currently this check is done manually with https://gitorious.org/meego-developer-edition-for-n900/upstreamchecker/ script by N900 RE. (Sage)
- In case package fails to connection failure start rebuild automatically after time X. (Sage)
- Add architecture and repository to build error message. (Sage)
- 14:06.33 < boss> Build failure in Project:DE:Trunk:Testing: meegotouch-theme More details soon
- Update patterns based on package-groups package. (Sage)
- We should have package-group package in the Project:DE:Trunk[:Testing] project that contains the CE package groups. This information should be when ever repository is published pushed to the repository with osc meta pattern or similar command.
Bug Lifecycle
The DE bug lifecycle is (roughly):
- 'open' -> FIXED -> RELEASED -> VERIFIED
- Developer starts working on the bug/feature and sets to ASSIGNED
- Developer submits package to P:DE:Trunk:Testing and documents changelog and/or commit properly (fixes bmc #1234;) - if changelog doesn't have a valid bug/feature reference the request MUST fail but we do not document the failure in the bug report
- Bugzilla records the commit message with link to the repo and timestamp
- Package is accepted to P:DE:Trunk (manual for now....)
- Bugzilla records acceptance with comment and bug status is automatically changed to FIXED if bug is still in OPEN status (New, assigned, needinfo, reopened, waiting)
- If bug is already in FIXED resolution, only acceptance comment is written in the bug report
- If bug is not in OPEN status (New, assigned, needinfo, reopened, waiting) or resolved FIXED (eg. duplicate, wontfix, etc... or verified or closed) the request MUST fail but we do not document the failure in the bug report
Later:
- Release is triggered
- Bug status is automatically changed to RELEASED, a comment with a link to the image is created and the Target Build value is set to match appropriate release
Later still:
- QA review the release and for each bug marked RELEASED, either change to VERIFIED or re-open
Note that eventually, both FIXED and RELEASED statuses would require specific credentials to be modified.