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

Update Coldark Themes #107

Merged
merged 1 commit into from
Oct 28, 2020
Merged

Conversation

ArmandPhilippot
Copy link
Contributor

Coldark recently updated its colors for better readability. So the colors of both versions have been updated. Comments are no longer italic. Also, Markdown was missing block quote and meta separator colors. And some tokens were not using the correct color.

I recreated the screenshots. Everything is ok when running npm test.

Coldark recently updated its colors for better readability. So the
colors of both versions have been updated. Comments are no longer
italic.
Also, Markdown was missing block quote and meta separator colors. Some
tokens were not using the correct color.
@RunDevelopment
Copy link
Member

Wow. Travis queued for 1h and 20min until it finally ran the tests.
@mAAdhaTTah Maybe we should switch to GH actions over here too?

@RunDevelopment RunDevelopment merged commit e12fcfc into PrismJS:master Oct 28, 2020
@ArmandPhilippot
Copy link
Contributor Author

It’s only me who’s bad luck with automated testing. 👍

Another question (I don't know if it's worth creating an issue for that):
Wouldn't it be easier to keep the themes up to date using submodules? Or with automated tests it can't work? (I'm still new to pull request / submodules / automated tests so maybe the submodules are not compatible ...)

@RunDevelopment
Copy link
Member

Themes rarely change over here. That may be because authors actually rarely update their themes or because they just don't forward these changes. Idk.

However, I'm skeptical that submodules are the solution. I get why submodules might seem like a good solution but they also have downsides. One being that submodules are not easy to work with in general.

The big problem with submodules for our specific use case is control. Right now, the PrismJS team is in full control. We can manage and change everything. But with submodules, we essentially have to trust the good-will of whoever owns the linked repo.
This is concerning from a security aspect. A malicious attacker could just make a repo with a new theme, make PR, get merged, and then add malicious code to the repo. We'd have to make our build process smart enough to notice something like this or else our next release might compromise the systems of thousands.

From what I see, using submodules brings us a lot of risk and development cost for relatively little benefit.


Hmmm, but I see the issue. Maybe we could automate the PR process? We could link the authors' repos and make a bot periodically check whether themes changed. If something changed, it would make PR and ping the author to ask for permission.

But writing that bot will be a lot of work too... Probably not worth it.

@mAAdhaTTah
Copy link
Member

I don't think there'd be a security issue because submodules are committed against a specific commit in the target repo. I suppose you could swap out what's under that commit, but I don't know how possible/difficult that is.

But there's a better reason to reject them: they're an absolute nightmare to work with. I used them on a project once and they were terrible.

I'm also not 100% sure what we're trying to keep in sync here. Is there another repository of prism themes we should be pulling from? Otherwise, I think there's some manual translation process involved in converting e.g. a VSCode theme into a Prism theme that I don't know how possible/valuable automation would be.


100% on switching to GitHub actions here.

@RunDevelopment
Copy link
Member

RunDevelopment commented Oct 28, 2020

I'm also not 100% sure what we're trying to keep in sync here. Is there another repository of prism themes we should be pulling from?

Many artists give their Prism themes their own repository. Example. The problem is that themes might be updated in the artist's repo but not here.

@ArmandPhilippot
Copy link
Contributor Author

@RunDevelopment Thank you for this detailed explanation. I suspected that if the submodules were not used it was for a good reason, in particular safety and compatibility with automated tests. However, I didn't think malicious code could be injected this way. As I said, I lack experience on this side, so I preferred to ask the question.

The bot would indeed be an alternative. However, if as you said, the themes change little, it is indeed a lot of work for little. For my part, I don't mind making a pull request to update. It was a simple suggestion and I understand better why you are not using them.

@mAAdhaTTah I'm not aware of another repository of prism themes. I was referring to a repo dedicated to a theme like me that uses this repo to update the Prism version, then I do a pull request by creating a commit on the fork. I was thinking about submodules after doing a pull request on the bat repo. Each theme has its own repo and they are linked to the bat repo with the submodules.

@mAAdhaTTah
Copy link
Member

To be honest, if the theme is available in another repo, it might be better to have that repo be the canonical source for it and remove it from this repo. We could advertise it in Prism, either via links on the website or README, but not having it in two places in the first would eliminate the need to do any syncing.

This isn't intended to suggest we'd "reject" your theme or anything; only that if syncing is an issue we'd want to address, that seems like the easiest solution. Otherwise, I don't mind just doing a manual PR as needed. As @RunDevelopment said, themes don't really change that much. I can imagine the work involved in crafting a solution being greater than the amount of time saved.

@ArmandPhilippot
Copy link
Contributor Author

Like I said, doing a pull request doesn't bother me. I was thinking of this "solution" for all the themes.

As @RunDevelopment said, "or because they just don't forward these changes": that could have avoided this problem. That said, it does not seem to be so many complaining that a theme is not up to date.

Regarding the link rather than adding to the repo, I don't know. In my case, if I added it here it was to give it more visibility. I figured that Prism users were more likely to view this repo than to look for different repos on Github. So it's up to you to see what looks best. Again, the pull request is not a problem; it was more of a suggestion to automate the process.

Now, I understand your reservations. Thanks for taking the time to explain them. 👍

@ArmandPhilippot ArmandPhilippot deleted the coldark-update branch November 1, 2020 21:00
bors bot referenced this pull request in aDotInTheVoid/xmark-js Mar 15, 2021
98: fix(deps): bump prism-themes from 1.5.0 to 1.6.0 r=aDotInTheVoid a=dependabot[bot]

Bumps [prism-themes](https://github.com/prismjs/prism-themes) from 1.5.0 to 1.6.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/PrismJS/prism-themes/commit/f84f75916c8c192bbf102cdb622ffda319f9061a"><code>f84f759</code></a> 1.6.0</li>
<li><a href="https://github.com/PrismJS/prism-themes/commit/367177199c23d5d0f8ab1421435a87d41a5f4c10"><code>3671771</code></a> Removed incorrect <code>main</code> field in <code>package.json</code> (<a href="https://github.com/prismjs/prism-themes/issues/114">#114</a>)</li>
<li><a href="https://github.com/PrismJS/prism-themes/commit/07e8d2546601fd7e8aabbcb5f406d04abec8ad2c"><code>07e8d25</code></a> Adding Lucario theme (<a href="https://github.com/prismjs/prism-themes/issues/112">#112</a>)</li>
<li><a href="https://github.com/PrismJS/prism-themes/commit/295bc134135c37d802b6d545dd95a6e8dde40600"><code>295bc13</code></a> Added Gruvbox Dark theme (<a href="https://github.com/prismjs/prism-themes/issues/110">#110</a>)</li>
<li><a href="https://github.com/PrismJS/prism-themes/commit/c24ddffde2737293d9b2df7dc59939d527648863"><code>c24ddff</code></a> Updated Coldark Themes - Minor color change (<a href="https://github.com/prismjs/prism-themes/issues/109">#109</a>)</li>
<li><a href="https://github.com/PrismJS/prism-themes/commit/e12fcfcd61bae382469b61ee61c9a8a23c30994c"><code>e12fcfc</code></a> Update Coldark Themes (<a href="https://github.com/prismjs/prism-themes/issues/107">#107</a>)</li>
<li>See full diff in <a href="https://github.com/prismjs/prism-themes/compare/v1.5.0...v1.6.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prism-themes&package-manager=npm_and_yarn&previous-version=1.5.0&new-version=1.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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

Successfully merging this pull request may close these issues.

3 participants