Re: convert everything to rpmautospec?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Zbigniew Jędrzejewski-Szmek venit, vidit, dixit 2024-04-07 17:15:16:
> Hi everyone,
> 
> I'm revisting the topic of rpmautospec because I was doing some work
> on various packages, and it's annoying that some packages are using
> rpmautospec and others are not.
> 
> All my packages have been converted, so in day-to-day work, I don't
> even think about %changelog. When working with other packages, I'll
> forget to update the Relase and/or %changelog. Today I was rebasing
> some pull requests in pagure, and the _only_ conflicts that I had were
> about Release and %changelog.
> 
> I think it's time to switch to rpmautospec completely.
> Thus, the proposal:
> - new packages MUST use rpmautospec
> - packagers SHOULD convert their packages
> - provenpackagers MAY convert existing packages
>   (e.g. when they want to push some fix or separately from other
>    work)
> - people submitting pull requests against src.fp.o MAY also
>   include a conversion in the pull request and packagers SHOULD
>   merge it.
> 
> (FTR, 'rpmautospec convert' does the conversion, incl. the commit
> to dist-git. Manual conversion should not be used.)

An interesting proposal with unsurprising reactions from the expected
people ;)

Can I add +200 if others add -100, and what does that even mean? Kidding
aside, and putting the obvious "Makes my workflow work", "Destroys my
workflow", "Change? Hell no" aside, too, I think it's worthwhile to
take a step back and widen one's view towards the question:

Do we consider dist-git to be a version control system (vcs) for spec
files?

Historically we have not quite, which is no wonder given the cvs
heritage.  But, assuming for a moment that we do mean version control
seriously and look at the status quo ante rpmautospec ("legacy specs")
and what we do there:

- We put the version ("release" in our terms) of the spec file in the
  version controlled spec file.
- We put the log of the changes in the version controlled files.

How absurd!

Really, from the point of view of version control, anything that takes
this version information out of the versioned spec is better than legacy
specs. rpmautospec is the only such thing which we have right now.

On the practical side, I was sceptical about some shortcomings of
rpmautospec in the beginning, but it's really such a time (and nerve)
saver whenever you need to pick changes - be it from merge requests
against a moved head, from your own feature branches in dist-git forks
where you prepare changes, etc. All information is where it belongs
(change+log), and there are no artificial conflicts (release,
changelog) and no bogus dates.

Also, I find that many packages treat the dist-git log as more or less
worthless nuisance. rpmautospec helps you put both packager and user
info in one place (the commit message) and encourages to care about
both. Since some may not know:
```
Rebase to upstream x.y.z

- shiny new feature S
- various bug fixes

Also, we clean-up the spec file (white space, patch macros).
```
is a commit message which has both user info ("changelog", the first
line/header plus the dashed lines) and the info for other packagers -
how neat is that? You want it, too, admit it :)

We have other "vcs short-comings", of course, such as the fact that we
don't really use merges and feature branches in dist-git. Almost
consequently, rpmautospec does not deal well with merges. It does work
well with cherry-picks, though.

Since it's been mentioned: While (fast forward) merging the ubiquitious
"rebuild for..." commits down to lower releases does not do any "harm",
having a message like "rebuild for bar 24.7" in a release branch where
"bar" is at "23.3" is quite misleading. It's rooted in "cvs think" and
not using feature branches properly. rpmautospec can solves this easily
with cherry-picks now and, possibly, with merges later once it supports
merges better and we accept a true branch model in dist-git ;)

Cheers
Michael
--
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux