featured image Update for the Git Wiki

11/23/2018 by Daniel Huchthausen in EcoSystem

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.

Smeagol repository browser

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, …

Wiki functionalities

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.

<img alt=What you see is what you get editor”” src=”/images/blog/2018/smeagol_editor.png”>

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.

Daniel Huchthausen
Daniel Huchthausen

- Consultant -

When he is not exploring the wilderness, Daniel keeps himself busy with topics such as quality assurance, testing and PM methods.