how-to-npm
how-to-npm copied to clipboard
dist-tag removal challenge 403's when resetting latest, then gets inconsistent
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.
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:
Same issues here.
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
^^ This. Thank you denmch for taking the time to write up that note. It worked for me.
closing in favor of #45
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 THANK YOU. This is the SOLUTION!
@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 that was way too perfect thanks
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).
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.