Update for the Git Wiki
Not long ago, we released a new version of our wiki “Smeagol”. The differences might not seem to be a lot on the outside, but you could say that we changed almost everything “under the hood”.
The Wiki for Git Repositories
Just in case you have never heard of Smeagol, let’s start with some general information: Smeagol is a wiki that we developed and integrated into Cloudogu EcoSystem, because we think that a project’s documentation should be stored with the code - therefore inside a Git repository. Originally we used the Open Source wiki Gollum and wrapped a frontend around it. We already introduced Smeagol’s main functions in the first post about it. Now it’s time for an update, because we made some major changes.
The reasons for the changes
Of course, the saying “Never change a running system!” is true , but the first version of Smeagol had some flaws that could not be fixed with some minor changes. When we first developed Smeagol, we used Gollum, as already mentioned. That was an acceptable solution to start with, but led to several restrictions:
- Long reaction times - Gollum is not build to handle several repositories, authentication, several users, etc. To compensate for that, we had to implement many adjustments. Unfortunately, those led to a weak performance.
- Not so much flexibility when it comes to changes, because we didn’t want to make individual changes to the core of Gollum.
- Immature search
- The preview of the WYSIWYG editor and the actual page didn’t always look the same, because Gollum and the frontend used different renderers
That is why we decided to give Smeagol a complete makeover.
The changes to the Wiki
To correct the inconveniences mentioned above, we made the following changes:
- We implemented a hexagonal architecture with bounded contexts
- Smeagol now has a Java backend and a React frontend with Redux as state container
- Gollum is no logner used
- Wiki and WYSIWYG editor do now use the same rederer and both use the same design
- The search now uses Lucene and provides a fulltext search.
Thanks to all that, Smeagol is now a lot faster, resource efficient and easier to use.
A few impressions of the new design
As before, the repository browser shows all repositories that the user has access to in SCM-Manager.
Hint: To group repositories, you have to use “groupname/repository_name” as name of repositories in SCM-Manager.
The UI offers you all the important options like search, edit, new, rename, page overview, …
And, last but not least, the new WYSISWG editor uses the same renderer as the wiki viewer. Therefore there won’t be any bad surprises in the future once you hit the “Save” button.
Try the wiki yourself
If you already use Cloudogu EcoSystem, you simply have to get the latest version of the Smeagol container. If you don’t have an EcoSystem of your own yet, you can check out our playground to try out Smeagol in the context of the whole Cloudogu EcoSystem platform.