{"id":19238218,"url":"https://github.com/olical/depot","last_synced_at":"2025-04-04T07:08:09.145Z","repository":{"id":52288113,"uuid":"126248566","full_name":"Olical/depot","owner":"Olical","description":"Find newer versions of your dependencies in your deps.edn file","archived":false,"fork":false,"pushed_at":"2021-05-01T14:59:15.000Z","size":229,"stargazers_count":259,"open_issues_count":4,"forks_count":14,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-28T06:08:37.060Z","etag":null,"topics":["clojure"],"latest_commit_sha":null,"homepage":"https://clojars.org/olical/depot","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Olical.png","metadata":{"files":{"readme":"README-v1.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-21T22:34:14.000Z","updated_at":"2025-03-24T07:29:53.000Z","dependencies_parsed_at":"2022-09-07T05:12:14.825Z","dependency_job_id":null,"html_url":"https://github.com/Olical/depot","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fdepot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fdepot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fdepot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fdepot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Olical","download_url":"https://codeload.github.com/Olical/depot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247135144,"owners_count":20889421,"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":["clojure"],"created_at":"2024-11-09T16:29:50.692Z","updated_at":"2025-04-04T07:08:09.109Z","avatar_url":"https://github.com/Olical.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Depot [![Clojars Project](https://img.shields.io/clojars/v/olical/depot.svg)](https://clojars.org/olical/depot)\n\nFind newer versions of your dependencies in your `deps.edn` file using the [Clojure CLI][cli]. This works for maven _and_ git dependencies.\n\n## Usage\n\nYou can try it out easily with this one liner:\n\n```bash\n$ clojure -Sdeps '{:deps {olical/depot {:mvn/version \"1.8.4\"}}}' -m depot.outdated.main\n\n|          Dependency | Current | Latest |\n|---------------------|---------|--------|\n| org.clojure/clojure |   1.9.0 | 1.10.0 |\n```\n\nI'd recommend adding depot as an alias in your own `deps.edn` file, this will allow it to check itself for updates:\n\n\u003e Note: Replace the ellipsis with the current version shown above.\n\n```clojure\n{:deps {}\n :aliases {:outdated {:extra-deps {olical/depot {:mvn/version \"...\"}}\n                      :main-opts [\"-m\" \"depot.outdated.main\"]}}}\n```\n\n```bash\n$ clojure -Aoutdated -a outdated\n\n|   Dependency | Current | Latest |\n|--------------|---------|--------|\n| olical/depot |   ..... |  ..... |\n```\n\n### Updating `deps.edn`\n\nTo automatically update the versions in `deps.edn`, use `--update`.\n\n```bash\n$ clojure -m depot.outdated.main --update\nUpdating: deps.edn\n  rewrite-clj {:mvn/version \"0.6.0\"} -\u003e {:mvn/version \"0.6.1\"}\n  cider/cider-nrepl {:mvn/version \"0.17.0\"} -\u003e {:mvn/version \"0.18.0\"}\n  clj-time {:mvn/version \"0.14.4\"} -\u003e {:mvn/version \"0.15.1\"}\n  olical/cljs-test-runner {:sha \"5a18d41648d5c3a64632b5fec07734d32cca7671\"} -\u003e {:sha \"da9710b389782d4637ef114176f6e741225e16f0\"}\n```\n\nThis will leave any formatting, whitespace, and comments intact. It will update\nboth the top level deps and any `:aliases` / `:extra-deps`. To prevent Depot\nfrom touching certain parts of your `deps.edn`, mark them with the\n`^:depot/ignore` metadata.\n\n``` clojure\n{:deps {...}\n\n :aliases\n {;; used for testing against older versions of Clojure\n  :clojure-1.8 ^:depot/ignore {:extra-deps\n                               {org.clojure/clojure {:mvn/version \"1.8.0\"}}}\n  :clojure-1.9 ^:depot/ignore {:extra-deps\n                               {org.clojure/clojure {:mvn/version \"1.9.0\"}}}}}\n```\n\n`--update` by default looks for `deps.edn` in the current working directory. You\ncan instead pass one or more filenames in explicitly.\n\n``` bash\n$ clojure -m depot.outdated.main --update ../my-project/deps.edn\n```\n\n## Freezing snapshots\n\nMaven has a concept called \"virtual\" versions, these are similar to Git branches, they are pointers to another version, and the version they point to can change over time. The best known example are snapshot releases. When your `deps.edn` refers to a version `0.4.1-SNAPSHOT`, the version that actually gets installed will look like `0.4.1-20190222.154954-1`.\n\nA maintainer can publish as many snapshots as they like, all with the same version string. This means that re-running the same code twice might yield different results, if in the meanwhile a new snapshot was released. So installing `0.4.1-SNAPSHOT` again later on may install a completely different version.\n\nFor the sake of stability and reproducibility it may be desirable to \"lock\" this version. This is what the `--resolve-virtual` flag is for. The `--resolve-virtual` flag will replace the snapshot version with the current timestamped version that the SNAPSHOT is an alias of, so that your code is once again deterministic.\n\nBesides `SNAPSHOT` versions `--resolve-virtual` will also handle the special version strings `\"RELEASE\"` and `\"LATEST\"`\n\n```\n% clojure -Sdeps '{:deps {olical/depot {:local/root \"/home/arne/github/depot\"}}}' -m depot.outdated.main --resolve-virtual\nResolving: deps.edn\n   cider/piggieback 0.4.1-SNAPSHOT --\u003e 0.4.1-20190222.154954-1\n```\n\n## Existing work\n\nThis project is inspired by [lein-ancient][], it relies on [version-clj][] (by the same author, [xsc][]) for parsing and comparison of version numbers.\n\n## Contributors\n\n * [@Olical](https://github.com/Olical) - Initial work and general maintenance.\n * [@daaku](https://github.com/daaku) - Ensuring `:override-deps` is adhered to in the non-mutating mode.\n * [@kennyjwilli](https://github.com/kennyjwilli) - Git dependency support and table improvements.\n * [@lverns](https://github.com/lverns) - Reducing the runtime significantly by making multiple requests in parallel.\n * [@plexus](https://github.com/plexus) - Both the `--update` and `--resolve-virtual` systems, so many improvements!\n * [@robert-stuttaford](https://github.com/robert-stuttaford) - Presenting results in a neat table.\n * [@seancorfield](https://github.com/seancorfield) - Support for `:override-deps`.\n * [@dharrigan](https://github.com/dharrigan) - Bump dependencies, fixing warnings.\n\n## Unlicenced\n\nFind the full [unlicense][] in the `UNLICENSE` file, but here's a snippet.\n\n\u003eThis is free and unencumbered software released into the public domain.\n\u003e\n\u003eAnyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.\n\nDo what you want. Learn as much as you can. Unlicense more software.\n\n[unlicense]: http://unlicense.org/\n[lein-ancient]: https://github.com/xsc/lein-ancient\n[version-clj]: https://github.com/xsc/version-clj\n[xsc]: https://github.com/xsc\n[cli]: https://clojure.org/guides/deps_and_cli\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folical%2Fdepot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folical%2Fdepot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folical%2Fdepot/lists"}