how-to-npm icon indicating copy to clipboard operation
how-to-npm copied to clipboard

dist-tag removal challenge 403's when resetting latest, then gets inconsistent

Open tdd opened this issue 9 years ago • 11 comments

I tried this a few times, always results with the same scenario when I'm on the "dist-tag removal" challenge:

$ npm dist-tag add [email protected] latest
npm ERR! Darwin 14.1.0
npm ERR! argv "node" "/Users/tdd/.nvm/v0.10.36/bin/npm" "dist-tag" "add" "[email protected]" "latest"
npm ERR! node v0.10.36
npm ERR! npm  v2.7.6
npm ERR! code E403

npm ERR! Registry returned 403 for PUT on http://localhost:15443/-/package/learn-how-to-npm/dist-tags/latest
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/tdd/perso/node/learn-how-to-npm/npm-debug.log

$ npm dist-tag ls learn-how-to-npm 
latest: 1.1.0

I've got two versions in the registry: 1.1.0 and 1.2.0. This is regardless of another tag existing or not on these versions.

tdd avatar Apr 10 '15 17:04 tdd

Even better, if I then run verify, it is inconsistent with my npm dist-tag ls:

$ how-to-npm verify
Oops!  Your "latest" tag still points at the most recent
release, 1.2.0.
Point that somewhere else, and re-run `how-to-npm verify`
Use `npm help dist-tags` to learn more about how to do it.
#########################################
###   YOUR SOLUTION IS NOT CORRECT!   ###
#########################################

$ npm dist-tag ls learn-how-to-npm 
latest: 1.1.0

Which is super odd, because indeed:

$  cat ~/.config/how-to-npm/registry/learn-how-to-npm/body.json | json dist-tags
{
  "latest": "1.2.0"
}

I can't get this to pass through mocked npm usage. I had to manually edit the registry file… :cry:

tdd avatar Apr 10 '15 17:04 tdd

Same issues here.

jesgundy avatar Apr 14 '15 23:04 jesgundy

This actually does work. See this note on FreeCodeCamp's implementation of how-to-npm for details about the bug and how to avoid it: https://github.com/FreeCodeCamp/freecodecamp/issues/758

denmch avatar May 30 '15 10:05 denmch

^^ This. Thank you denmch for taking the time to write up that note. It worked for me.

aBuzzLife avatar Sep 03 '15 14:09 aBuzzLife

closing in favor of #45

ashleygwilliams avatar Oct 21 '15 21:10 ashleygwilliams

As this thread directly addresses the dist-tag removal (rm) aspect of the challenge, I'll post my workaround here (before I forget).

The problem I had was re-assigning the "latest" tag to another version before being allowed to remove another tag from the actual latest version.

Adding a tag If you've had problems adding a tag, see dhcodes' solution here. (You should only have to do it once.) Then come back. I know it's all over the show, but this should still save you a few hours searching, trust.).

We'll assume you have version 1.0.1 published by this stage.

OK now create another version (1.0.2). Type: how-to-npm and run through the version and publish challenges again, respectively. (Hint, I replaced "1.0.1" with "1.0.2" in package.json directly and saved).

Verify

Because 1.0.2 is now the latest version, it will already be tagged "latest", so add another tag to it (name it "dev" or "test", whatever) by completing the Dist Tag challenge.

Type: how-to-npm Select: Dist Tag Type: npm dist-tag add @username/[email protected] dev

Re-assign "latest" tag to another version Now point the "latest" tag to version: 1.0.1

Type: how-to-npm Select: Dist Tag (yet again) Type: npm dist-tag add @username/[email protected] latest

Verify.

If that goes well you'll have both versions tagged, so go to the Dist Removal challenge (how-to-npm).

Type: npm dist-tag rm @username/packagename test

Verify and (hopefully) you're good to go.

Convoluted, I know. IMO I think this challenge should be removed until fixed. Anyway, I am tired so I hope this is in the right order.

TheWhippinpost avatar Jul 12 '16 18:07 TheWhippinpost

@TheWhippinpost THANK YOU. This is the SOLUTION!

cismstudent avatar Aug 15 '16 22:08 cismstudent

@TheWhippinpost Thank you although what i did was just

npm dist-tag rm beta npm dist-tag add @1.0.0 latest

and it solved my problem all i had to do was change the latest version to my previous original version

omijh avatar Sep 30 '17 20:09 omijh

@omijh that was way too perfect thanks

abhinavjhaofficial avatar Nov 29 '17 04:11 abhinavjhaofficial

Thank you for your help, @TheWhippinpost. It worked!

Type: how-to-npm and run through the version and publish challenges again, respectively. (Hint, I replaced "1.0.1" with "1.0.2" in package.json directly and saved).

To clarify this point though, the publish process for 1.0.2 should happen on Publish again exercise (exercise 10) and not Dist tag removal exercise (exercise 12).

arunsathiya avatar May 05 '18 17:05 arunsathiya

Just try adding new tag with a 1.0.0 if your current version is 1.0.1 npm dist-tag add @yourusername/[email protected] And how-to-npm verify should do the thing.

 Congratulations!  You're a dist-tagging pro!
    
    Run `how-to-npm` to move on to the next exercise.

niteshtvs avatar Mar 08 '19 08:03 niteshtvs