Re: xserver release process

2019-10-09 Thread Adam Jackson
On Tue, 2019-10-08 at 22:19 +0200, Hans de Goede wrote:
> Hi,
> 
> On 08-10-2019 18:28, Adam Jackson wrote:
> 
> > In short, releases need to happen, and we have CI, so let's just pop a
> > release out on scheduled dates assuming CI passes.
> 
> Given that the Xorg xserver has a lot of hw interaction, we are
> never going to catch everything with CI, so this seems a bit
> over-simplified.

I mean, yes, it's over-simplified. The alternative is not doing
releases, apparently. The idea here is that we keep adding more
coverage to CI, and we fake hardware coverage if we need to by writing
more tooling around vkms and friends. This may mean that any given
point-zero release is less stable than we might like, but that's not
exactly new, and having cheap-and-frequent stable releases should help
mitigate that.

> I think it would be good to have 2 things:
> 
> 1. A way to track potential blocker bugs. Note I'm not advocating some
> process heavy approach here. The blocker bugs can just be gitlab issues
> with a special tag I guess. The idea is that the release-coordinator
> at least can get a list of known issues and then decide if those are bad
> enough to delay a release or not.

Milestones:

https://gitlab.freedesktop.org/xorg/xserver/-/milestones

- ajax

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: xserver release process

2019-10-09 Thread Aaron Plattner

On 10/8/19 1:19 PM, Hans de Goede wrote:

Hi,

On 08-10-2019 18:28, Adam Jackson wrote:




In short, releases need to happen, and we have CI, so let's just pop a
release out on scheduled dates assuming CI passes.


Given that the Xorg xserver has a lot of hw interaction, we are
never going to catch everything with CI, so this seems a bit
over-simplified.

I think it would be good to have 2 things:

1. A way to track potential blocker bugs. Note I'm not advocating some
process heavy approach here. The blocker bugs can just be gitlab issues
with a special tag I guess. The idea is that the release-coordinator
at least can get a list of known issues and then decide if those are bad
enough to delay a release or not.


If you have issues or merge requests that need to block a release, 
please tag them with the appropriate GitLab milestone: 
https://gitlab.freedesktop.org/xorg/xserver/-/milestones


-- Aaron


2. Send out a notice that a new release will happen in say 4 weeks
from date of sending with a request for testing + getting any pending
*fixes* upstream asao, maybe together with some "beta" or "rc" tarbals,
but that is optional.

My main reason for suggesting either one is that I personally am aware
of at least 2 issues (both related to secondary USB GPUs handling) which
are only present in master and not in the 1.20 branch and which I really
would like to see fixed before a new release. I have taking a look at
these on my to do list, but not at the top of it (yet).

Having 1. would help in tracking such known issues, I doubt I'm the only
one who has a couple of "I need to look into this and fix it" items on
their TODO, so being able to track these would be good.

Having 2. would help me bump up these TODOs in priority to try and get
them fixed before the release :)

Regards,

Hans

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: xserver release process

2019-10-09 Thread Michel Dänzer

On 2019-10-08 6:28 p.m., Adam Jackson wrote:

I gave a brief lightning talk about this at XDC Montreal [1], and
nobody seemed to object, but here's a recap for those who weren't
present or have other ideas or preferences.

In short, releases need to happen, and we have CI, so let's just pop a
release out on scheduled dates assuming CI passes. Six months seems to
be a pretty reasonable cadence for xserver major releases as new
feature development has tailed off a bit. Likewise for stable branches,
if there's been changes to the branch and it's been (say) two weeks
since the last release on that branch, and CI passes, automatically do
a new release. I intend to make this _entirely_ automatic, with a robot
doing the actual commits and release uploads.


I like the idea of doing automatic release snapshots / candidates, but I 
think that's a bit too aggressive for actual releases at this point, at 
least on the stable branch. E.g. the recent 32-bit ABI breakage on the 
1.20 branch would likely have made it into a 1.20.y release with this 
scheme.




Also, let's adopt the Mesa "last two digits of the year" version
scheme, it makes it easy to see how old your software is at a glance.
We'll need to be slightly careful about this to ensure we don't make
the (protocol) release number go crazy, so the scheme looks something
like this (underscores for clarity):

- xserver 1.20.5 → 1_20_05_000
- xserver 19.0.0 → 1_20_19_000
- xserver 19.0.1 → 1_20_19_001
- xserver 19.1.0 → 1_20_19_100
- xserver 20.0.0 → 1_20_20_000


And then 1_21_*_* as of 21.x.y? Either way, sounds good.


--
Earthling Michel Dänzer   |   https://redhat.com
Libre software enthusiast | Mesa and X developer
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: xserver release process

2019-10-08 Thread Hans de Goede

Hi,

On 08-10-2019 18:28, Adam Jackson wrote:




In short, releases need to happen, and we have CI, so let's just pop a
release out on scheduled dates assuming CI passes.


Given that the Xorg xserver has a lot of hw interaction, we are
never going to catch everything with CI, so this seems a bit
over-simplified.

I think it would be good to have 2 things:

1. A way to track potential blocker bugs. Note I'm not advocating some
process heavy approach here. The blocker bugs can just be gitlab issues
with a special tag I guess. The idea is that the release-coordinator
at least can get a list of known issues and then decide if those are bad
enough to delay a release or not.

2. Send out a notice that a new release will happen in say 4 weeks
from date of sending with a request for testing + getting any pending
*fixes* upstream asao, maybe together with some "beta" or "rc" tarbals,
but that is optional.

My main reason for suggesting either one is that I personally am aware
of at least 2 issues (both related to secondary USB GPUs handling) which
are only present in master and not in the 1.20 branch and which I really
would like to see fixed before a new release. I have taking a look at
these on my to do list, but not at the top of it (yet).

Having 1. would help in tracking such known issues, I doubt I'm the only
one who has a couple of "I need to look into this and fix it" items on
their TODO, so being able to track these would be good.

Having 2. would help me bump up these TODOs in priority to try and get
them fixed before the release :)

Regards,

Hans

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Re: xserver release process

2019-10-08 Thread Keith Packard
Adam Jackson  writes:

> In short, releases need to happen, and we have CI, so let's just pop a
> release out on scheduled dates assuming CI passes.

WFM

-- 
-keith


signature.asc
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

xserver release process

2019-10-08 Thread Adam Jackson
I gave a brief lightning talk about this at XDC Montreal [1], and
nobody seemed to object, but here's a recap for those who weren't
present or have other ideas or preferences.

In short, releases need to happen, and we have CI, so let's just pop a
release out on scheduled dates assuming CI passes. Six months seems to
be a pretty reasonable cadence for xserver major releases as new
feature development has tailed off a bit. Likewise for stable branches,
if there's been changes to the branch and it's been (say) two weeks
since the last release on that branch, and CI passes, automatically do
a new release. I intend to make this _entirely_ automatic, with a robot
doing the actual commits and release uploads.

Also, let's adopt the Mesa "last two digits of the year" version
scheme, it makes it easy to see how old your software is at a glance.
We'll need to be slightly careful about this to ensure we don't make
the (protocol) release number go crazy, so the scheme looks something
like this (underscores for clarity):

- xserver 1.20.5 → 1_20_05_000
- xserver 19.0.0 → 1_20_19_000
- xserver 19.0.1 → 1_20_19_001
- xserver 19.1.0 → 1_20_19_100
- xserver 20.0.0 → 1_20_20_000

Suggestions and comments are welcome, with the understanding that
anything much more complicated or too different than this implies that
you're volunteering to do all the work. (Not that that's a problem,
just letting you know what you're signing up for.)

[1] Starting approximately here: https://youtu.be/JIry8jpbPUY?t=32790

- ajax

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

xserver release process and gitlab

2019-05-08 Thread Adam Jackson
I was asked off-list what tasks are involved in releasing a new X
server, since eventually people are probably going to want one.

And that's a good question! The unfortunate answer is that the process
has been informal and has varied over time. We have often used tracking
bugs in bugzilla to define the set of remaining issues to address
within a release, but we're not using bugzilla anymore. So I think it's
probably a good idea to start with the processes available to us in
gitlab. From what I can tell, "milestones" are the best fit for this.
I've created a starter milestone to track 1.21:

https://gitlab.freedesktop.org/xorg/xserver/milestones/1

Anyone with "developer" access or higher to the xserver project should
be able to edit this milestone, but the release manager (whoever that
ends up being) should have final editorial control. If you think an
issue should be added to this milestone, comment on the issue or find a
developer who can nominate it for you. I'll take a pass through the
issue list in the next few days and nominate some likely bugs.

In general, candidate issues for a major release include crash fixes,
regressions, and major feature work. The release manager should ensure
all such issues have assignees, and check in on their progress
regularly.

Establishing a release schedule should itself be one of the issues
resolved for a given release (since you can't comment on a milestone
proper, only on issues attached to it). So let's do that here:

https://gitlab.freedesktop.org/xorg/xserver/issues/688

We don't currently have formal acceptance criteria for a release,
though an obvious minimum would be to have 'ninja -C build test' pass
on all major platforms in CI. We should document this testing process,
as well as define criteria for adding additional acceptance criteria.

Vaguely related to all this is that we badly need to get our
documentation moved from the old wiki to gitlab. There's an open issue
for this, but it's a few months inactive:

https://gitlab.freedesktop.org/freedesktop/freedesktop/issues/80

If any of this sounds too crazy, or if there are other things we need
to address, please let us know so we can address them.

- ajax

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel