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

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

Open
tdd opened this issue Apr 10, 2015 · 11 comments
Open

Comments

@tdd
Copy link
Member

tdd commented Apr 10, 2015

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
Copy link
Member Author

tdd commented Apr 10, 2015

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… 😢

@tdd tdd changed the title dist-tag removal challenge 403's when resetting latest, but still works dist-tag removal challenge 403's when resetting latest, then gets inconsistent Apr 10, 2015
@jesgundy
Copy link

Same issues here.

@denmch
Copy link

denmch commented May 30, 2015

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: freeCodeCamp/freeCodeCamp#758

@aBuzzLife
Copy link

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

@ashleygwilliams
Copy link
Contributor

closing in favor of #45

@TheWhippinpost
Copy link

TheWhippinpost commented Jul 12, 2016

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.

@cismstudent
Copy link

@TheWhippinpost THANK YOU. This is the SOLUTION!

@omijh
Copy link

omijh commented Sep 30, 2017

@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

@abhinavjhaofficial
Copy link

abhinavjhaofficial commented Nov 29, 2017

@omijh that was way too perfect thanks

@arunsathiya
Copy link

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).

@niteshtvs
Copy link

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.

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

No branches or pull requests