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
Namespaces / naming conventions for projects #369
Comments
|
In the old days of the SAP/ABAP code exchange there were a namespace /CEX/ reserved, however I think it is not used/possible anymore. Namespaces is the SAP solution to this problem. However, a S user is required to register a namespace, so this is typically not possible for open source projects. abapGit currently does not enforce any naming scheme for objects, but if an object exists in a different package than expected it shows a warning when trying to overwrite the object. I have not seen a name-clash yet in the wild ABAP open source world, but hopefully over time we will see more ABAP open source projects, and it might become a problem. If we see a lot of ABAP open source projects, I guess SAP will be forced into having an opinion on name clashes(eg. provide namespaces for open source projects). For my projects I typically just prefix the objects with some fixed characters, to reduce the chance of clashes, and others also follow this scheme: Working with open source projects, then if there is a name clash, I'm sure the community will figure out to rename objects in order to fix the issue. |
|
Thanks for your thoughts. I agree in long term SAP will have to be the one to provide a clean solution for this. For reference, here are some other projects on this topic: |
Looking through this project one topic I have so far not found any discussion on is namespaces and naming conventions. Not in regards to source code but to the development objects themselves. If I start a project which I want to share as freely available to install on anyone's system (and to contribute to) I also want to make sure the objects do not conflict with any of the ones already on the system. Not sure how ababgit handles conflicts right now.
This seems to be especially problematic in SAP development because packages do not restrict the namespaces of the objects they contain but rather every object has to be named in a unique way. Renaming objects and their uses is also extremely painful / impossible (dynamic programming). Another restricting factor is the limit length object identifiers (think of database tables).
The normal / proposed solution by SAP of reserving namespaces (/namspc/) seems to not be an option in this regard. People wanting to contribute to a project cannot do it because the namespace is reserved (and all their changes would be modifications). So only the customer namespaces Z and Y can be used which customer development on the system as well as all abapGit projects (!) share. With an increasing amount of projects collisions in namespaces seem to be unavoidable.
Some solutions I thought of (none of which seems incredible practicable):
Not a big fan of any of these.
Solving this problem is in my opinion a requirement for package management / dependency management ( #217 ).
Any thoughts / ideas on this?
The text was updated successfully, but these errors were encountered: