Yo,
As we are closing in on the end of this cycle v1.5
and with 55 completed items on the milestone, I thought it would be nice to take a look at a recap of the efforts made the past couple of months.
💽 The Monorepo
We switched to a monorepo earlier this year to simplify development but had to deal with many limitations and challenges along the way. In this cycle:
Some of the things we still have to add/improve:
- Global Prettier for
Less
YAML
..etc
- Set up GitHub action scripts to close new PRs in read-only repositories.
- Improve backend testing experience, locally and in workflows.
👷♂️ Test Coverage
Automated tests allow us developers to assert the behavior we expect from the software with different parameters in different environments, thus easily catching and preventing any regressions from future changes.
Ever since we released a testing package that can be utilized in extensions, we have been concentrating a lot of efforts on improving our testing coverage, even requiring new contributions to include tests for any additions/fixes/changes to the codebase. In this cycle:
Where we can improve:
- Add test coverage reporting so that we always have clear numbers on it.
- Write friendly guides/tutorials for extension developers to help strengthen the ecosystem.
- Continue enforcing tests on new changes in core.
🛡️ Security
Having created an explicit project board of our roadmap, we finally started giving the security roadmap some love. Although some of the items might not make it to v1.5 and will have to wait until v1.6, we managed to work on more than 76% of the roadmap, including but not limited to:
What can be improved:
- Research and add more items.
- Complete the roadmap.
🦄 TypeScript
The migration to a full TypeScript codebase is a big item on the 1.x roadmap. In this cycle, we converted a good chunk of components (flarum/framework3538, flarum/framework3536, flarum/framework3532).
What can be improved:
- More JavaScript to TypeScript refactors 😱.
📦️ Package Manager & Flarum Installation Packages
This was slightly mentioned a few times here and there, but never officially mentioned. For a while now we have been looking into making the use of SSH access less/not required, and have been working on a package manager that essentially acts as an interface to composer
itself. It will probably see a beta release after Flarum v1.5
.
It will allow admins to install, update, and remove extensions. As well as update Flarum minor and major versions.
In preparation for that, we have also built an automated process that will create installation tarballs so that one can download a package, extract it to their web filesystem and proceed directly to the installation screen (as long as the web server is properly set up). Though we have yet to further try this out.
And that's not even all of it, there were a number of bugs fixed 🐛, some bells 🔔 and whistles added, and ♿️ a11y and 🚀 performance improvements.
As always, if you're interested in helping build Flarum, check out some leads in our contributing docs. We can always use more people.
Till next time!