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

Create a single terminal-templates repository #44

Open
belak opened this issue Jul 5, 2022 · 22 comments
Open

Create a single terminal-templates repository #44

belak opened this issue Jul 5, 2022 · 22 comments
Labels
proposal An idea which may or may not be acted on

Comments

@belak
Copy link
Member

belak commented Jul 5, 2022

It seems like most terminal files end up being fairly similar - maybe it would make sense to have a base16-terminal-templates (or some other similar name) which has all the terminals which we support in different folders.

@joshgoebel
Copy link
Contributor

I'd be for this, I wonder how the individual template maintainers would feel? It would make larger upgrades/maintenance a LOT more convenient.

@joshgoebel joshgoebel changed the title Create a single terminal-schemes repository Create a single terminal-templates repository Jul 5, 2022
@belak
Copy link
Member Author

belak commented Jul 5, 2022

Pinging everyone currently listed as a terminal template maintainer:

@martinlindhe, @aarowill, @niklaas, @h404bi, @AFulgens, @philj56, @tomyun, @orhun, @kdrag0n, @cskeeters, @geoffstokes, @benjojo, @honza, @khamer, @karlding, @wuqs-net, @afq984, @binaryplease

@joshgoebel
Copy link
Contributor

joshgoebel commented Jul 5, 2022

And now since you all got pinged anyways, perhaps also have a glance at #36 and #45 which are likely relevant for all of you.

@afq984
Copy link
Contributor

afq984 commented Jul 5, 2022

It seems like most terminal files end up being fairly similar

Could you elaborate on how terminal templates are more similar to one another, than other non-terminal templates?

@joshgoebel
Copy link
Contributor

joshgoebel commented Jul 5, 2022

I think we mean conceptually not literally that all terminal configs look alike.

Basically each terminal template (from what I've seen at a glance) is trying to map the Base16 palette into the terminal's 16 color ANSI palette space, which makes the actually mappings very conceptually similar in what is happening in each terminal template.

@belak
Copy link
Member Author

belak commented Jul 5, 2022

In general terminal templates are a 1-time setup: they involve setting up a foreground/background, and the 16 ansi colors (as well as the alternate mapping for the 256 color scheme). They'll all have to do the same setup, but in different formats.

Editor templates end up changing a bit more - different things need to have colors added for, new features are added, that sort of thing.

@joshgoebel
Copy link
Contributor

I think one issue here is often that the template repos have their own very nice individual READMEs and FAQs, etc... and there is a certain gravitas/individuality that comes with this... that just merging them all into one huge mono-repo takes away...

@afq984
Copy link
Contributor

afq984 commented Jul 5, 2022

Thanks for the explanation, so the main difference is probably that terminal templates are probably 1:1 mappings and non-terminal ones are probably more complex and unstable.

It would make larger upgrades/maintenance a LOT more convenient.

@joshgoebel Is there something you're trying to push forward but found the distributed situation today to be an obstacle?

I think updates can be automated by GitHub actions set up on each repo; other larger scale changes that would require edits to the mustache templates would probably need review from terminal owners.

Also I'm a bit concerned about base16-terminal-templates hurting SEO and discover-ability, compared to terminal specific repositories. I think moving the repos to base16-project is a net win though.

@belak
Copy link
Member Author

belak commented Jul 5, 2022

From my perspective, maintaining 10-20 (or more) separate repos is a lot of additional work:

  • CI needs to be set up
  • Permissions need to be set up - this currently additionally involves a new group on Github
  • Branch restrictions need to be set up
  • PRs and issues need to be monitored

Currently, none of those can be done automatically and they need to be done every time a new terminal repo is created. There's also been talk about adding additional types of schemes (like an ansi16 palate which lines up with the expected ansi colors) which would then involve an update to every single terminal repository, rather than 1 large one to the terminals repository.

I think one issue here is often that the template repos have their own very nice individual READMEs and FAQs, etc... and there is a certain gravitas/individuality that comes with this... that just merging them all into one huge mono-repo takes away...

This is true, but we can still have READMEs in subfolders. It would just be one folder removed.

I think updates can be automated by GitHub actions set up on each repo; other larger scale changes that would require edits to the mustache templates would probably need review from terminal owners.

Yes, that would work. We could also use GitHub's CODEOWNERS file to require updates to specific templates.

Also I'm a bit concerned about base16-terminal-templates hurting SEO and discover-ability, compared to terminal specific repositories. I think moving the repos to base16-project is a net win though.

As an effort to offset that, we could pin the base16-terminal-templates repo in the org. It could also be advantageous because then there's a single place people need to go in order to get a terminal color scheme, rather than going to the base16-project/base16 repo, figuring out who's maintaining their specific terminal (if anyone), and go there.

Plus, there's no guarantee people will be willing to transfer their terminal repos to us. There are a lot of them, and many have inactive maintainers.

@afq984
Copy link
Contributor

afq984 commented Jul 5, 2022

maintaining 10-20 (or more) separate repos

Aw, the per-repo configuration sounds like a real pain.

If we want base16-project to take ownership of the maintenance/infrastructure, and given the points above #44 (comment), a single centralized repository makes more sense to me.

My previous comments were still in a mindset of keeping the terminal templates community-owned (contrib), rather than base16-project-owned.
So CI, branch restrictions, PRs, issues and updates are just up to the repository owners. In this case putting the repository into the org would just make it easier to transfer the ownership if the maintainer happens to be unresponsive.

Both options are good for base16-xfce4-terminal.

Permissions need to be set up - this currently additionally involves a new group on Github

Does outside collaborator solve this?

@joshgoebel
Copy link
Contributor

joshgoebel commented Jul 5, 2022

community-owned (contrib), rather than base16-project-owned.

I'm don't see it as a strict dichotomy. I'd like to (in a perfect world) imagine co-ownership for base16-project repos (esp if they are transferring from outside the org)... Things in base16-projects might still be considered community owned, just the organization (and core team) would have a much stronger degree of responsibility/stewardship there than in contrib. I guess it all depends on what one imagines the word "owned" confers...

I haven't worked inside an org with this type of core/contrib split before, so I can only imagine how it's supposed to work in theory, not practice...

@niklaas
Copy link

niklaas commented Jul 6, 2022

Pinging everyone currently listed as a terminal template maintainer:

I assume you pinged me because of https://github.com/niklaas/base16-blink. :) I haven't touched/used this in a long, long while. I'm happy (a) to verify that it's still working and (b) to move this wherever it's best for the community.

Just ping me once you settled on a decision on what's best for the community and I'll take a look at (a) to see whether (b) would make sense.

@belak belak added proposal An idea which may or may not be acted on and removed discussion labels Jul 8, 2022
@karlding
Copy link

I vaguely recall at the time when I created the template repo that I'm being tagged here for, base16 had no desire for a centralized org containing templates and builders and encouraged this decentralized approach that's being moved away from. It sounds like base16-project wants to take ownership of more things, which sounds fine with me.

@orhun
Copy link
Member

orhun commented Jul 12, 2022

FYI I'm fine with a central repo/organization for the base16 terminal theme that I created.

@honza
Copy link

honza commented Jul 20, 2022

+1

@cskeeters
Copy link

Has chriskempson stated an opinion on this? I don't want to speak for him, but it seems he set this up so that things would remain more static. This limits the amount of time a color scheme developer or template maintainer would have to spend because changes in one don't affect the other. Personally, I don't have a lot of time to be involved in a project where things change in the interest of improvement.

I wouldn't hold it against you if you took the base16 builders, color schemes, and templates and put them in a new repository that was designed to facilitate more change. I think all of the licenses allow for this.

@belak
Copy link
Member Author

belak commented Jul 20, 2022

Has chriskempson stated an opinion on this?

No, he's ignored all our attempts to contact us, removed my commit access, removed the history on his base16 repo, blocked us on GitHub, and closed the issue trackers on all his repos. He hasn't explicitly stated anything.

I don't want to speak for him, but it seems he set this up so that things would remain more static. This limits the amount of time a color scheme developer or template maintainer would have to spend because changes in one don't affect the other.

We're still figuring this out, but I think we're going to work on our "next gen" base16 (which we're going to call base17). The goal is to be forwards compatible for both color schemes and templates, but we'll be adding additional features so if templates want to use them, they can.

Personally, I don't have a lot of time to be involved in a project where things change in the interest of improvement.

This is one of the reasons we're trying to transfer repos to this org - so if/when people get burned out or tired of maintaining a template, someone else can step up.

I wouldn't hold it against you if you took the base16 builders, color schemes, and templates and put them in a new repository that was designed to facilitate more change. I think all of the licenses allow for this.

The idea behind this issue is lessening the burden of maintaining a bunch of terminals which almost all do very similar things - provide mappings for the 16 terminal colors and possibly a 256 color template for use with base16-shell. I don't think we'd want to put everything in a single repo - that was what happened with the original base16 (and a few past forks) and it wasn't super maintainable.

I think doing this for only terminal color schemes is a small enough surface area where it could work.

@cskeeters
Copy link

I'm just now realizing that this issue is in the base16-project, which is not Chris' and you are already in the process of forking all of the repos. For anyone else who is unaware, the backstory has been documented here #51

@AFulgens
Copy link

As described in #65 (comment) I welcome the idea of merging the repositories into a centralized one. Two ones "maintained" by me are really low maintanence anyways :)

@JamyGolden
Copy link
Member

JamyGolden commented Oct 14, 2024

There hasn't been talk of a centralised repository recently and I've set up GitHub actions (shared-auto-assign.yml, shared-build-template-and-commit-themes.yml) across all the template repos for building templates, tagging maintainers (based on CODEOWNERS file) for issues opened as well as a CONTRIBUTING_TO_TEMPLATES.md file which takes care of general template contribution. I don't see an issue with keeping the repos separate for the forseeable future at least unless something changes.

As for talk about the project remaining OSS, a PROJECT_GOVERNANCE.md file has been created which includes steps to take if the admins or maintainers become unresponsive so the project doesn't fall into the same situation that lead to the creation of Tinted Theming (formerly Base16 Project). The organisation belongs to the community and we also have steps to take to transfer in external repos to the tinted-theming GitHub org in CONTRIBUTING.md.

If there isn't more discussion here, I'll close the issue in a few days but we can always reopen.

@belak
Copy link
Member Author

belak commented Oct 14, 2024

I think I would still lean towards a single terminal templates repo, given how similar they are, even with the automation improvements you've made, for the following reasons:

  • Terminal color schemes are very similar - there's a base variant and a 256 color variant, and they specify the 16 colors in different ways
  • Of our template repos, roughly 25% of them are for terminals
  • Unlike other templates, terminal settings rarely change after creation
  • There are far more terminals it would be nice to support, but adding a new repo seems fairly heavy

I'm open to keeping the status-quo, but I think this would be a good improvement for maintenance and support.

@JamyGolden
Copy link
Member

JamyGolden commented Dec 4, 2024

I've created a Tinted Terminal Template repository by merging in all of the Tinted Theming terminal template repos. Is everyone happy with this? I can make any changes (rebase) to make sure everyone is happy with it.

Once everyone is happy with it we can update the README.md on each of the legacy repos and archive the repo. I'll add all previous maintainers as maintainers of this repo. I'll also create new issues linking to any old issues that exist on the then archived terminal template repos.

@tinted-theming/alacritty @tinted-theming/conemu @tinted-theming/foot @tinted-theming/iterm2 @tinted-theming/kermit @tinted-theming/kitty @tinted-theming/putty @tinted-theming/rio-terminal @tinted-theming/termite @tinted-theming/xfce4-terminal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal An idea which may or may not be acted on
Projects
None yet
Development

No branches or pull requests

10 participants