changed 5 years ago
Linked with GitHub

Annotated tags pushed by maintainers

Info:

  • tags can be pushed by maintainers, their creation is made easier by fedpkg:
    • prepopulating body of tag by commit messages
    • their automatic creation when fedpkg build is called and a certain config option is on (by default off) so that people do not need to change their workflows to include fedpkg tag
    • at the same time, we can make it automatic that when a new annotated tag is pushed, we launch a new build in koji from the respective commit
  • tags store the latest name-version-release information in its name and changelog entry in its body

Advantages:

  • prevent any conflicts in changelog when merging between branches
  • provide natural grouping of changes
  • pagure alas. src.fp.o has already support to display them as releases
  • no need for either fedpkg generate-changelog command that would need to be invoked when tweaking changelog or for cluttering commit space with exclude/replace special commits
  • makes spec more of a standalone thing as opposed to solutions with a separated changelog
  • information in src.fp.o is always current (implied by "git is the only source of truth")
  • very easy to jump to the correct commit based on ENVR of a package
    • either it will directly correspond to tag name (except for different syntax for epoch - relevant only if package has non-zero epoch)
    • or it will be a build from an untagged commit, in which case the short commit id will be included in NVR

Disadvantages:

  • special version characters like tilde and carret need to be handled by url encoding and decoding when displaying the tag
  • does not help with mass rebuilds

Ad. spec file preprocessing which is part of the solution:

What would be needed to do:

  • add support for preprocessing and the macros into rpkg library (should be on/off switchable)
  • tune up the rpkg macros, especially git_release
  • add support for preprocessing into infrastructure (not only for rpms/ namespace) (can fedpkg-minimal be used?)
  • resolve the tilde/caret thing both in pagure (src.fp.o) and in rpkg interface for tagging and displaying tags
  • resolve epoch (likely by using dir prefixing of tags)
Select a repo