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

Support Maven option --also-make-dependents, and --resume-from for project dependency resolution #577

Merged
merged 1 commit into from Jan 30, 2022

Conversation

laeubi
Copy link
Member

@laeubi laeubi commented Jan 28, 2022

This is a basic prototype for #48 and #551 and also a showcase that Tycho could use P2 without the need of running it inside an OSGi-Framework (FYI @merks).

With this change (and enabling the tycho-build extension) the test cases from #564 succeed.

As there where some discussion why we don't "just fix this after such a long time", I'd like to give some insights about the efforts put into this prototype up to now (and its not complete but should work for common cases):

Beside the discussions and analysis in #48 with the useful hint/example code in #551 (thanks @sratz) and the provided test-cases in #564 (thanks @joeshannon) the following changes and refactoring where a perquisite:

To make this sustainable in the future the following changes in external projects where triggered and PRs provided:

Altogether I approximately spend 20 hrs of development time with coding, writing issues, reviewing, analysis and test.

And as mentioned this is a prototype and it is not complete, there is more work to do to make this complete and more useful (e.g. at the moment project dependencies are resolved twice once for graph building and once in the regular build).

Lust but not least I think we can integrate this at the current state in Tycho if there are no concern ( @mickaelistria @akurtakov ).

If this is crucial to someones business/workflow and likes to push the development forward in that area a sponsoring would allow me to assign more time-slots on these particular issue. Of course one can always contact me directly or contribute upon this initial prototype.

@mickaelistria
Copy link
Contributor

That's a great step forward. I would personally not see any issue with merging such iteration as long as it doesn't cause any regression. As the tycho-build extension is new, it's probably very safe to start using it here.
So the thing that does fix #564 is addition of the GraphBuilder, right? Is the "p2 running outside of OSGi framework" a mandatory requirement to get the GraphBuilder? How strong is the coupling between those 2 major changes? As you can guess, if we can have them separated, it would be preferred for better tracking (and future debugging).

@laeubi
Copy link
Member Author

laeubi commented Jan 28, 2022

Is the "p2 running outside of OSGi framework" a mandatory requirement to get the GraphBuilder?

I'm just calling code of P2 directly from maven as opposed to Tycho firing up an OSGi framework. This would not work so well here as we are at a very early phase, and even classloaders seem separated compared to later maven stages. So it is not really something one can "split off".

@laeubi
Copy link
Member Author

laeubi commented Jan 28, 2022

As the tycho-build extension is new, it's probably very safe to start using it here.

Yes actually if not enabled code will never be called from there... and if enabled the tycho-code should never get aware of the extension code.

@github-actions
Copy link

github-actions bot commented Jan 28, 2022

Unit Test Results

145 files  145 suites   37m 42s ⏱️
234 tests 231 ✔️ 3 💤 0

Results for commit 0de2625.

♻️ This comment has been updated with latest results.

@laeubi laeubi marked this pull request as ready for review January 28, 2022 16:34
…ph.GraphBuilder

for project dependency resolution

Add a basic GraphBuilder prototype

Signed-off-by: Christoph Läubrich <laeubi@laeubi-soft.de>
@laeubi laeubi merged commit 0de2625 into eclipse-tycho:master Jan 30, 2022
@laeubi laeubi added this to the 2.7 milestone Feb 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants