jakartaee / expression-language

Jakarta Expression Language
https://eclipse.org/ee4j/el
Other
60 stars 49 forks source link

Move /impl folder to its own project #152

Closed arjantijms closed 2 years ago

arjantijms commented 3 years ago

As a historical residu, the project contains the /impl folder. Clearly this should not be the case.

It should be moved to its own project, following the example of the jsp-api/impl folder. See https://projects.eclipse.org/proposals/eclipse-wasp

cc @BalusC @dblevins

arjantijms commented 3 years ago

Proposals can be created via the button here: https://www.eclipse.org/projects/tools/proposals.php

pzygielo commented 3 years ago

I'm a bit confused. What does I in el-ri stand for? But :+1: for separation.

dblevins commented 3 years ago

@pzygielo EL stands for expression language.

@arjantijms Huge +1 for this!! Thank you so much for being awesome with this. I think it'll be fantastic to have regular non-sec projects and good brands for these implementations!

pzygielo commented 3 years ago

I meant I, as in India.

BalusC commented 3 years ago

The RI part of EL-RI stands for "Reference Implementation".

arjantijms commented 3 years ago

The RI part of EL-RI stands for "Reference Implementation".

Indeed. The previous Oracle projects contained both the "RI" aka reference implementation, as well as the API. For some reason, or more likely, no reason at all, some of these projects were transferred to Eclipse as [tech]-api, where others where transferred as [tech]-ri, even though in all cases they contained both ri impl and api.

With the move to Eclipse, the "ri" concept has been done away with. David specifically, but others as well in and outside the Jakarta Steering committee have been softly pushing to act on this by:

  1. Splitting up projects to separate API and implementation
  2. Give the implementation a real name, to take away any hint of it being more special than others. E.g. "jsp-impl" is not more JSP than say Apache Jasper.
  3. Also use those real names in Maven coordinates (which reflects to the jar names), and package names

Ultimately, I think we should move, as proposed by David as well, the API project from EE4J to http://github.com/jakartaee/

pzygielo commented 3 years ago

Got it. I should have not be bothered by the meaning of RI then, but rather treat it simply as the whole name, I see.

As I second such split - could it be done with history preserved in both places?

BalusC commented 3 years ago

We first need to come up with a name for the RI so that the project can be properly (re)named.

How about "Expressive"? Or simply "Expressions"? Or something more fancy?

arjantijms commented 2 years ago

As I second such split - could it be done with history preserved in both places?

Actually yes, it can be done with some tricks. I would have to look into it again, but it involved serialising the git repo at the file level, then deserialising is again filtering out the things that are not needed and using that to seed a new repo. It's akin to git black magic, but I've done this before and it works.

pzygielo commented 2 years ago

Could exactly the same content be pushed, with no tricks, to new repo, and then one thing deleted here and other there?

arjantijms commented 2 years ago

Maybe a simple "add origin [new location]", then "push origin master" would suffice for just the master branch. Maybe that's the easier and more direct way, as both repos are not huge.

I once used and needed that trick to split out a tiny folder from a gigabytes large project to its own project, preserving history. In that case transferring the gigabytes over and having all that history in the new repo was not so nice.

markt-asf commented 2 years ago

Can you transfer the implementation specific issues as well? I tried but expressly isn't an option for me (I suspect you need to be a committer on the target project).

arjantijms commented 2 years ago

I'll try if I can move them. Typically you need to be committer and have some admin rights it seems. I succeeded doing this between Mojarra and Faces.