craft your forge, build your project, grow your community freely
1# Version 0.2.0 is here
2 3In this version, my main focus was on stabilization. I fixed over 14 issues, some of which were identified before version 0.1.0, but a significant proportion were reported by YOU. A big thanks to everyone who took part of it in any way.
4 5Every time I shared gitroot, I came across new issues with the documentation and binaries, but also questions such as "how can I compile it?" or "what's the next step?". And I'm delighted to see your enthusiasm for it!
6 7## First contribution
8 9Although all my new contributions were related to "bug fixes", some of them required new features.
1011### No notification == no contribution
1213The first amusing problem came from the first contributor! Fifteen days later, he contacted me to say, "Hi, I pushed a branch where I corrected a lot of typos, but... nothing has happened since I pushed it?". In fact, I wasn't actually aware that a new branch had been pushed. I had forgotten to implement a mechanism that would notify me whenever a new contribution is published!
1415A simple way to achieve this is to add an RSS feed (yes, I was inspired by Radicle for this feature). This is ideal, because all I have to do is add an "rss.xml" file to the web folder...and the current API of plugin 0.1.0 allows me to do this! So I created the `pollen` plugin. It takes all the commits from all branches and adds an `rss:item` to a page.
1617However, in order to achieve this, I opted to experiment with a different programming language (all the plugins are developed in Golang). I chose `assemblyscript`, which is a subset of the `typescript` language. So I added a new `plugin sdk` in typescript.
1819> To follow all gitroot commits follow [https://gitroot.dev/rss/all-commits.xml](https://gitroot.dev/rss/all-commits.xml)
2021### Lot of bugs
2223During this first contribution, I discovered numerous bugs in the βgrafterβ plugin. From the [diff rendering](../issues/close/v0.2.0/73e8-graft-diff-not-working.md) to [unwanted merging](../issues/close/v0.2.0/e188-graft-merge-not-wanted.md) and [very complicated final merging](../issues/close/9422-graft-need-3-review.md), nothing worked! Even the basic GitRoot features were painful to use :D
2425## Let's the show continue
2627### No linux == no gitroot
2829Surprisingly, someone wanted to compile gitroot on a Mac. Well, gitroot is actually written in Go, so there's no problem doing that... Except that I forgot to publish a fix I made to a dependency. Go couldn't download the right dependency and therefore fails to compile completely... But everything is OK now! I added an automatic compilation for Mac, you can find this on the [version](../CHANGELOG.md) page.
3031### Doc, doc... doc?
3233After that, someone tried to run gitroot on their local computer, as described in the [document](../doc/tutorials/from_zero_to_hero.md). However, when version `0.1.0` was released, I discovered a bug. Gitroot cannot know where the `root` repository is located (because you can change its name). To fix this, I added a configuration file before initialization, which had to be passed on launch... It's my fault, I forgot to update this tutorial.
3435### A lot more
3637As you can see, there were many mistakes in the first version. However, they have all been fixed, and, of course, I have added plenty more to keep me busy for the next version!
3839### More technicals bugs
4041But I also fixed several important issues that were the result of some shortcuts that every project has to take for publication. One was about a [FS bug](../issues/close/v0.2.0/95b0-plugins-fs-bug.md) when directories were empty, another concerned the [garbage collect plugin](../issues/close/v0.2.0/f1ab-garbage-collecte-plugins.md) when the plugin had finished running, and many others.
4243## Simplify plugin install
4445In the `0.1.0` version, to install a plugin you should download it, tell to gitroot where it is and then after push/pull activate/configure it. Now it is way more simple, just give an url, like `https://gitroot.dev/releases/0.2.0/pollen-0.0.1.wasm` and optionnally (but encouraged) a checksum `sha256: 49cd8e1846b1612a0d5686918b502fe29e070e7bf9613c1ba9a1dfe5417d0f2a`. Gitroot will download, check and run it. Of course you need to activate it. All url and checksum are in the [versions page](../CHANGELOG.md).
4647I have added a mecanisme to check that the plugin you try to run is compatble with your version of GitRoot. So launching `ladybug-0.0.1.wasm` in `gitroot-0.2.0` will log an error and not run the wasm. As GitRoot is in alpha version all new gitroot version will need plugins update.
4849## What next?
5051With the exception of any new bugs detected for the next iteration, I would like to focus on the following:
5253- creating a plugins marketplace
54- adding a new language SDK for plugins (Maybe Rust? Or Zig?)
55- rebasing the Git lib fork and applying patches