-
-
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
set defaultEnabled in shipped.json #34072
Conversation
not sure the fail check is related |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apart from small question, looks good.
Is it necessary to keep support for the xml tag? We know the exact list of default enabled apps, no?
Same question, better remove that now? |
just to be sure that no app is forgotten in next build |
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
32e2d1c
to
0efd6d9
Compare
@nickvergessen : list of apps should now be complete, it is based on a clear setup of beta6 and a grep in @skjnldsv @come-nc : removing retro-compatibility and its tech debt as now the list of apps should be complete |
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
Restarted CI, as it seems to be failing for another reason. |
9 errors, seems relevant
|
Ah, maybe not, I see other PRs with the same error |
in other news, seems the apps acceptance tests also fail, likely related |
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
documentation does not seems necessary |
@ArtificialOwl @come-nc @skjnldsv Was there a good reason for removing the "old/deprecated check on Previously, In my opinion, the original mechanism should have been left intact even if a new method is being used to mark shipped apps as enabled by default. If you have an alternative method that I could use (or a more efficient mechanism that could be added instead), that would work for me. While I may be one of the only people who took advantage of this feature, removing it has made my deployments difficult. |
I would say the default enabled mechanism was never intended to be used like you did. |
@come-nc My applications do use migrations for their installation - that isn't the problem. I want these custom apps to be installed and enabled as part of the NC installation process. More simply, if I run |
I’m pretty sure that is the problem. How are they running code in the installation process without a migration? |
I believe we're talking about two different installation processes. I think you're talking about the application's installation process. I'm referring to the installation of Nextcloud itself - the initial first install. That is when I want my applications to be installed and enabled. My applications install just fine once a Nextcloud instance is up and running. I want my custom applications to be installed and enabled during the first install via server/lib/private/Installer.php Line 554 in 069477e
|
But that is not intended. "Install shipped app" is for installing shipped apps, which is the apps we ship in the official zip/tar file. |
Now you're talking about shipped apps. I'm talking about default enabled apps. They are different (or, at least, they were). Previously, these were mutually exclusive categories. Shipped apps were not always default enabled, and not all default enabled apps had to be shipped - this may not have been intended, but it was indeed a feature and a capability that has been removed. Now, default enabled apps are a subcategory of and dependent upon the list of shipped apps. Also, the default apps have become a hard-coded static list with this change. Previously, I could mark any app I wanted as Another reason why this is problematic is because it makes bundling my own "distribution" of Nextcloud difficult. From an open source standpoint, it was easy to bundle my own custom apps that get enabled by default and redistribute this as a "flavor" of Nextcloud. Now, I can't do that. I either have to modify Imagine if Ubuntu was simply Debian with a bunch of custom I'm sorry for making a big deal out of this. I may be the only developer who took advantage of this feature, but I really did rely on it (whether it was intended or not). Is there any performance reason why the legacy code couldn't be added back into the source? It doesbt seem to cause any harm (and from my point of view, it makes the system more malleable, which I would argue is a good thing). |
No, default enabled apps were always designed to be a subset of shipped apps.
Also apps with the
That sounds like a perfect case for the Bundles that we have:
Looking at the code it's mostly about readability of the code and since it was never meant to be working like that in first place the old way was replaced. |
Perhaps that is the way it was designed, but in practice, they were mutually exclusive, and it did provide this functionality. Also, just because a feature isn't intentional doesn't mean it is invalid or not useful. There are plenty of unintentional features in IT that wound up becoming extremely useful:
Bundles don't provide the same functionality. There is still no way to have a custom app or bundle automatically installed during the standard installation process. I can't create my own *.zip distribution of Nextcloud that auto-installs and enables my custom apps like I could with the I realize that I'm not going to be changing minds on this topic or convincing anyone to add the legacy code added back into the project. Instead, could we discuss how to develop this as an actual formal feature? |
You forgot Doom was never intended to be used as a process management user interface, and yet https://psdoom.sourceforge.net
If you are bundling Nextcloud and distributing it as zip, you can edit the From what you said your main blocker for that is the code integrity check, which I am not super familiar with, but maybe you can update the signature and use your own cert? The code will not validate with Nextcloud root certificate, but from what I understand that is the point of the system, that third party distributing forks cannot pass them as our official version, or something like that. |
Or maybe simply disabled the integrity check? |
The main idea is to remove the non-official tag
<default_enable/>
from apps'info.xml
so it is possible to release version on the appstore of apps distributed with core.defaultEnabled
incore/shipped.json
IAppManager
:isDefaultEnabled()
,getDefaultEnabledApps
Installer.php
keep old/deprecated check on<default_enable/>
for retro-compatibility inInstaller.php
<default_enable/>
from apps available in this repoTodo