Skip to content

Better document project state #611

@matthijskooijman

Description

@matthijskooijman

I think it would be good to update the documentation in this repo, to better reflect the current maintainance status. In particular:

  • A little introduction about the maintainance state: Maintained by a team with limited time, focus on bugfixes and received pullrequests.
  • Some more information about the development process and policy (as proposed in Repository policies #585) and info for contributors.
  • Some information the project history and relation to the rewrite initiative.
  • An overview of the repo maintainers and maybe also other related people (distro maintainers, specific testers e.g. for flatpak).
  • Information about the release process (and other documentation for maintainers, e.g. how to update flatpak dependencies etc.), as proposed in Document & improve release process #608. Also mention how releases will be announced (only on GH currently, so subscribe to get notified).

I'm wondering a bit on where to put this info. If possible, I'd like to keep the repository root as clean as possible (so I would also like to replace the current AUTHORS and MAINTAINERS files). It would be simple to put all info in the README.

Some of this could maybe go into a CONTRIBUTING.md file, which is also automatically linked by github (e.g. when creating a new issue). Github supports such a file CONTRIBUTING.md in the repo root, a .github folder and the docs folder. As I said, I'd like to keep the root clean, and .github is too hidden for reference docs, so I guess using a docs folder makes sense. We could also add other files there (since CONTRIBUTING.md should be targeted to contributors, but a lot of the above should live elsewhere).

I'm thinking:

  • docs/CONTRIBUTING.md with info for contributors. I think the info about development and testing that is currently in README.md can also be moved here.
  • docs/MAINTAINANCE.md with info for maintainers.
  • README.md for everything else (project status, people and history).

Any other thoughts?

Below some bits of text to include, TBD where exactly.


This repository is currently maintained by a couple of people. Since we cannot free up too much time, the focus will be on bugfixes and small improvements. Help is always welcome, we will try to prioritize handling any contributions (i.e. pull requests) that are submitted.

Project history

The hamster project has quite a long history. It was started in 2007 by Toms Bauģis and Patryk
Zawadzki, being called "hamster-applet", a gnome2-specific systray-oriented applet for time tracking. Version numbers followed Gnome versions (e.g. 2.91.3). After a while, the systray applet was replaced by a gnome-shell extension (separately developed at https://github.com/projecthamster/hamster-shell-extension). In 2012 the project was renamed to "Hamster time tracker" and the versioning reset to version 1.x.x. In 2013, the project became largely unmaintained, with some flares of development (mostly porting to gtk3, but this was never released).

In 2014, Markus Koller (@toupeira) took over maintainance of the project and finalized 2.0 release, but then development died down for a while again.

In 2016 Eric Goller (@elbenfreund ) took over the project and started on a complete rewrite of the codebase (see below), leaving the 2.x hamster unmaintained. Development of the rewrite proceeded with ups and downs, but died down again, unfinished, in 2017. Development of the Gnome shell extension continued, but also stopped in 2018.

In 2018, @ederag took over maintainance of the 2.x hamster version again, porting it to python3 and adding various improvements to make it usable again. Somewhere along the way (maybe even before 2.0) the name was simplified to just "Hamster", though "Hamster time tracker" was also used here or there. In 2020, a version 3.0 was released with some significant refactorings and updates of external dependencies. The Gnome shell extension remained without an official maintainer during this period, though a number of people still worked on the project and built on top of each other's forked repositories.

In 2020, shortly after 3.0 was released, maintainance of the 2.x hamster was taken over, spreading the responsibility over a team of four. On the shell extension front, there were more people interested in ongoing development, so a second maintainer team was formed for the shell extension (with some overlap between both teams).

And that is where we stand now.

Hamster rewrite

In 2016, @elbenfreund started a full rewrite of the hamster code (see for example this announcement. This rewrite consisted of a number of different repositories to improve the separation of concerns: hamster-lib, hamster-cli, hamster-gtk and hamster-dbus.

Over the years, development of this rewrite has flared up and died down several times. Currently, this has not yet resulted in a finished and completely usable application.

Until this rewrite is in a more complete state, the original code base (i.e. this repository) is still considered the current version recommended to be used.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions