----- Original Message -----
From: "Nicolas Mailhot"
<nicolas.mailhot(a)laposte.net>
To: packaging(a)lists.fedoraproject.org
Sent: Friday, March 29, 2019 8:33:39 PM
Subject: [Fedora-packaging] Translating Go modules buildrequires in rpm syntax
Hi,
For Go modules, that will become the default upstream in August, Google
invented holed BuildRequires version ranges:
– anything starting with version
– except a list of specific version exclusions (not exclusion ranges,
specific versions)
Basically upstreams are allowed to declare incompatible versions, but
Google would really like them to keep ascendent API compatibility
(and Google requires module renaming on major version changes, so there
is no upper limit to the API compatibility)
As I perceive this might be perceived by you as my personal attack I want to be clear that
this is just my take on it and my technical opinion, so please keep this in mind. I would
like to avoid any unnecessary misunderstandings and conflicts.
But do we really need to recreate everything that upstream put in to the constrains in
specs? I think that we are carrying curated set of the packages so this is IMHO not really
necessary(at least not in all cases, just ones that crept in to our package base and we
should avoid them at all costs).
IMO if there are "holes" in the versions we should work with the upstreams to
mitigate(fix) them and I believe they will be probably for some past/intermittent
versions(do you have actual cases to show as examples?) and we can pretty easily handle
them preventively with conflicts statements and proper comments accompanying them like
"Based on constrain in the module ... caused by ...". Or is this something that
is not possible/feasible?
Do you have any cases where we will have to carry them in 1:1 representation with current
package set?
JC
PS: CC'ing wider Fedora's Go community
> Is the correct way to represent those in rpm:
>
> BuildRequires: ((golang-module(github.com/stretchr/testify) >= 1.3.0) and
> ((golang-module(github.com/stretchr/testify) <
> 1.3.2~0.20180906233101.161cd47e91fd) or
> (
golang-module(github.com/stretchr/testify) >
> 1.3.2~0.20180906233101.161cd47e91fd)) and
> ((golang-module(github.com/stretchr/testify) < 1.3.2~1.pre1) or
> (
golang-module(github.com/stretchr/testify) > 1.3.2~1.pre1)) and
> ((golang-module(github.com/stretchr/testify) <
> 1.3.2~1.pre1.0.20180628173108.788fd7840127) or
> (
golang-module(github.com/stretchr/testify) >
> 1.3.2~1.pre1.0.20180628173108.788fd7840127)))
>
> or am I missing something obvious?
>
> Best regards,
>
> --
> Nicolas Mailhot
> _______________________________________________
> packaging mailing list -- packaging(a)lists.fedoraproject.org
> To unsubscribe send an email to packaging-leave(a)lists.fedoraproject.org
> Fedora Code of Conduct:
https://getfedora.org/code-of-conduct.html
> List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
>
https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproje...
>