{"id":14975443,"url":"https://github.com/jquery/jquery-release","last_synced_at":"2025-06-30T11:37:44.600Z","repository":{"id":12007444,"uuid":"14587821","full_name":"jquery/jquery-release","owner":"jquery","description":"Release automation script for jQuery projects","archived":false,"fork":false,"pushed_at":"2025-02-18T20:13:14.000Z","size":491,"stargazers_count":26,"open_issues_count":5,"forks_count":31,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-06-12T12:09:24.494Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jquery.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-11-21T13:09:41.000Z","updated_at":"2025-04-04T02:16:30.000Z","dependencies_parsed_at":"2024-09-11T11:13:05.790Z","dependency_job_id":"d8e2d1d1-f372-45af-aa53-ac2d53cac350","html_url":"https://github.com/jquery/jquery-release","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jquery/jquery-release","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jquery%2Fjquery-release","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jquery%2Fjquery-release/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jquery%2Fjquery-release/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jquery%2Fjquery-release/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jquery","download_url":"https://codeload.github.com/jquery/jquery-release/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jquery%2Fjquery-release/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262766406,"owners_count":23361098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T13:52:02.538Z","updated_at":"2025-06-30T11:37:44.569Z","avatar_url":"https://github.com/jquery.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jQuery Project Release Automation\n\n\u003e [!IMPORTANT]\n\u003e This script is no longer used. It has been archived for historical purposes.\n\n## Creating a Release\n\nCreating a release is as simple as cloning this repository and telling the script which project to use. In order to ensure a clean and proper release is created, you should always start from a new clone of this repository.\n\n```sh\ngit clone git@github.com:jquery/jquery-release.git\ncd jquery-release\nnpm install\nnode release.js --remote=jquery/\u003cproject-name\u003e\n```\n\n### Testing the Release Script\n\nYou can do a test run of the release script by using a different remote repository. **It is recommended to perform tests from a fresh clone of the project being released.** The script is smart enough to detect if you're using an official repository and adjust which actions are taken so that undesired actions, such as publishing to npm, don't occur for test runs.\n\nYou can also explicitly specify `--dry-run` to skip actions that affect external state.\n\nWhen working on features of this script, adapt the following to simplify testing a bit, replacing the paths for `project` and `cdn`:\n\n```bash\n#!/bin/sh -e\n# uncomment next line to debug this script\n# set -x\nproject=/path/to/fake-project\ncdn=/path/to/fake-cdn\n\ncd $project\ngit checkout main\nset +e\ngit tag -d 0.0.1\nset -e\ngit reset --hard safe\ngit checkout asdf\ncd -\n\ncd $cdn\ngit push -f\ncd -\n\nnpm run clean\nenv TEST_REMOTE=$cdn node release.js --dry-run --remote=$project\n```\n\nSave as `test-release.sh` in the checkout of this repo, make  it executable with `chmod +x test-release.sh`, then run with `./test-release.sh`.\n\n***If you have access to the private repositories [fake-project](https://github.com/jquery/fake-project) and [fake-cdn](https://github.com/jquery/fake-cdn)***, you can use them by dropping the `--dry-run` argument and updating the `TEST_REMOTE` environment variable to \"git@github.com:jquery/fake-cdn.git\".\n\n### Full Usage Options\n\nSee the [usage documentation](/docs/usage.txt) for the full set of options. You can also run the script with no parameters to see the usage.\n\n\n\n## Creating a Project-Specific Release Script\n\nThis script only performs the set of common functionality across all projects. Each project may have additional functionality. Any project-specific configuration and functionality must be defined in the `build/release.js` file inside the project's repository.\n\nHere's a minimal example:\n\n```js\nmodule.exports = function( Release ) {\n\nRelease.define({\n\tissueTracker: \"trac\",\n\tcontributorReportId: 37,\n\tchangelogShell: function() {\n\t\treturn \"# Amazing Changelog for v\" + Release.newVersion + \"\\n\";\n\t}\n});\n\n};\n```\n\n### Required/Recommended Configuration\n\n#### checkRepoState( [ callback ] )\n\nPerforms any project-specific checks to ensure the repository is in a good state to be released. For example, there is a built-in check to ensure that `AUTHORS.txt` is up-to-date.\n\nThis method has no return value. If a project-specific check fails, the script should use `Release.abort()` to prevent the release from continuing.\n\nThis method may be synchronous or asynchronous depending on the presence of `callback`. If present, the callback must be invoked.\n\n#### generateArtifacts( callback )\n\nGenerates any release artifacts that should be included in the release. The callback must be invoked with an array of files that should be committed before creating the tag.\n\n#### changelogShell()\n\nDefines the shell for the changelog. The changelog is created by concatenating the shell, the commit log, and the issue list.\n\n#### tracMilestone()\n\nIf using Trac, return a different milestone to be used in the queries to generate a changelog and list of contributors. Defaults to `newVersion`.\n\n#### npmTags()\n\nA function that returns an array of tags to apply to the npm release. Every release must contain at least one tag.\n\n#### issueTracker\n\nWhich type of issue tracker is being used for the project. Must be either `\"trac\"` or `\"github\"`.\n\n#### contributorReportId\n\nIf using Trac, this defines which report will produce a list of contributors for a specific release.\n\nSee [docs/trac-contributors.sql](docs/trac-contributors.sql) for the SQL necessary to create the Trac report.\n\n#### exports.dependencies\n\n*Note: This is a property on the `exports` object in `build/release.js`.*\n\nAn array of release-specific dependencies. Dependencies can be listed here instead of in `devDependencies` in `package.json` so that contributors don't need to install dependencies which are only necessary for the release.\n\n### Other Methods\n\n#### define( props )\n\nDefines new properties and methods to add to the `Release` object.\n\n#### abort( msg [, error ] )\n\nAborts the release and prints the message. If an error object is provided, it is used for the stack trace, otherwise the current call stack is used.\n\n#### exec( command, options )\n\nExecutes the given `command`. You can pass `{ silent: true }` to suppress output on the command line.\n\nReturns the output.\n\n#### git( command, errorMessage )\n\nExecutes the given git `command`. If the command fails, the release will be aborted and `errorMessage` will be displayed.\n\n#### gitLog( format )\n\nGets a git log using the specified format. If the log fails, the release will be aborted.\n\nReturns an array of commits.\n\n#### prompt( callback )\n\nPrompts the user for input.\n\nPasses the input to `callback`.\n\n#### confirm( callback )\n\nPrompts the user to confirm they want to continue with the release script. If the user decides not to continue, the release will be aborted and `callback` won't be invoked.\n\n#### confirmReview( callback )\n\nPrompts the user to review the output and confirm they want to continue with the release script. If the user decides not to continue, the release will be aborted and `callback` won't be invoked.\n\n#### trac( path )\n\nGets the results of a Trac query, with tab-delimited results.\n\nReturns the tab-delimited string.\n\n#### readPackage()\n\nGets the contents of `package.json` as an object.\n\n#### writePackage( package )\n\nSaves `package` to `package.json`, preserving indentation style.\n\n#### walk( methods, done )\n\nExecutes the array of `methods` (minimum one element) step by step. For any given method, if that method accepts arguments (`method.length \u003e 0`), it will pass a callback that the method needs to execute when done, making the method call async. Otherwise the method is assumed to be sync and the next method runs immediately.\n\nOnce all methods are executed, the `done` callback is executed.\n\n#### dist( callback )\n\nThis function is available in case the project requires more distribution than what is provided.\nIt is called after building, but before publishing to npm.\n\n### Other Properties\n\n#### isTest\n\nWhether this is a test release. Test releases don't publish to npm and use the fake-cdn project instead of publishing to the real CDN.\n\n#### project\n\nThe name of the project being released.\n\n#### remote\n\nThe location of the remote repository.\n\n#### preRelease\n\nThe version number for a pre-release version, or `false` for stable releases.\n\n#### dir.base\n\nThe main directory used for the release script.\n\n#### dir.repo\n\nThe directory for the local repository.\n\n#### newVersion\n\nThe version being released.\n\n#### prevVersion\n\nThe previous release version (used for determining what changed).\n\n#### nextVersion\n\nThe version that will be set in `package.json` after the release.\n\n#### cdnPublish\n\nWhich directory contains files to publish to the jQuery CDN. Set to `false` to prevent publishing to the jQuery CDN. Defaults to `\"dist/cdn\"`.\n\n#### npmPublish\n\nSet to `true` to publish a release via npm. Defaults to `false`.\n\n#### tagTime\n\nTimestamp for the release tag.\n\n#### branch\n\nWhich branch the release is being generated from (defaults to `main`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjquery%2Fjquery-release","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjquery%2Fjquery-release","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjquery%2Fjquery-release/lists"}