{"id":15018050,"url":"https://github.com/shibapm/rocket","last_synced_at":"2025-10-23T13:31:14.814Z","repository":{"id":33869277,"uuid":"159839015","full_name":"shibapm/Rocket","owner":"shibapm","description":"Define your release steps 🚀","archived":false,"fork":false,"pushed_at":"2023-04-19T21:13:16.000Z","size":243,"stargazers_count":111,"open_issues_count":3,"forks_count":15,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-30T18:51:59.510Z","etag":null,"topics":["cli","package-config","packageconfig","release","rocket","spm","swift","yaml"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shibapm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-11-30T15:01:10.000Z","updated_at":"2025-01-05T15:22:20.000Z","dependencies_parsed_at":"2024-05-13T15:08:15.403Z","dependency_job_id":null,"html_url":"https://github.com/shibapm/Rocket","commit_stats":null,"previous_names":["f-meloni/rocket"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shibapm%2FRocket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shibapm%2FRocket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shibapm%2FRocket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shibapm%2FRocket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shibapm","download_url":"https://codeload.github.com/shibapm/Rocket/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237834754,"owners_count":19373786,"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":["cli","package-config","packageconfig","release","rocket","spm","swift","yaml"],"created_at":"2024-09-24T19:51:22.039Z","updated_at":"2025-10-23T13:31:09.513Z","avatar_url":"https://github.com/shibapm.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rocket 🚀\n\nSwift CLI release tool for Git repos and Swift Packages\n\n## Install Rocket\nYou can install Rocket with SPM\n\n1. Add or amend a Package.swift\n2. Add this dependency `.package(url: \"https://github.com/shibapm/Rocket\", from: \"0.1.0\")`\n3. Then you can run `swift run rocket 1.0.0` where `1.0.0` is the version that you want to release\n\n## Set up the release steps\n\n#### With YAML\nCreate a file called `.rocket.yml` with your steps inside\n\n```yaml\n---\nsteps: \n  - script: \n      content: ruby Scripts/update_changelog.rb\n  - git_add:\n      paths:\n        - CHANGELOG.md\n  - commit:\n      message: \"Releasing version $VERSION\"\n  - tag\n  - push\n```\n\n#### With PackageConfig\nWith [PackageConfig](https://github.com/shibapm/PackageConfig) you can put the configuration at the end of your `Package.swift`\n\n```swift\n#if canImport(PackageConfig)\n    import PackageConfig\n    \n    let config = PackageConfiguration([\n        \"rocket\": [\"steps\":\n            [\n                [\"script\": [\"content\": \"ruby Scripts/update_changelog.rb\"]]\n                [\"git_add\": [\"paths\": [\"CHANGELOG.md\"]]],\n                [\"commit\": [\"message\": \"Releasing version $VERSION\"]],\n                \"tag\",\n                \"push\"\n            ]\n        ]\n    ]).write()\n```\n\n## Default steps\nIf there is no step definition Rocket will run the default steps:\n\n- **hide_dev_dependencies**\n- **git_add**\n- **commit**\n- **tag**\n- **unhide_dev_dependencies**\n- **git_add**\n- **commit** (message: \"Unhide dev dependencies\")\n- **push** (remote=origin branch=master)\n\n## Before/After steps\nIf you use the `before` and/or `after` keys\n\ne.g.\n\n```yaml\n---\nbefore: \n  - script: \n      content: echo \"Testing Release for $VERSION\"\nafter:\n  - script: \n      content: echo \"released $VERSION\"\n```\n\nRocket will execute the default steps between the before and after steps\n\n- `echo \"Testing Release for $VERSION\"`\n\n- **hide_dev_dependencies**\n- **git_add**\n- **commit**\n- **tag**\n- **unhide_dev_dependencies**\n- **git_add**\n- **commit** (message: \"Unhide dev dependencies\")\n- **push** (remote=origin branch=master)\n\n- `echo \"released $VERSION\"`\n\n## Hide dev dependencies\nWhen you release a package you want that who adds it as dependency downloads just the dependencies that are really needed to your package.\n\nThis is why Rocket introduces the concept of dev dependency, if you have in your package some scripts e.g. swiftformat you can add them as dev dependencies (by adding `// dev` after them) and they will be commented by the `hide_dev_dependencies` step and uncommented from the `unhide_dev_dependencies`.\n\nThat is also valid for the dependencies that are used just from test targets, but in that case you will have to add the test target as dev dependency too.\u003cbr/\u003e\u003cbr/\u003e\n\nSome examples are:\n- https://github.com/danger/swift/blob/master/Package.swift\n- https://github.com/shibapm/Rocket/blob/master/Package.swift\n- https://github.com/f-meloni/Logger/blob/master/Package.swift\n\n## Steps\n\nYou can find the full steps list [here](Documentation/Steps/Steps.md)\n\n## Variable $VERSION\n\nYou can use the variable `$VERSION` inside the steps to refer to the version you are releasing\n\n## Next steps\n\n- [X] Add a step to execute script files written in swift\n- [X] Add a step to comment the dev dependencies on the `Package.swift`\n- [ ] Add a step to create Github releases\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshibapm%2Frocket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshibapm%2Frocket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshibapm%2Frocket/lists"}