Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakartaee-platform-dev] platform-685: Wave discussion

Hi,

I think the requirements in the spec and the TCK need to be respected in the waves too (not only the API).

We want to have a directed acyclic graph for the dependencies to be able to release them. In general, I think it is a good Idea to release the component spec parts (spec, API, TCK) together in the future, where the dependencies between the parts (and the outside world) can be easily managend in a multi module Maven setup. We have some examples organized like this in Jakarta and this is successful in MicroProfile too. But there are lot of component specs that use separate parts in separate repos - this is hard to maintain, as there need to be a version mapping, sometimes an issue mapping with manual syncs being necessary... Reason for this is intended way is, when there is one change in reality, there will be on change in each of the component specs parts. I.e. when a feature is added, then it need to be mentioned in the spec doc, an API change is necessary and TCK test(s) need to be added at the same time - or the sync need to be done manually before the release. Unfortunately, in reality there are to many examples where the sync in incomplete...

In the case of conflicts (like circular dependencies) in the release order there are different ways to solve this:

- Tests from a TCK could be moved to upper spec or the lowest possible umbrella spec - an example could be an integration test of two component specs, where a (integration) test need to be moved from the lower wave component spec TCK to the higher wave component spec, to prevent circular dependencies. - Spec document references to component spec dependencies could be weaker than they need to be in the API, but it might make sense to model them as an technical dependency in it's Maven POM to manage them technically, as declaring the exact (minimum) required version and display this setting in the spec document as an Asciidoc attribute (allows definition and maintenance in one single place). A so defined dependency can be monitored and verified by tools like jQA too - up to breaking the build for a final release... - Releasing specs together or even merge them could help out too. A start can be to align or merge the teams behind the specs first.

I can add results to https://github.com/jakartaee/jakartaee-platform/issues/687 for the spec documents (on staging) and do PR in the jQA demo project, so everybody can run updates for them. Another step might be to extent the report to show the dependencies of the parts in one single graph - but the current API one is complex already...

Best,
Jan

Am 30.05.23 um 18:15 schrieb Scott Stark:
This is a fundamental issue that requires coordination between the
component spec and the target component spec project that the former
is attempting to define integration requirements for. It is the reason
why we have TCKs with circular dependencies. To clean this up, we need
to break up both specifications and TCK artifacts to align with the
target specification dependencies. Those spec fragments and TCK
artifacts should be released with the most downstream wave component
specification.

The current specification project structure is not great for this as
there are no cross projects committers or permissions. You have to be
a committer on each component project.

It seems most natural for a component specifications integration
requirements to live in the platform project. The profile and platform
specification can override these anyway, but in terms of structural
dependencies that is what makes the most sense to us. The TCK
artifacts should have a repo in the platform TCK project. This will
require updates to how the project management guides, and probably
more committers or permission groups to the platform and platform tck
projects.

On Tue, May 30, 2023 at 9:18 AM Arjan Tijms <arjan.tijms@xxxxxxxxxxx> wrote:
Hi,

Last week we discussed the waves to release Jakarta EE APIs in.

Historically we have been looking at Maven dependencies, but there are also dependencies via the specification documentations. E.g. Jakarta Authentication has no API dependencies on Servlet and SOAP, but the specification documentation very strongly depends on them.

Would we like to take that into account this time?

Kind regards,
Arjan Tijms
_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev
_______________________________________________
jakartaee-platform-dev mailing list
jakartaee-platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-platform-dev




Back to the top