Hello at all devs!
I am seeing a certain problem with the current way of scaffolding new apps: Some of the files in the template as you download it from the app store in the generate app page will be just custom files. Think a
package.json or the various PHP/JS/Vue files that you are writing to compose your individual apps on. This is your code and I am not talking about these files here in the topic.
There are however other files that serve more as a frame for the app. You can think of the GitHub workflow scripts, for example. Others are the configuration files for stylelint, psalm, etc. I guess many devs will not touch these ever in their life.
The problem is that if the app template evolves over time and new features are added (in form of scripts, configuration etc), old apps will not benefit from these changes. At best they manage to install it on their own. At worst they do not even get notified of new features that are available and break the deployment due to incompatibilities.
If the documentation is updated to reflect such new features/structures, the older apps will get out of sync and new contributors will get more and more problems as everything seems custom (in fact it was just frozen in the past).
In order to cope with the situation, I have a few suggestions. I am not sure, if these are the best way to go. They serve more as a discussion basis. I hope that some devs will step on this and give their opinion in a short (or even longer) comment.
- Create a changelog of the changes of the templates. Something developers can register (like a topic in the forum or a ro issue in Github.
- Usage of a submodule to collect all files in a subfolder of the app. Then, the devs can decide to update the submodule containing these scripts to a newer version and benefit of the new/changed features.
- Move the templates into individual repos. That way, an app dev can register an additional upstream repo (the original template repo) and merge the updated from there.
- Information how to migrate legacy app code to the semi-automatically updating structures.
Obviously, the suggestions 2+3 are sort of redundant. It might be possible to combine both even.
This request is more a request for a common Best Practice within the community to have a more homogeneous code style throughout the ecosystem. This might reduce the effort to helkp with foreign projects.
I am not considering the list perfect or complete. If you have better ideas, feel free to comment.
Let the discussion begin!