{"id":20664590,"url":"https://github.com/outr/pmc","last_synced_at":"2026-04-22T02:31:30.756Z","repository":{"id":146976823,"uuid":"72449883","full_name":"outr/pmc","owner":"outr","description":"Project Management in Code - An incredibly straight-forward project management and build tool for Scala.","archived":false,"fork":false,"pushed_at":"2016-11-01T00:52:18.000Z","size":19,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-17T11:21:24.475Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Scala","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/outr.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":"2016-10-31T15:26:31.000Z","updated_at":"2019-01-14T08:32:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"fab83940-ced1-4e6c-8101-422cfae92a29","html_url":"https://github.com/outr/pmc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/outr/pmc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outr%2Fpmc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outr%2Fpmc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outr%2Fpmc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outr%2Fpmc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/outr","download_url":"https://codeload.github.com/outr/pmc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outr%2Fpmc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32118070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-16T19:25:18.632Z","updated_at":"2026-04-22T02:31:30.743Z","avatar_url":"https://github.com/outr.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pmc\n============\n\n[![Build Status](https://travis-ci.org/outr/pmc.svg?branch=master)](https://travis-ci.org/outr/pmc)\n[![Stories in Ready](https://badge.waffle.io/outr/pmc.png?label=ready\u0026title=Ready)](https://waffle.io/outr/pmc)\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/outr/pmc)\n[![Maven Central](https://img.shields.io/maven-central/v/com.outr/pmc_2.11.svg)](https://maven-badges.herokuapp.com/maven-central/com.outr/pmc_2.11)\n[![Latest version](https://index.scala-lang.org/com.outr/pmc/pmc/latest.svg)](https://index.scala-lang.org/com.outr/pmc/pmc)\n\nProject Management in Code - An incredibly straight-forward project management and build tool for Scala.\n\n### Status\n\nVery early development. Focused on common build functionality to provide a viable alternative to Maven, SBT, or Gradle.\n\n### Why another build tool?\n\nHaving used SBT for years, Maven before that, and Ant before that it may seem hard to justify creating yet another build\ntool when so many capable ones exist today. However, it is because of continued frustration with the options available\nthat has led to the decision to create a build tool that goes down a different path.\n\n### What's wrong with SBT?\n\nOf all the options available SBT is by far the best and most powerful, and for the basics it is fairly easy to set up\nand use. However, the moment you need a customization that's not built-in or doesn't have a ready-available plugin things\nstart to get incredibly complicated very quickly. Unfortunately SBT is one of the most common complaints from non-Scala\ndevelopers of why they won't use Scala. Of course it's easy to reply that you can just use Maven or Gradle just like you\ncan with Java, but SBT is notoriously the \"preferred\" option and has the most plugins to accomplish very specific tasks.\n\n### What about Gradle?\n\nWe're Scala developers. To use an inferior language like Groovy as your build tool is simply wrong. If there isn't a\nScala tool for building your project and you have to fall to Groovy as your solution then that is justification enough\nfor PMC!\n\n### What about Maven?\n\nMaven was and still is a very powerful build tool. However, pretty much everyone agrees that writing your build\nconfiguration in XML is laborious at best and incredibly limiting at worst. It is incredibly difficult to write your\nown extensions and simply isn't very flexible.\n\n### How is PMC Different?\n\nThe longing desire from SBT has always been to be able to write your build scripts in Scala, but along the way things\nhave gotten more and more complicated. Now we are at a place where you only write SBT scripts using a Scala DSL that\nis incredibly confusing and leads many developers to hair pulling and rage.\n\nPMC is meant to focus back on a dream of simplicity (yes, we remember when the 'S' in SBT meant something else). We\nintend to represent this tool first and foremost as a framework that can be easily extended as any Scala framework.\nSecondly, the code should remain simplistic and focused on supporting Scala without having to read a book before you\ncan use it. Finally, we want to make it as easy as possible to integrate custom code into the builds either via plugins\nor one-off tasks specific to your project.\n\n### Why Project instead of Build?\n\nThough our initial focus is on providing a Build tool functionality, there are features beyond that scope we want to\nsupport as well. For example, in SBT creating a multi-project build often leaves you with a \"root\" project that never\nneeds to be built, only intended to aggregate the sub-projects. This would not necessarily be a Build project, but a\n`Aggregate` to allow invocation of sub-projects.\n\n### Features for 1.0\n\n* [X] Basic Framework Structure\n* [X] REPL Support\n* [X] Dependency Resolution\n* [X] Compilation Support\n* [X] Task \"Depends On\"\n* [X] Clean Support\n* [ ] Run Support\n* [ ] Test Support\n* [ ] Support `Configuration` to define Scala version and Plugin dependencies\n* [ ] Command-Line Invocation without REPL\n* [ ] Configurable Repositories\n* [ ] Publish Local Support\n* [ ] Signing of JARs Support\n* [ ] Publish to Remote Support\n* [ ] Publish to Sonatype Support (Plugin)\n* [ ] Aggregate Project / Multi-Project Support\n* [ ] Scala Native PMC command to launch\n* [ ] Project Generator Support (With Plugin Support for Multiple Generators)\n* [ ] Scala.js support\n* [ ] Ability to integrate Maven goals\n* [ ] Ability to call SBT tasks","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutr%2Fpmc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foutr%2Fpmc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutr%2Fpmc/lists"}