Open rymsha opened 4 years ago
Is this about libs that are a part of XP distro, like lib-content etc.? If so, then how can they have a different license and not follow XP versioning?
Or is this about "external" libs, like lib-cron and lib-http-client? Then they are not a part of XP repo. In this case I'm all for joining them in a mono-repo.
Didn't get a point about "are included into apps" though. Both types of libs can be used as dependencies in apps.
Is this about libs that are a part of XP distro, like lib-content etc.? yes
If so, then how can they have a different license
From the docs
The vast majority of these libraries are licensed under Apache 2.0.
and not follow XP versioning
They do now, but this is just a side effect of them being in the same repo. In reality their old versions (7.0) are included in users apps and still can run on latest XP (7.3 i.e.)
These libs are essentially wrappers of the XP core Java Api's and should be closely related to them. Regarding licensing, the important issue is to provide linking exception for developers building on our documented apis and plattform, not where we place the code.
Linking exception also applies to running the Java api
Moving to own repo
will allow us to list license per repo. It will improve visibility because GitHub shows license in the right corner of a repo. But this is the smallest concern I have
It will speed up development - libs are almost never changed (because they are API dependent and stable between minor releases), so we can exclude them from compilation/testing of XP and save a minute or so on every developers iteration (I do it 10-15 times a day)
The opposite way as well: developers, if they only need to change lib code (improve jsdoc, update npm, rewrite to typescript) don't need to download entire XP
Debugging of apps won't be so confusing as it is today. Debugger currently incorrectly maps lines of code in lib sources (because apps have old classes)
We won't change their versioning. It will still follow XP version. So end users (app developers) won't notice any difference.
So everyday's work is correctly less convenient due to single repo.
If we change to multi repo we would have to release lib almost the same way we release system apps with one exception: we don't put them in final distro (they are not part of distro now either)
So release process will be slightly more complicated.
It should be done. But it affects build process, so should be carefully planned.
This is a mono/multi repo discussion
Libs are now part of XP repo But they
During debugging their code can be slightly different from what is included into app - confusing line numbers.