<commit_before># npm registry

Notes on npm's use of the [js-registry](http://github.com/mikeal/js-registry).

None of this has been implemented as of 2010-03-10.

## New Commands

Add the following commands:

### publish

    npm publish <url>

Fetches the tarball from the url, checks the package.json, and sends to the registry as the
dist url.  Fails if the fetch is non-200, or if the version already exists in
the registry for that package.

### create

    npm create <project>

Create a new project in the registry.  Fails if this project already exists.  If given a path that contains a package.json file, then it'll use the name from that file.

### tag

    npm tag <project> <version> <tag>

Tag a project version with a tag, anything is fine.  Note that npm treats the "stable" tag a bit differently, preferring to install that one when not given a version.

## Configuration

A registry base URL must be specified, either with the `--registry <url>` in the command line, or by setting a registry url in the .npmrc file.

Also, need something to keep track of the user who's logged in?  That's dicey.<commit_msg>Add info about how this will change other commands<commit_after># npm registry

Notes on npm's use of the [js-registry](http://github.com/mikeal/js-registry).

None of this has been implemented as of 2010-03-10.

## New Commands

Add the following commands:

### publish

    npm publish <url>

Fetches the tarball from the url, checks the package.json, and sends to the registry as the
dist url.  Fails if the fetch is non-200, or if the version already exists in
the registry for that package.

### create

    npm create <project>

Create a new project in the registry.  Fails if this project already exists.  If given a path that contains a package.json file, then it'll use the name from that file.

### tag

    npm tag <project> <version> <tag>

Tag a project version with a tag, anything is fine.  Note that npm treats the "stable" tag a bit differently, preferring to install that one when not given a version.

## Changed commands

### install

Assuming that the stable branch of foo is 0.1.3, then all three of these do the same thing:

    npm install foo
    npm install foo-0.1.3
    npm install foo 0.1.3

Furthermore, dependencies are installed implicitly.

### list

npm list will now also show packages that are in the registry for installation, along with info about their tags and versions, etc.  To limit to a particular tag, preface it with @, for instance: `npm list foo @stable` to show the stable version of foo.  `npm list @stable` would so all packages with a tag of `stable`.

The current behavior will be available via `npm list @installed`.

## Configuration

A registry base URL must be specified, either with the `--registry <url>` in the command line, or by setting a registry url in the .npmrc file.

Also, need something to keep track of the user who's logged in?  That's dicey.
{'fraction_non_alphanumeric': 0.0673927842069435, 'fraction_numerical': 0.01055139550714772, 'mean_word_length': 3.672496025437202, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4690032', 'n_tokens_mistral': 856, 'n_tokens_neox': 789, 'n_words': 463}