Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add API Baseline setup to build prerequistes #459

Closed
jonahgraham opened this issue Dec 7, 2020 · 7 comments · Fixed by #475
Closed

Add API Baseline setup to build prerequistes #459

jonahgraham opened this issue Dec 7, 2020 · 7 comments · Fixed by #475
Assignees
Milestone

Comments

@jonahgraham
Copy link
Contributor

A lot of work has been done in 6.0.0 to have API better defined. However to make this successful, embedcdt then has to verify that there is an API baseline defined in the workspace that Eclipse API tools can compare against.

At the moment on https://eclipse-embed-cdt.github.io/develop/build-prerequisites/#install-base-api-cdt-1000 only CDT is in the baseline, so that means none of the embedcdt plug-ins will be checked for API compatibility issues. Once 6.0.0 is released, the API baseline needs to point at the embedcdt release.

This is best done with a embedcdt-baseline.target file that points at the p2 sites of the baseline.

@ilg-ul
Copy link
Contributor

ilg-ul commented Dec 7, 2020

Well, this sounds nice, but what exactly does it mean?

Who creates this file, where should it be located, who must use it and how? (lots of questions)

@jonahgraham jonahgraham self-assigned this Dec 7, 2020
@jonahgraham jonahgraham added this to the v6.1.0 milestone Dec 7, 2020
@jonahgraham
Copy link
Contributor Author

"we" create the file - it should be in git.

If the API baseline is properly configured then it means that extenders of embedcdt can rely on the version number to follow semantic versioning because we as developers will get an error if we introduce a change that breaks semantic versioning.

BTW I think there should have been a warning/error up until now related to this from Eclipse. I raised https://bugs.eclipse.org/bugs/show_bug.cgi?id=569528 for this issue.

@ilg-ul
Copy link
Contributor

ilg-ul commented Dec 7, 2020

In my development Eclipse I see three errors:

Description	Resource	Path	Location	Type
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-clean-plugin:2.5:clean (execution: default-clean-1, phase: initialize)	pom.xml	/org.eclipse.embedcdt-repository	line 23	Maven Project Build Lifecycle Mapping Problem
Plugin execution not covered by lifecycle configuration: org.eclipse.tycho:tycho-packaging-plugin:1.7.0:build-qualifier-aggregator (execution: default-build-qualifier-aggregator, phase: validate)	pom.xml	/org.eclipse.embedcdt-repository	line 25	Maven Project Build Lifecycle Mapping Problem
There is a possible API baseline mismatch since none of the workspace projects is in the baseline.			Unknown	Default API Baseline Problem

Perhaps the last one is what you would expect?

@ilg-ul
Copy link
Contributor

ilg-ul commented Dec 7, 2020

BTW, I welcome these improvements, but, when ready, we should also mention these details in the documentation.

@jonahgraham
Copy link
Contributor Author

Perhaps the last one is what you would expect?

Yes - that is the error. But I don't get that error - details in Bug 569528

The Plugin execution not covered by lifecycle configuration is why I don't use m2e (see #458 item 4).

@jonahgraham
Copy link
Contributor Author

BTW, I welcome these improvements, but, when ready, we should also mention these details in the documentation.

Of course!

@ilg-ul
Copy link
Contributor

ilg-ul commented Dec 7, 2020

Please add a ticket to the web-jekyll repo to remember this.

jonahgraham added a commit that referenced this issue Jan 8, 2021
jonahgraham added a commit that referenced this issue Jan 8, 2021
jonahgraham added a commit that referenced this issue Jan 8, 2021
Using a target file enables a way to share consistent plug-ins in
the runtime Eclipse instance across developers and ensures that
the target platform that Maven Tycho uses is the same as what is
used in Eclipse.

There is no requirement to use the target platform in the IDE, the
current method of installing all the dependencies in the development
Eclipse instance is ok.
jonahgraham added a commit that referenced this issue Jan 8, 2021
PyOCD has had significant reworking done, so the major version of that
bundle has changed. The pyocd has API, but is not a widely consumed
bit of code API wise, so upping the major version here is ok.

Some classes that should have been previously marked with @noextend
have now been marked as such.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants