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

Discuss: Improving testing / integration / usage for 3rd party grammars #2396

Open
joshgoebel opened this issue Feb 6, 2020 · 5 comments
Open
Labels
discuss/propose Proposal for a new feature/direction enhancement An enhancement or new feature help welcome Could use help from community language parser

Comments

@joshgoebel
Copy link
Member

This is a continuation of #2328 (linking for reference). Where-as that discussion was more about the file layout/structure of a 3rd party grammar and related conventions - this can be a discussion of how we continue to improve the tooling around working with 3rd party grammars - both as a user or developer.

@joshgoebel joshgoebel added language enhancement An enhancement or new feature parser labels Feb 6, 2020
@joshgoebel joshgoebel pinned this issue Feb 6, 2020
@joshgoebel joshgoebel changed the title Improving testing/integration/using process for 3rd party grammars Improving testing / integration / usage for 3rd party grammars Feb 6, 2020
@joshgoebel joshgoebel unpinned this issue Apr 30, 2020
@joshgoebel
Copy link
Member Author

If everyone is happy as things are then I may just put an auto-close clock on this one.

@joshgoebel
Copy link
Member Author

My original thought was to make it easier for grammar maintainers to "build" outside of our project - ie, not need their grammar checked out into our extras folder. So perhaps you'd just set an ENV variable (or something to point to us) or perhaps we'd provide some CLI tooling or something... but overall there seems to be little demand for this and I'd say out of every other thing we could possibly spend time on there are much more important things.

So I'm closing this issue for now.

@joshgoebel
Copy link
Member Author

joshgoebel commented Mar 2, 2021

Continued from #3008 (comment):

The disagreement is about whether the repository is the means of distribution, along with what I consider the normal distribution channels like GitHub Releases or packages on the npm registry.

@frangio I'm aware. Some of our end users probably have no idea what a "npm registry" is... the desire is to make the binary as EASY to download (and use) as possible. Someone could potentially:

  • Add dist (as we recommend) and let us build it (for guaranteed compatibility and consistency)
  • Use GitHub releases
  • Publish the CDN distributable as part of the NPM package
  • Which would also auto-host it via CDN, win win.

The bigger push here is that all grammars provide not ONLY a Node.js module, but also a CDN distributable [which includes the registration hook] as well and consistent instructions for using it easily (which MANY already do). The CDN distributable should only require a single <script> tag to "install". This serves the purposes of our many users doing simple website/CDN installs. (over 100 million per month)

These users have no build systems. They perhaps don't know what npm is, nor would they care.

We of course encourage all 3rd party grammars to publish to npm so that anyone who uses a more complex build pipeline can integrate however they choose.


dist is our choice because that's what our built-in build system does (making it super easy for maintainers) and we want to see the install experience for all 3rd party grammars be consistent (a one liner script tag in the simplest case). It's also already a convention many grammars are already following.

@joshgoebel joshgoebel reopened this Mar 2, 2021
@joshgoebel joshgoebel changed the title Improving testing / integration / usage for 3rd party grammars Discuss: Improving testing / integration / usage for 3rd party grammars Mar 2, 2021
@joshgoebel joshgoebel added the discuss/propose Proposal for a new feature/direction label Mar 2, 2021
@frangio
Copy link

frangio commented Mar 2, 2021

I understand your points and if the suggestions work for the target audience that's great. I'm not criticizing at all. It was a misunderstanding on my part to think the proposed setup was a requirement where it's just a suggestion.

@joshgoebel
Copy link
Member Author

It was a misunderstanding on my part to think the proposed setup was a requirement where it's just a suggestion.

So far (since making providing of a CDN distributable itself a requirement) no one new has opted to do anything other than use our own build scripts and place it in dist. I would suppose because that's what we've made super easy - and because maintaining a custom build system, GitHub Action, etc. is not everyone's cup of tea.

The first time anyone shows us something else in the concrete rather than abstract I'm sure we'll take a close look and see if it seems easy enough to use compared to everything else... though if more than a few confused users ever show up and ask "why do all the 3rd party grammars have dist folders but these 2" I'm not sure how sympathetic I'd be to the outliers.

So I'd say it's a very strong recommendation at this point. :-)

@joshgoebel joshgoebel added the help welcome Could use help from community label Mar 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss/propose Proposal for a new feature/direction enhancement An enhancement or new feature help welcome Could use help from community language parser
Projects
None yet
Development

No branches or pull requests

2 participants