-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
[RFC] Setting NCT\ for work-in-progress API #48891
base: master
Are you sure you want to change the base?
Conversation
0b57894
to
95a4ab5
Compare
Signed-off-by: Maxence Lange <[email protected]>
95a4ab5
to
d5d42a3
Compare
A dedicated namespace means you have to change your app once the API switches from testing to stable. Would it be possible to put the APIs into the OCP namespace but tag them as |
While this helps a lot to not have to rename when switching to final, I am myself not a huge fan to have an API in |
For this to be successful there should be a limit on how long an API can stay in OCT before it moves to OCP. If it is there for more than 1 major server version, it will become impossible to maintain apps that need to support 2+ versions of the API. |
Totally agree, we need to set a maximum number of version to stay in that namespace. |
It would be great do write down this rule (and possibly others) in the docs or server wiki, just so that everyone is on the same page. |
Also if you don't mind I suggest we apply strong psalm and rector rules to the namespace, so that any new API will be in great shape before it lands in OCP (at least if it goes through NCT first). |
wip documentation: nextcloud/documentation#12329 |
This comes after some discussions regarding the implementation of IUserPreferences directly in
public
or inprivate
first.During the discussion we established that keeping the API in
private
helps future unexpected fix and modification that might occurs in the near future; however, it will also block people to test it from their apps.The conclusion was to provide a namespace for in-progress API with rules between
public
andprivate
private
API, developers are still encouraged to use and test the API in theirs appspublic
API, developers stays alert that the API can change at any moment.testing
API is set as stable, code is copied toOCP\
and previous code withinNCT\
is marked as deprecated