-
Notifications
You must be signed in to change notification settings - Fork 602
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
v2: decide on import path and make a new release #587
Comments
This should be done. In order to be able to publish new v2 versions, a blocking task is to resolve the current lack of clarity about what import path should be suggested and continued to be used for v2: By making a newer release, some decision would be committed to, and ideally that decision should be a good one given the constraints this project is currently operating with. Some of the decisions made in the past predate a good understanding of modules and best practices regarding v2 versions, which has made this decision more difficult to make conclusively. I suspect that in the current situation, the best course of action is to continue to use the Line 1 in 3b2b20c
I started talking to @rtfb about resolving this situation a number of months ago, but then unfortunately dropped the ball on it due to lack of bandwidth. But I wanted to post this comment to shed light on what I believe is a large contributing factor to no new v2 releases. |
I'm happy with either import path and agree that we should post a new release soon. I haven't been following developments in the module system very closely--is there one approach that is more forward looking/will fit in better with the community than the other? |
There's also a third option which I always personally prefer: using a new vanity import path (eg. This requires that someone own a domain name and setup an HTTP server (or use a service like Netlify or GitHub Pages) which is more work for the maintainers, however, it gives you the benefit of owning your package import instead of relying on GitHub or gopkg.in never changing or going under or being changed to |
... and in a couple years it will be down and we won't be able to reach a person who hosted it. Speaking from experience :-\ |
I would think relying on GitHub would be the bigger risk here. They could go under, or Microsoft could change their pricing and make it harder for open source projects to host on it, or some overzealous company could file a patent claim against something as trivial as tree traversal and Microsoft could take down the repo out of an abundance of caution, etc. The package proxy smooths out this sort of thing either way though. |
I'd rather stick with github. It's pretty standard and predictable without requiring any maintenance. The Go project is hosted there as are most libraries in widespread use, so in the unlikely event that Microsoft pulls the rug out from under everyone, updating blackfriday will just be a small part of a much larger disruption. |
Assuming that we don't need to debate the module path any further ... I believe all this really needs is a README update to replace the 'gopkg.in' recommendation, and a tag on the Or, are you considering a merge into master first? If it's just the tag & readme, I can make a PR for the readme update. FWIW I agree that github seems the pragmatic choice - I don't believe blackfriday has any need for gopkg.in any more now that modules have versioned paths - and also hasn't github already been chosen in go.mod, in both the v2 branch and the v2.0.1 tag? |
… and copy the recent files to a |
@mwat56 it's worth raising that point, yup, especially this part:
I guess the question is, would it be OK to just break non-module-aware users that aren't pinning versions somehow? And, I guess the answer for such an established project like blackfriday, might be 'nope, not for some time to come'? Or not? pained thinking emoji |
Why break anything at all? Just leave the current files as v1.x.y and copy the newest version of each file into a new subdirectory That way the non-version aware projects (are there still some of those after discussing versioning for years?) are using the v1.x.y and the version-aware projects can use the v2 branch if they want. Sure, it will probably take an hour to do the copying and check-in into a new v2 branch. But in the end all those require/replace hacks won't be necessary anymore. |
Hey, any news on this? |
I'd like to +1 this. Just tried to |
Yeah, current readme install instruction leads to this output:
|
I haven't followed all of the module changes and import path stuff. If someone who is up-to-date on it will submit a PR I'll merge it and we can get this one resolved. |
Picking up from #587 (comment). Current StateTo recap, the current (unfortunate) state regarding blackfriday v2 and its import path is:
Unfortunately, some projects use the Some DataTo get some (imperfect) information about which of the two v2 import paths are being used by public projects in active development, I wrote a small program (source) that walks over the module index, considers only the latest version of each unique module, and checks whether it requires
When looking only at modules that have had new versions published within the last month:
(Full list here.) So it seems staying with Trade-Offs ConsideredThe reason it has been so hard to make a decision and all the delays here is because neither solution is ideal—each one has some upsides and downsides—and the trade-offs also differ depending on whether you consider the short term, medium, or long-term outcomes.
From my earlier discussion with @rtfb, the discussion in the comments above, and the data from walking the module index in 2020, it seems better to choose If there are many reports of Next StepsTo that end, I suggest we take this sequence of steps to resolve this issue:
|
This change makes it clear that the v2 import path is github.com/russross/blackfriday/v2, and updates various links accordingly. See #587 (comment) for details. This change also converges the README for v1 and v2 to be consistent, as they've started to drift apart. For #587.
This change makes it clear that the v2 import path is github.com/russross/blackfriday/v2, and updates various links accordingly. See #587 (comment) for details. This change also converges the README for v1 and v2 to be consistent, as they've started to drift apart. For #587.
Thanks a lot for that summary. As a side note, the divergence between the two import styles also forces some decisions on developers. As an example, if a transitive dependency uses the I also agree that using the |
Sounds good to me.
- Russ
…On Thu, Oct 22, 2020 at 10:07 PM Dmitri Shuralyov ***@***.***> wrote:
@russross <https://github.com/russross> @rtfb <https://github.com/rtfb>
Any objections if I proceed with the plan described above
<#587 (comment)>
soon?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#587 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAP7FHB6CNRHZNGVN7JSALSMD6OJANCNFSM4LS5MTIA>
.
|
This change makes it clear that the v2 import path is github.com/russross/blackfriday/v2, and updates various links accordingly. See #587 (comment) for details. This change also converges the README for v1 and v2 to be consistent, as they've started to drift apart. (See PR #675 for the equivalent change to the README on v2 branch.) For #587. GitHub-Pull-Request: #674
This change makes it clear that the v2 import path is github.com/russross/blackfriday/v2, and updates various links accordingly. See #587 (comment) for details. This change also converges the README for v1 and v2 to be consistent, as they've started to drift apart. For #587. GitHub-Pull-Request: #675
Moving on to step 2, I've published a pre-release version
If you're following this issue and are able to, please test
Thanks. |
There haven't been any reports of serious issues with the |
Version I've realized to resolve this fully, we also need to publish a new minor release for blackfriday v1, since its current latest release (
Then we can close this issue. |
There haven't been any reports of serious issues with the Version I think this specific issue is finally resolved. Phew. 😓 |
Great job @dmitshur - a big effort, well executed. |
There is now a released version of blackfriday v1 that includes the bug fix for russross/blackfriday#495 that our tests rely on. Start using it instead of an older pseudo-version. Updates #47. Updates russross/blackfriday#587.
There is now a released version of blackfriday v1 that includes the bug fix for russross/blackfriday#495 that our tests rely on. Start using it instead of an older pseudo-version. Updates #47. Updates russross/blackfriday#587.
This change makes it clear that the v2 import path is github.com/russross/blackfriday/v2, and updates various links accordingly. See russross#587 (comment) for details. This change also converges the README for v1 and v2 to be consistent, as they've started to drift apart. (See PR russross#675 for the equivalent change to the README on v2 branch.) For russross#587. GitHub-Pull-Request: russross#674
The latest release is from September 2018, maybe it's time to make a new one?
The primary reasons for a new release are #509 and #515; this will make the package not depend on any other packages. Including #586 would be nice, too.
The text was updated successfully, but these errors were encountered: