Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The future of the project #715

Open
6 tasks
tamasfe opened this issue Dec 20, 2024 · 7 comments
Open
6 tasks

The future of the project #715

tamasfe opened this issue Dec 20, 2024 · 7 comments

Comments

@tamasfe
Copy link
Owner

tamasfe commented Dec 20, 2024

tl;dr: I can't see myself returning here, and I'm asking you to decide the fate of this project.

When I started working on taplo, I wanted it to be a tool that puts TOML on par with YAML and JSON in terms of dev experience and perhaps even surpass them, in some aspects I think I achieved that and I'm happy that it ended up being useful for many. However the project was pretty much a learning experience for me, it was the first parser I have written, the first LSP, etc. and it really shows.

I still have a lot of plans, for example:

  • rework the parser so that it is not a mess (e.g. I really liked the approach I ended up with in rhai LSP, I think rust-analyzer has a similar architecture)
  • adjust the code that builds on top of it so that it won't rely on an accidentally introduced behavior that actually makes no sense
  • rethink/rework whatever the hell is happening after syntax parsing, to date I still have no idea how to efficiently and cleanly turn TOML into a DOM with its arbitrary rules and parent nodes appearing out of order
  • rebase the LSP onto a maintained library, like tower-lsp
  • rework the formatter so that it handles line breaks and nesting properly, something like prettyplease or rhai-fmt (that was also based on prettyplease).
  • fix filepath/URL handling, I think there is still confusion around this (unless the windows<->everything else conflicts were fixed while I was away)
  • schemas and in general position querying (which TOML node maps to which property in schemas) is quite buggy
  • ... probably many more (looking at the open issues)

I have practically disappeared from this project for the past 1-2 years, and now it is safe to say that whatever my plans are, they are very unlikely to be fulfilled. Nowadays I have a lot less free time, and even in that free time I code less as a hobby. On top of that being a maintainer really feels like a 2nd or 3rd job and I have a lot of respect for people who can pull it off, I definitely cannot.

On top of that, I don't feel like that the amount of work I listed above (probably a month worth?) is worth putting into this tool, while it is useful, I don't feel anyone would really miss it if it disappeared overnight.

So now I'm officially stepping down as a maintainer/owner/whatever, I practically haven't been one for years anyway.

Thank you @panekj @ia0 @JounQin and everyone else who helped keep this alive.

My question is what should we do with all of this?

  • transfer everything to an organization?
  • keep the current state up with sporadic maintenance until the TOML spec changes and everything breaks?
  • just abandon/archive everything?
  • ultimately is there anyone who would like to pour time into this and take over?

The following needs to be thought of:

  • this repo
  • access to the extension on openvsx
  • access to the extension on the vscode marketplace
  • access to the @taplo organization on NPM
  • access the taplo package on pypi (I don't have anything to do with this)
  • access to the libraries on crates.io

I'm open to anything really and suggestions are welcome.

@tamasfe tamasfe pinned this issue Dec 20, 2024
@panekj
Copy link
Collaborator

panekj commented Dec 20, 2024

I'm fine with repo staying under your account or creating organisation, just need more permissions for stuff like tokens if I'm expected to maintain publishing for all registries.

I'm not planning to abandon project (yet), even though I'm not as active in the project that originally brought me here (lapce).

So far I've been pacing myself to not dedicate completely (binge develop 24/7 as I used to do for other open source projects) so I don't burn out. Mostly giving bare minimum to keep project working and improve even if slightly, this is also because I'm mostly familiar with Rust, Linux and Docker so things like VS Code, JS/TS and npm are not my expertise (though I'm learning everything I can).

I can't promise anything long-term as I'm currently looking for work and a bit on tight deadline ($$$) so next month will be deciding factor :>


I'm currently the owner of the pypi package and can transfer it to whatever/whomever is going to maintain the project.

From what I know, GitHub organisation is required to give access for a team on crates.io, so if we want to go down that route, then making taplo organisation seems like the best solution.

@JounQin
Copy link
Collaborator

JounQin commented Dec 22, 2024

The orgnization permission model is much more flexible IMO.

@ia0
Copy link
Collaborator

ia0 commented Dec 22, 2024

Thanks @tamasfe for all the efforts and care you've put into this project. This makes it all harder to decide to step down.

While I'm still not planning to help maintain this project, I believe this is an important project for the Rust community (for Cargo.toml formatting). That's why I'll give my opinion to try to maximize the project chances of success.

I agree with both @panekj and @JounQin that a GitHub organization should be preferred. My rationale is that the set of maintainers is going to change over time and no maintainer is expected to survive the project. So a GitHub organization will provide the maximum stability to the project.

If we don't find an initial set of maintainers or if we don't reach a good enough quota of commitment, we could ask https://users.rust-lang.org/ for help.

@JP-Ellis
Copy link

Thank you for everything @tamasfe! Taplo has been and still is a great project, even if there are things you wish you could improve.

While I have not personally contributed to this (yet), I would like to echo that moving to an organization is probably for the best.

To help attract new contributors, it would also be amazing to try and flesh out some of the ideas you have above. In my experience, creating an overarching tracking issue (like I have done in Pact-Python) can provide a lot of help for new contributors to see what they can/should contribute to. This would really help pass on all the stuff you have thought of and help make it concrete for others to take over (though it is still a fair bit of work to create such a tracking issue).

@tamasfe
Copy link
Owner Author

tamasfe commented Dec 23, 2024

Thank you all for the input, it looks like an organization is the way to go then. I will try to set one up as well as collect ideas/thoughts/TODOs like @JP-Ellis suggested for a proper handoff before I disappear (again).

@joshka
Copy link

joshka commented Dec 30, 2024

I'd like to suggest also reaching out to the rust-analyzer owners to see if there's some scope to pull this into their responsibility area. While this isn't purely a Rust specific tool, there's quite a bit of overlap in the techniques and goals between rust-analyzer and this that could benefit from some cross pollination.

@ssbarnea
Copy link

ssbarnea commented Jan 9, 2025

Clearly a github org would help in the long run (I can confirm that personal accounts are limited). At the same time I would advise trying to reuse an existing github organization as this might help gathering other contributors and ease management, one that I found interesting might be https://github.com/toml-lang -- but the key question is if the current 3 members are willing to help this project transition there.

IMHO when picking an org this this preference should be looked into:

  • TOML focused
  • development tooling focused (to also allow hosting the vscode toml extension)
  • rust focused

@tamasfe If you agree, mention the 3 members of @toml-lang in a comment here asking them if they want to help you with the transition. One requirement that will be needed is to allow others to be invited top the organization (ACLs based on teams limit access).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants