Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fractal roadmap for 2017 #199
Fractal’s internals need a major overhaul in order to be able to support meaningful future development, including many of the suggestions made in the ‘Moving Fractal forwards ‘ issue.
Doing so will very likely involve breaking changes, and so will require a major version number bump. That means that after the current v1.1-beta release is completed and pushed out, the next major version of will be Fractal v2.0.
As part of this major version bump, Fractal will also move to requiring a minimum Node version of 6.0 or greater (now the current Node LTS version).
The scope of the v2.0 release is not yet decided on and community input would be very welcome. However the main focus will be on releasing a more modular, better tested codebase that can be used as a platform for future development and will hopefully make it easier for outside contributors to get involved with the project.
There is currently an outstanding v1.1 beta release. This still has some issues but once these have been resolved and re-tested it will be released out in the wild.
There are also some outstanding PRs and a v1.1 release of Mandelbrot pending. These will be reviewed, merged and released in tandem with Fractal v1.1.
After this it is not anticipated that any major new features will be added to the v1.x branch, although it will still be maintained for bug fixes (and PRs considered) as required.
Development work on Fractal v2.0 has already been started, in the form of splitting out some known pieces of core functionality into smaller, individually tested packages.
The first major piece of work will centre around the v2 component parser, for which an Request for Comments will soon be published outlining the suggested changes. The new component parser itself will be released as a standalone package that can be run independently from the main Fractal instance itself, which will open it up to being used by other tools or as a direct dependency of projects if required.
Beyond the component parser, the web UI server/builder, the documentation generator and the CLI all need looking at and decisions will need to be made about what should be included in the v2.0 release. It is the intention that all of these will be developed as standalone packages so that we can get ‘developer previews’ of each part of the system out before wrapping everything up into a full Fractal release.
Right now I feel it’s too early in the process to be committing to specific date- based milestones for releases of these packages, but as the scope of each firms up I’ll try and put some rough projections together.
A Github project board (or boards) will soon be created to manage development of these packages and the overall project. I’ll link to it from here as soon as it’s set up. In the meantime please add do add any comments on the above below.
This all makes sense. I'd just add a little caution regarding v2.0; careful this doesn’t become such a big rewrite that it never sees light of day! One way of avoiding this fate might be to make the codebase modular in stages, rather than all in one go. It sounds like you may be thinking similar thoughts (“decisions will need to be made about what should be included in the v2.0 release”).
And, if I can help out with any updates to Mandelbrot in support of these changes, just let me know.
@paulrobertlloyd yes definitely well aware of the dangers of the 'big rewrite' that never appears! But hopefully doing it in stages with standalone packages will ensure that the process isn't a black box and that other people can provide input as we go. And thanks for the offer of Mandelbrot help - I'll be taking you up on that at some point I'm sure! :-)