Skip to content
This repository has been archived by the owner on Jul 13, 2024. It is now read-only.

👋 Looking for maintainers #328

Closed
nicoespeon opened this issue Oct 11, 2019 · 38 comments
Closed

👋 Looking for maintainers #328

nicoespeon opened this issue Oct 11, 2019 · 38 comments
Labels
📦 Archived Open issues when project was archived

Comments

@nicoespeon
Copy link
Owner

Hi everyone!

I just became dad few days ago 🎉 🍼

Thus, it became clear to me that I need to focus my energy and limit the number of project I run in parallel. In terms of personal open-source side-projects, I'll focus my efforts on Abracadabra, a VS Code extension that provides automated refactorings for JS / TS.

It has been a long time I'm running Gitgraph.js with my friend @fabien0102. We created this project so we could easily draw simple git graphs, directly in the browser, to use for blog posts and presentations. These days however, I don't use it much anymore.

However, you can see with the currently open issues that people have different, interesting suggestions to cover more use-cases. Also, there are bugs to fix. Finally, the overall documentation of the library could be improved.

I won't have the time & energy to tackle these. Not in my foreseeable future at least. Thus, I'm looking for new people to maintain the library and take over the project.

I'll be able to provide guidance and onboard you on the project if you want. You'll see that the dev environment is "not that bad", with features essentially covered with tests (unit & E2E).

Let me know if you're interested. In the meantime, be aware that I won't work on the open issues myself.

hack-tv

@marekyggdrasil
Copy link
Collaborator

@nicoespeon indeed managing such project is time consuming and it is understandable you have to prioritise to keep everything going.

I reviewed gitgraph.js repo and I find it understandable and test coverage is good as well.

I have some fresh ideas, I think this library could be used for more than just git graphs, personally I use it to take notes (in my research work I often have to explore many ideas simultaneously and at some point I realised git graphs with branches are good way to keep track of what is going on).

As you said you don't use use it much anymore, while for me it is a tool I use daily at work so I would like to help you out and dedicate some of my time to keep it running, resolve issues, bugs, help with docs etc.

If you want me to join in, feel free to reach me either here, e-mail or gitter, whatever the mean of communication you prefer.

@nicoespeon
Copy link
Owner Author

@marekyggdrasil awesome. I'm on mobile right now but I'll reach you out next week to set you up with everything you need. Thank you, a lot ❤️

@nicoespeon
Copy link
Owner Author

@marekyggdrasil I don't know if you saw that, but I replied to you with all details on Gitter 😉

@marekyggdrasil
Copy link
Collaborator

Sorry for delay, replied! I'm onboard!

@lorarjohns
Copy link

Hi! I've just spent the last couple of days so enamoured of gitgraph that I've been wandering around in the codebase and writing custom code with it for hours. if you'd like another helping hand I'm happy to assist :)

@nicoespeon
Copy link
Owner Author

Hi @lorarjohns 👋

I think it would be awesome if you could assist indeed. I'll add you as a collaborator too, so you can help @marekyggdrasil who started replying to the currently open issues.

Regarding Gitgraph.js maintenance, here's what I shared with Marek, so anyone have a transparent view on the current status of the lib:

Here's my TL;DR of the good things of Gitgraph.js v2

  • Separation of the core from the rendering libs. It means we can provide the library in different technologies (React, vanilla JS, Angular, Vue, etc.). It's not tied to the DOM, so I even did a POC of node.js rendering that would work in the CLI (but it doesn't work anymore as we changed the core and I didn't update the lib).
  • core has been tested a lot. It was not 100% implemented in TDD, but most of it was! Also, most tests focus on the final output, so it's quite flexible for refactoring.
  • We have visual regression tests for free thanks to Storybook & Chromatic QA. This + unit tests of the core means we are really confident we don't break things when we do changes and the PR checks are all green 👌
  • The dev environment should be quite easy to set up. I tried as much as possible to keep things simple, so you can just run few commands and it works.

On the lowlights that could be improved:

  • The internal design of the core mimics a lot what was done in v1. I don't think the current model is the best. It might be a lot of work to change that. But thanks to tests, it's still quite doable IMO.
  • Some unit tests can be a bit complex to read, because of the "visual" nature of the lib. A lot of things are about {x,y} positions, so it's not always easy to visualize what it should be.
  • The separation of "core" and the rendering libs is not perfect. Some code is duplicated among the different rendering libs and should be pulled back in core IMO.
  • Because we want almost everything to be configurable, it adds a lot of complexity at different level of the lib (e.g. styles in templates that you can override at different levels, in the different methods).

Regarding what would be great to tackle next

First, we could go through the current list of open bugs & questions, to help people.

Then, we should do a better work at documenting the usage of the library. I quickly tried to make a nice website based on slides, but I'm not happy with the final result. People need a good documentation. v1 documentation was not complete (far from it), but it was better. I think this is one of the most important things to fix. Related issues are #274 #275 and #278.

Concretely for the next steps @lorarjohns 😉

  1. I'm adding you to the list of Gitgraph.js collaborators
  2. You should be able to clone the repo, install dependencies, run the tests locally, etc. Let me know if you have troubles with it.
  3. I suggest you pick any issue you'd like to work on. Just try to keep a small scope at first. Then, try to fix it. Ask me anything if you need help / support / thinking about the approach. The idea is for you to get familiar with the codebase so you can be autonomous. You can also open a draft PR with your changes. I'll do my best to give you answers asap so you can become productive on your own.

Most of all, don't worry to take decisions. It's open-source, so very open to changes and improvements.

I'm mostly here to help understand the decisions that were taken and the strategy that was behind. But it should serve your needs (and the one of the community).

Hopefully, the library will be even more helpful to everyone.
Thank you!

@mikstur
Copy link

mikstur commented Dec 13, 2019

@nicoespeon congrats on becoming a dad!

I just recently came across this library as I am looking to implement some visualizations that look similar to git branches. I am also primarily working with angular.

Therefore, I might be able to contribute some changes to this repository as well, specifically perhaps an angular wrapper/implementation. Can you please add me as a contributor?

@jd-porter
Copy link

@nicoespeon are you still looking for contributors? I've been using gitgraph off and on for a year & just saw this pinned issue. I'd love to help out.

@nicoespeon
Copy link
Owner Author

@mikstur & @jd-porter sure. Sorry for my late reply, I've been off for the past week. Adding you both quickly right now 👍

So technically you'll be 4. Thank you for that!

Also, if you finally can't help maintaining the library just let me know, that's fine! I'll check in a few months as I wouldn't like to have a list of 10 contributors with no-one actually contributing 😉

@deanrad
Copy link

deanrad commented Mar 11, 2020

The slides and storybook are so, so awesome, and i would be proud to maintain this (and think all the stories you have would make it really relatively easy). That said - I'm a dad of 2 so I'll look for mentions but can't promise anything right now!

@S1ngS1ng
Copy link
Collaborator

@nicoespeon If you are still looking for maintainers, count me in as well.
Yesterday, I found an issue that I thought I could work on. I made changes today and already opened a PR.
If there is any other bug/enhancement that I can get started with, please do let me know. Thanks

@erickhagstrom
Copy link

Congratulations @nicoespeon! I'm a dad of 9, so yeah, I get it. The first one is the hardest. Until the second one comes along. :-)

I have a lot of irons in the fire so can't commit to anything just yet, but I like what I'm seeing here and will use it extensively, I'm sure. We'll see if I can make this more than just an occasional fling.

@nicoespeon
Copy link
Owner Author

Thank you @S1ngS1ng and @erickhagstrom 👍

It has been quite some time since I touched this repo. I give it a look from time to time but I don't have much time to do more than answer a few questions and review PRs (thanks there are automated tests!).

Help will be welcomed 😉

@NotMoni
Copy link

NotMoni commented May 6, 2020

@nicoespeon I am available to help and maintain 🦄

@nicoespeon
Copy link
Owner Author

nicoespeon commented May 11, 2020

@S1ngS1ng I added you to contributors since you pushed a PR already (thank you!).

@NotMoni thanks, I count you in also. We're still needing help to solve issues that are being opened. I think starting with fixing bugs would be a good idea.

@mikstur & @jd-porter I dropped your invites since I got no news from you. Let me know if you'd be able to help too.

@lorarjohns & @marekyggdrasil anything I could do to help you onboard too?

@nicoespeon
Copy link
Owner Author

Basically, this is still valid: this project is still looking for active contributors.

I still don't have any bandwidth to work on this, especially since I'm not using it much these days. I'd be happy to spend some time to help a motivated soul take over this project to maintain it.

@marekyggdrasil
Copy link
Collaborator

Thanks for offering, @nicoespeon, this is not urgent at all but it would be good to resolve #296 as there are people who are helping out with the project but (understandably) do not want to declare to become active maintainers (for example @pvigier offered to help implement Gitamine for #325 ) so resolving #296 would provide better recognition to all contributors and might encourage more people to join in.

@nicoespeon
Copy link
Owner Author

@marekyggdrasil you are right. I took the time to do it since it required me to install the app on the repo and I'm the only one who could do that. I also fixed PRs CI with Chromatic QA, so visual regression tests run again.

The repo is ready to handle & acknowledge contributors 👌

@andreasonny83
Copy link
Collaborator

Hi @nicoespeon . If you're still looking for contributors, I can offer myself to look after this awesome project.
First of all, I love the project; second I would like to create a gitgraph-ts for typescript support; third I'm quite active around the social community and I'm currently maintaining several projects you can see from my GitHub account.

@SamuelPinho
Copy link

Hello everyone!

I've come across this project a while ago when the squad that I'm part of came with the need to show to newcomers how we use git in our projects.
So, even thought I could use gitgraph to show pretty quickly, I thought of making a React app where you could create these graphs in a easy way and here it is.

The project still under development and I open to any feedback that you may give ;)

Thanks ;)

https://git-graph-creator.netlify.app/

@nicoespeon
Copy link
Owner Author

Hey @andreasonny83 👋

Sure, I'm still looking for contributors as I'm not using this lib anymore. It didn't received much love in the past year so things are starting to fall apart (e.g. CI is failing because of unsupported node version it seems: #382 (comment)).

I'm adding you to the list of contributors. Let me know if you need more help to get started but this is a good start: #328 (comment)

There's CI to fix in order to start doing changes again. Let me know if you need me (maybe because of access rights, depending on what needs to be fixed).

@SamuelPinho that's quite cool, great job 👏

@andreasonny83
Copy link
Collaborator

Thank you @nicoespeon ! I'll be very happy to start by fixing the broken CI

@crutchcorn
Copy link
Collaborator

crutchcorn commented Nov 21, 2020

I'm going to be working on a React Native port of this codebase and would like to refactor a lot of the React codebase. Is there any way we could migrate to use hooks? Right now, a non-trivial part of the React codebase is in a single component and I'd like to break that out a bit.

I'd be willing to lead that effort of migration and run tests against the new implementation, but I'm hoping to get some permission/alignment on this issue beforehand.

Right now I'm taking a look at #389

@crutchcorn
Copy link
Collaborator

crutchcorn commented Nov 21, 2020

I've done some refactor work but am running up against what seems to be a very simple problem: I can't link the package's deps together.

I've tried yarn (for workspace install, which worked), then yarn lerna bootstrap (which seemingly did nothing), and yet I get these errors when trying to build my changes to the React package:

@gitgraph/js: $ tsc
@gitgraph/js: src/branch-label.ts(1,32): error TS2307: Cannot find module '@gitgraph/core'.
@gitgraph/js: src/gitgraph.ts(19,8): error TS2307: Cannot find module '@gitgraph/core'

Can someone that's familiar with the project explain how to get around this? I can't seem to find any mention of this issue

EDIT: I figured it out - it's lerna link. I apologize. Most other lerna projects I've used utilized the bootstrap command

@nicoespeon
Copy link
Owner Author

Hey @crutchcorn 👋

Is there any way we could migrate to use hooks? Right now, a non-trivial part of the React codebase is in a single component and I'd like to break that out a bit.

Sure thing! And yeah, current state of the codebase isn't pretty. It's totally worth splitting into more granular components and migrate towards functional ones, leveraging hooks.

The reality is that this code didn't get maintained in the past 1.5 years, so to speak. And even then, it wasn't state of the art.

I'd be willing to lead that effort of migration and run tests against the new implementation, but I'm hoping to get some permission/alignment on this issue beforehand.

Considering I'm not maintaining this anymore and there's no ongoing, active maintenance that I'm aware neither, I totally give you the permission.

I mean, if you have time and will to clean up the codebase and maintain it, go for it!

We have a decent suite of tests that would help you make sure you didn't break existing scenario. It's also fine to re-evaluate them if you got a better result. As long as all stories look good and new changes are covered with new story, "what can I say except you're welcome" to make any change you want 😉

I can also add you as a contributor if you're willing to do more changes.

lerna link

Oh, good point. That might be the standard way to do it indeed. Feel also free to adapt the project so bootstrap works the way you'd expect.

@crutchcorn
Copy link
Collaborator

We have a decent suite of tests that would help you make sure you didn't break existing scenario.

I admittedly did not know about the visual regression testing that was setup for CI. It's certainly robust and super impressive! I didn't even know about using storybooks for visual testing, but I think it looks great!

I can also add you as a contributor if you're willing to do more changes.

I'd be ecstatic to be added as a contributor! I'll be creating a React Native package on top of my refactor and cleanup work with React.

For some context of my usage, I'm the owner of @oceanbit-dev and we're building a open-source React Native Git client (GitShark) and we intend on using gitgraph.js for some of our UI. As such, we'll be investing a lot to try and make sure this library is production-ready

I look forward to more code reviews and collaboration in the future! :D Thanks for being so welcoming!

@nicoespeon
Copy link
Owner Author

Hey, that's really cool! GitShark looks like a cool product as I don't know anything with a decent UI to really use on smartphones 👍

For the record, the best Git GUI I know (and use) is https://gitup.co/. I mostly like the keyboard shortcuts + ability to commit per line + ⌘ Z to revert when you mess up something. It's not perfect though, but it's light and efficient.

I made you a collaborator, that should ease your future contributions. Basically, I'm here to help you if you have any question, but I won't be maintaining the lib anymore so feel free to take decisions about the direction you want to give it.

Originally, this library was a side-project meant to draw git graphs easily in the browser. Short graphs, for presentations or blog posts. Which means it works, but there's a lot of scenarios we surely don't handle when it comes to real-life graphs, from git log. We started to experiment with that, but we didn't get too far 🤷‍♂️

@nicoespeon
Copy link
Owner Author

@crutchcorn I see you started merging PR, that's great 👍

You may need help to publish new versions. If you want to do so, let me know. I can do them at first, then see how to give you the access rights (hopefully we created a dedicated scope on NPM so I should be able to let other people publish).

@crutchcorn
Copy link
Collaborator

@nicoespeon that would be fantastic! I'm far from new to publishing to NPM and would love to be able to publish when new releases are needed if that's something you'd feel comfortable offsetting! :D

@nicoespeon
Copy link
Owner Author

@crutchcorn yep, we created an organization. I invited you to it. You should be able to see the invite and that should allow you to publish new versions 👍

@andreasonny83
Copy link
Collaborator

Hi @nicoespeon . can I be part of that as well by any chance?

@nicoespeon
Copy link
Owner Author

Fair @andreasonny83, you helped contributing to the code recently so I agree you should be part of it too 👍

I've send you an invite. Please get in touch together to get in sync on how you want/plan to publish new releases.

@gsGupta11
Copy link

gsGupta11 commented Feb 15, 2022

Hii @nicoespeon, I have been using this library from couple of days now. Firstly It an awesome library.
I have seen requirements which your extension lag and they can be very useful in various scenarios.
It would be great if you could add me as a maintainer. I would love to contribute to this library.

@nicoespeon
Copy link
Owner Author

Hey @gsGupta11 👋

I'm glad to hear that and this project would indeed benefit from having some active maintainers.

Considering I've added a lot of maintainers already without much success, I would prefer for candidates to first contribute with some PRs (that I can review) before adding more. Thus, please contribute to the project. If you keep an interest in the project, I will be very happy to make you a maintainer 😃


As a 2022 update on this thread: I'm still NOT maintaining this project anymore. My focus is still on Abracadabra and other projects (work, personal & family) so I really don't have time to dedicate to this lib anymore. It's still open to use/fork/fix… or contribute and step-up to become a maintainer 😃

@aicioara
Copy link
Collaborator

aicioara commented Sep 25, 2022

Hello @nicoespeon . I discovered this repository while preparing a presentation and I dug into the issues, PRs and code when I discovered that multiple branch labels on the same commit were not possible (and I needed that).

I am interested in giving back to the community and volunteer as a maintainer if you are still looking for one.

As part of that responsibility, I am happy to do the following:

  • Set aside time either once a week or once a month and address all of the outstanding issues and PRs. There are many issues that are just questions and can be easily addressed (example Is it possible to merge a branch to any commit Sha of other branch? #416)
  • In the same spirit as the previous question, I am happy to improve the documentation for every question that I close. If one person had a question, it is possible that 9 other people had the same question, but they just did not ask
  • I am happy to update the dependency list periodically and make sure the project always compiles with the latest LTE nodeJS without deprecation warnings
  • I am happy to implement some of the missing features that I personally need (git reset comes to mind, multiple branch labels per commit as well), if approved (also see below)
  • I can add some automation using GitHub Actions for basic automation tasks, similar to the work that I did for https://github.com/aicioara/til/blob/master/.github/workflows/generate-readme.yml
  • Fix the build system. At the moment the project does not compile on Apple Silicon (and maybe on Intel as well). I got it to work at Got GitGraphJS to compile aicioara-forks/gitgraph.js#1, so I can clean that up and improve the system and the documentation.

As part of this position, I will not do the following:

  • I will not overhaul or refactor the library, besides basic linter changes. I personally think that the library uses too many layers of abstraction (public API, core API, JS API) that gets some users confused (example Is there a way to set a default author for a branch? #414 (comment)). It is not my wish to change the original architecture/design/philosophy of this project
  • In the same spirit as the above, I will not publish new features if there is no sign off from the original authors. New features increase the API surface and add potential bugs. I am perfectly fine with my fork for my needs, unless, of course, you appreciate those additions
  • I will not prioritize this work over my full-time-job, so this will be a week-ends-and-evenings kind of thing.

I just wanted to set the expectations properly. If that sounds good to you, please let me know what would be the next steps.

I also noticed that prior contributions are expected from candidate maintainers. I have a polished PR that is open for your review at #421. I also managed to get multiple branch labels per commit to work at aicioara-forks#2, and I plan to clean that up and open it up for review in easy-to-review pieces.

@nicoespeon
Copy link
Owner Author

Finally delivered my talk yesterday, so I took the time to check out your messages here @aicioara

You got this! I'm impressed with your communication skills and you already started proving contributions. I made you a contributor.

I'm not in a position to lead new features and API changes, or restructurations of the code. I'm not using the lib anymore, so I can't spend my limited free time on maintaining this anymore. However, I'll dedicate time to support you if you are willing to give a hand.

And yes, no need to prioritize this over other commitments you have. Just answering questions and improving docs for actual users of the lib is much better than nothing! But in the end, it's benevolent work. Thus, anything you are willing to give is great, but don't feel pressured in any way 😉

@nicoespeon
Copy link
Owner Author

Let me know if you need my help to understand or review something. I also know that @crutchcorn is around.

I don't guarantee answering promptly, but I will do my best to give some time if that's to help you maintain the lib 👍

@thomscoder
Copy link

This is an amazing work indeed and I'll be using Gitgraph for Harmony. While I'll be implementing it I could give a hand or two with mantaining this, if still needed

@nicoespeon nicoespeon added the 📦 Archived Open issues when project was archived label Jul 13, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
📦 Archived Open issues when project was archived
Projects
None yet
Development

No branches or pull requests