What append this year?
In this post, we will see how the project went further during 2015 and expose what is planned for the coming year. A few documentation for the services used is provided too.
This report has been delayed by unexpected problems with the new website. Apologies for this. It’s dated with the original planned date.
You may jump to the new functionnalities.
Huge release coming
During 2015, according to the figures from git, we worked much less on the code than a year before.
Writing code from an empty state is faster than adding lines in an existing codebase. However, from the user point of view, the second is the very one to add functionalities. This way, the meaningful figure in this case is addition and deletion in an existing codebase. We will thus focus on the two last bunch of six month.
We can see that the last period (10/7/15 → 31/12/15) was much more productive than the former (1/1/15 → 21/6/15). This a consequence of the release of a major stable version during the first one, which forced us to improve the website and the documentation. As a result, the last six month, we coded much more and we can say that an instable version with a lot of new functionality is coming. Let’s take a look at the figure now.
6 month chunk
These figures comes from
git diff --stats first-commit-for-the-date..last-commit-for-the-date (taking last line). HEAD was a2d0963f21ea81cc913289e71cda9c0f8d852712.
|22/7/14 → 31/12/14||1/1/15 → 21/6/15||10/7/15 → 31/12/15|
Diff from version 2
We saw above that the six month cut is great to show the “back to code” movement in the second part of 2015, but it does not give a clear vision of changes between the different version. With the following command, we got figures showing the effort on the new version.
git diff --stat v0.1.3..v0.2.2 | tail -n 1 59 files changed, 2624 insertions(+), 157 deletions(-) git diff --stat v0.2.2..HEAD | tail -n 1 54 files changed, 3558 insertions(+), 316 deletions(-)
Or, in a table:
|V0.1.3..v0.2.2 (1)||V0.2.2..HEAD (2)|
In a nutshell
New functionality & a bonus version
We described how the new functionality affects the code, but what are they?
Mainly, tmp file format was rewritten, to be more flexible. Command line parsing was rewritten as well, it’s now cleaner and would support auto-completion.
There will be a unplanned version. In the code, we expected to deliver a breakthrough version fast. Hence, the working version has been set to 0.3.1, instead of 0.3.0. However, due to the large amount of changes we saw below, a pre-version would improve the stability and be a great occasion to get feedback from the user. As a result, the “chrismas version” would be called v0.3.0-pre1 and delivered in a few weeks, maybe in a few days.
Expect more about functionalities in the release post of the unplanned version.
Let’s speak of humans. We are on Freecode.club.
We have got a new website, at oclaunch.eu.org. In addition to having a shorter domain, it was the perfect chance to fix some issue. Beyond shorter and more credible urls, the new website allowed to change some them, especially for the licence (/foss.html → /floss-under-cecill) or the documentation (/wiki → /doc)
The old website is kept as-is, for archive and to avoid dead links from other places, so update your bookmarks to keep in touch!
In 2015, we have got a new promotional website, easy to edit, give us feedback and contribute by editing the description. You have a role to play with the external point of view you have. ocla.ml will then be used to promote the project thanks to its ultra short url. We will ask you to share it in 2016.
You can now edit the documentation and send pull request to improve it. It’s now that the wiki has been renamed documentation that it’s truly editable by everyone ;-). Actually, the name “wiki” comes from the import of the Gitlab wiki, and we just copy-pasted it.
Get in touch!
To be sure do not to miss any version, especially the unexpected one, we created a mailing list for announces. See the mailing list page to subscribe. This is a very low traffic mailing list, moderated, only a few developers can post on it.
What expect in 2016?
Many new version
Expect up to 3 version:
- a preversion, 0.3.0-pre1, followed by other preversions if they are many bugs,
- the breakthrough 0.3.1 version, with new configuration format, logging of command launched & more,
- Some 0.3.x to correct bugs if necessary, few improvement if possible.
Hopefully, there would be a beta of 0.4.x if we get help.
As usual, contributions are welcome, not only for the code!
And a bonus: documentation on migration
We will describe below how we linked domains (ocla.ml and oclaunch.eu.org) to a tuxfamily hosting.
Freenom free domains (like .ml, .tk…)
Using Freenom services, you can use a toplevel domain for free. Some countries generously give there TLD, for free to register one year, or for fee if you wish to own it longer. Further more, .ml is pretty accurate for OCaml program, since source-code files end by .ml.
Freenom setup and issues
Once you have registred with Freenom, have rented your domain, you can display your page at your domain by two ways: Url redirection: Redirect the domain (let’s call it domain.ml) to the page. The client doesn’t see your domain after that. Iframe embedded: Embed your page with an iframe, so the user can stay on your domain. However, when he navigates on your website, the url doesn’t change, and this causes problems, especially when sharing or with web crawlers. A solution would be to set up the domain.ml DNS, to use it as any pay-domain. We describe it with Tuxfamily below.
On one hand, we need to setup freenom dns A record to point to the Tuxfamily web server. You can get the ip-address in the wiki. On the other hand, you need to request by Tuxfamily a Webarea at domain.ml. Finaly, upload your files!
Now, you are convinced that it is pretty easy!
It was even simpler to setup
oclaunch.eu.org, since eu.org rely on external DNS (tuxfamily’s ones here) and performs tests on your installation. However, it’s pretty like ocla.ml setup for the rest.
Be aware that it takes a few day after asking a domain to get it.