48 lines
1.9 KiB
Plaintext
48 lines
1.9 KiB
Plaintext
The upstream cockpit spec file is rather complex and ugly. It does
|
|
contain information we need though, such as the bundled node
|
|
modules. Therefore the package reuses the upstream spec file and
|
|
applies openSUSE specifics that upstream doesn't accept on top. For
|
|
that purpose a git repo tracks the spec file changes:
|
|
https://github.com/openSUSE/cockpit
|
|
|
|
There' an opensuse-$VERSION branch for each release
|
|
|
|
For simple fixes it's fine to just submit the spec file by OBS
|
|
means, I'll retrofit in git. Don't worry about that.
|
|
|
|
For version updates the git workflow really is needed to maintain
|
|
mental health though.
|
|
|
|
The following workflow is used to update the package to a newer
|
|
version:
|
|
|
|
- create a branch for the new version based on the old one:
|
|
git checkout -b opensuse-$NEW_VERSION opensuse-$OLD_VERSION
|
|
- use interactive rebase to amend the commits marked as EDIT THIS:
|
|
git rebase -i $NEW_VERSION
|
|
* for the very fist commit download the new tarball and extract
|
|
the spec file from it. Copy the spec file over
|
|
tools/cockpit.spec. That is basically what changed between the
|
|
versions wrt spec file.
|
|
* the second one adjust the spec file to have $NEW_VERSION. For
|
|
whatever reason the upstream spec file alwas has version 0.
|
|
* the rest of the changes should just apply.
|
|
- copy the spec file back into the OBS checkout and continue with
|
|
regular tasks related to updating packages.
|
|
- If any further spec file changes were needed, copy the spec back
|
|
into the git tree and commit there. Amend and reorder as needed.
|
|
- When done, push the git repo.
|
|
|
|
Updates are now mostly automated with the update_version.sh script.
|
|
You still need to follow last 3 steps manually.
|
|
|
|
Sending fixes upstream:
|
|
|
|
if you have any changes that should go upstream, create a new, clean
|
|
branch and cherry pick *one* commit into it. Upstream wants pull
|
|
requests with only one commit
|
|
|
|
NOTE: ONLY the .spec file should be in the git.
|
|
|
|
IDEA: maybe other things should be removed from the git tree then?
|