Hi Emily.
Thanks for your reply. Even though I am starting to bore myself, I am going to attempt one more time to try and get my point across.
Let me provide some much needed context.
The Oracle developer reached out to us (and sometimes to me personally) and we helped with many aspects of their implementation. This process highlighted some flaws in our Specification (naturally). One of them is that one TCK test "enforce" (without it being specified in the specification, or without it even being our intent) the property order in a json like entry in the GraphQL specification when defining default values. Of course the SmallRye implementation passes, but the helidon one is outputting a different order, and , even though valid, fails the TCK test. This is really because the test just checks the whole 'json' (it's not really json, but like json). So the change to the TCK is to fix that. It's now checking induvidial properties with their values. It should have been like that from the start.
Another thing that came up (and I have pointed you to the discussion in GitHub) is that we had an annotation that is set to TYPE_USE. This allows users to use this on an argument (and that is our intention). It can also be used on fields and methods etc. The SmallRye implementation uses Jandex for annotation scanning, and could figure out when this annotation is placed on an argument and passed the test. What we figured out later is that when using reflection, you also need this annotation to define PARAMETER to allow this to work. This, again, should have been there from the start and would be irrelevant information after the fact (in the spec document). None of the above changes the context or IP flow, or usage of the spec.
This, above, should give you and anyone else reading the context on why we, the GraphQL workgroup, concluded that this is a service release. SmallRye passes the TCK and does not need these changes above. But (maybe because I was excited that we have another implementation) I felt we needed to do a release for Oracle.
So Oracle asked when we can do this 1.0.4 release for them, and, honestly, we did not know. We knew that if we can do a service release under the old process, that can be done quickly, but no one on the GraphQL Workgroup knew what the process is for service releases on branches that have not migrated to the Eclipse process. I told Oracle that we will try and find out, and also invited the developer to our hangout. (Timezones made it impossible)
So we realized that this release is going to take some time. And I went back to the Oracle developer suggesting that he do the release (since the changes is all for Oracle), but he was not keen on doing any release, nevermind the Eclipse process one, as that is just not something he does, and at Oracle they have a team doing it. Fair enough. So someone else needs to put their hand up. We discussed if we should wait for the lightweight process as mentioned by you to Andy, or do the "extended" release process for 1.0.4 as suggested by you.
- [Andy] Release process is being clarified. We will need to go through the full process for an initial release (1.0.4 or 1.1?), but then service/micro releases should be simpler.
So, all indications so far, from both the output of the community meeting and when Andy spoke to Emily is that we should go though the full Eclipse process to release 1.0.4. Now as you can see this is a long time and many discussions already to get a release out with those two fixes
3 March 2021
Since Oracle pinged me again on this release, we then discussed if we should do the release, and since no one else is putting their hand up, I once again did, even though I have no time or a mandate from my employer to do so, I decided to do this in my free time, because of my passion for this project.
Up until now, no mention of not being able to do a 1.0.4 release, neither by you or by anyone in the Community meeting.
4 March 2021
So far I only spoke about GraphQL, but I also needed (this time needed by Red Hat) for the 1.0.x branch of OpenAPI. Same situation as GraphQL, that branch has not yet moved to the new process. Since I was not envolved with OpenAPI that much (from that current spec version) and since there is no one else currently on this workgroup (like I mentioned previously) I double checked with you:
Me
Hi Emily.
We (Quarkus) need a patch on MP OpenAPI.
The older 1.x branch
We need this (still to be backported)
https://github.com/eclipse/microprofile-open-api/pull/470/filesIs that ok to do ?
Emily Jiangit is ok. I think it is a bug fix. I am thinking to get all spec to do a RC1 release to store the tag
you might just do a service release
Me
Thanks !
So I started going through the Eclipse process to do a release (an RC initially) as explained by you.
I then got the failure (the gpg one you mentioned). This was your relply:
I looked at the gpg pluging. What you have should work. It might be a glitch.
Above was the help you are claiming you did. Telling me it should have worked.
It was not a glitch, and I eventually found the PR that fixed in the main branch and applied that to the 1.x branch.
Other parts of that conversation we had, again confirmed that we can do a service release, we just need to go through the formal process and ballot. You also mentioned that I should first do a RC release. So I did that. I also did one for GraphQL (while I was at it)
I notified Oracle about the RC and they confirmed:
All good! helidon 2.3.0-SNAPSHOT mp-graphql working fine with RC1. Thanks
SmallRye also still passes the TCK, so we are ready for the release.
6 March 2021
So now I have a RC release for both these, with feedback that it's ok.
I started going through the Eclipse process to do a release of both of these. This process is tedious and long and difficult to follow, but about 5 hours later I was at this point
Follow the instruction on the Specification Review issue to send an
email to PMC for PMC approval. You normally can get an approval with
1-2 days. If you are not already a member of the technology-pmc and
microprofile-wg mailing lists, sign up to avoid having your emails bounce.
Follow the instruction on the Specification Review issue to send an
email to EMO for EMO approval. After an email is sent, a bug zilla will
be created to track the release. You need to add the bugzilla link to
the Specification Review issue. EMO approval normally takes longer time.
It will asks for IP logs. If you need to generate IP Logs, just log
onto the same site where you create Component Release Record and then
click `Generate IP Log` on the right hand side. For MicroProfile
specifications, if a number of specs are released at the same time, the
first spec that goes into EMO process will have the IP log generated and
the IP log will cover the rest specifications, because all of the
MicroProfile specs share one single project. After IP log is approved,
EMO will wait for MicroProfile WG ballot to conclude successfully (see
the next bulletin list) before a final review is approved.
So this is where I can send the two mails to request the ballot and PMC for approval. As you know the process also requires a CI that builds against the spec release in question, so I had to release both SmallRye OpenAPI and SmallRye GraphQL as well.
Now, if you read further (in
https://wiki.eclipse.org/MicroProfile/SpecRelease/Release) you will notice NO mention of a period where other MicroProfilers can now do "code" reviews etc like you claim you did. And this would not make sense at all. You do not go through a 5 (lets call it 2 hours per spec) to get to a point where people can review this and you need to repeat this process. The review (if any) should then happen before this long process, so that this only needs to be done once. That is fairly logical right ?
Now, 5 hours to get to this point, and this is the reply I get from Keven (also a MP Steering committee member)
A service release
(1.0.4 in your case) can not be performed until a corresponding major or
minor release has been performed under the Eclipse Foundation Specification
Process
No, granted, at this point I started to get annoyed. The MP Steering Committee is saying different things ?!?! One said (as explained above) very clearly that this is what should be done. Now we are told this is not allowed.
Now, you can follow the email thread Review Initiation for MicroProfile GraphQL 1.0.4 again, what happened next is not an apology that our time is being wasted, but rather a push to claim that this should anyway be a 1.1 (minor) release. This assumption is made without asking the Workgroup or Andy to explain the changes we are releasing. Now, from my explanation in the beginning above, I hope you agree now that this is just a service release. At this point, if I was in your shoes, I would apologise for the time that is wasted due to information given by me, and I would jump in to help to get this done and dusted. The fact that it did not happen, shows a disregard of my time and effort.
As I explained before, the fact that we can not do a 1.0.x release is a problem. For all specs. All vendors have products that have versions that must be supported for a long time, that is now depending on libraries that can not be updated. The reply:
Sorry! That's just part
of the Specification Process which we all agreed to...
With arguments like that, any code that has been merged after a PR and review, can not ever be changed because we all agreed to this.
This should rather be acknowledged that, what we agreed to, is wrong. And fix it.
The second attempt
By now, slightly annoyed, me and Kevin agree that the fastest way forward is to just that exact release and do it under a 1.1.
Phillip: No problem, so I can then do a 1.2 using the new process
? Basically doing exactly what I have done but change the version to
1.2. would that work?
Kevin: Yes. That would
work. Thanks!
So, no mention of release notes. So then I started again, doing the release process. about 3 hours later, and I can send the mail, now with the updated version. We also quickly touch on this in the Community meeting, but all seems fine, this should be it.
The reply from you (Emily) after I spend now way too much time on this:
You need to create a release note to document the changes between 1.1
and 1.0, so that the end users or implementors are clear on what are the
differences between the releases.
Really ? You are saying this now ?? I need to go through this process yet again ? When you know that this really is a service release, with changes that would not make sense to put in the spec doc. When you know that this means I need to rebuild both the spec and the CI and update all the things in the process.? You really believe that this is the time to do this "review" ??? Still, a total disregard to my time and effort.
Now again you can then follow the thread on Release Approval for MicroProfile GraphQL 1.1 to see how we got to your "I'll let this one slide" comment. But believe me, no one, NO ONE, will want to go through this.
And when I dare to say that I will not be doing any more releases, this is the response from Gunnar
From your statement above I sense that you are refusing to work with the
community. I'd like to say that this is not something we will accept as
the PMC.
I have done a lot of things for this community, maybe GraphQL more in specific. And now I refuse to work with the community ? The least you could have done (Gunnar) is get some context first.
I am happy to have discussion with any of you to clear up anything I have said in any of my emails.
I'll say this again, my concern is that if this (the above long email) is how we are going to treat people that give their free time to this project, we are not going to get far.
Phillip