{"id":18779323,"url":"https://github.com/zostay/zedpm","last_synced_at":"2025-08-27T22:44:17.896Z","repository":{"id":137354118,"uuid":"609251085","full_name":"zostay/zedpm","owner":"zostay","description":"The Golang project management tool with the power to save the galaxy","archived":false,"fork":false,"pushed_at":"2023-12-21T02:03:12.000Z","size":413,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-20T12:51:03.259Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/zostay.png","metadata":{"files":{"readme":"README.md","changelog":"Changes.md","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":"2023-03-03T17:36:18.000Z","updated_at":"2023-03-03T18:29:53.000Z","dependencies_parsed_at":"2024-06-20T02:47:55.144Z","dependency_job_id":"7b99e704-1f19-4d22-b4d4-ca4f91f6baba","html_url":"https://github.com/zostay/zedpm","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/zostay/zedpm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zostay%2Fzedpm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zostay%2Fzedpm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zostay%2Fzedpm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zostay%2Fzedpm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zostay","download_url":"https://codeload.github.com/zostay/zedpm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zostay%2Fzedpm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272391495,"owners_count":24926677,"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","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"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-07T20:19:37.696Z","updated_at":"2025-08-27T22:44:17.863Z","avatar_url":"https://github.com/zostay.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZedPM\n\nZedPM aims to be a general purposes project management tool aimed at helping\ndevelopers maintain their various and sundry Golang projects with minimal effort\nand thinking, and no Makefiles for common tasks, but with massive amounts of raw\npower.\n\n\u003e **Dr. McKay:** ...And we'll need the Zed-P-M.  \n\u003e **Gen. O'Neill:** What?  \n\u003e **Dr. Jackson:** The ZPM. He's...he's Canadian.  \n\u003e **Gen. O'Neill:** (at McKay) I'm sorry.  \n\u003e **Dr. McKay:** The Zero Point Module, General. The ancient power source you\n\u003e recovered from Proclarush Toanas and that's now powering the outpost defenses.\n\u003e I've since determined it generates its enormous power from vacuum energy\n\u003e derived from a self-contained region of subspace time.  \n\u003e **Gen. O'Neill:** That was a waste of a perfectly good explanation.  \n\u003e \n\u003e *Stargate Atlantis, Season 1, Episode 1, \"Rising, Part 1\"*\n\n# Solving Common Problems\n\nThis tool aims at solving common problems in a way that lets developers run\nself-documenting commands that do the right thing. Since any two developers will\nlikely disagree on the correct way to do these things and, depending on aspects\nof a project like what kind of deliverables it produces, how it used, the \ntarget audience, and so on, TheRightWay™ varies from project to project. \nHowever, the goals you want to achieve are largely the same:\n\n * Every project needs to be checked for correctness: syntax needs to be \n   checked, anti-patterns need to be detected, and semantics need to be \n   verified.\n * Many projects need to generate some section of their code.\n * Any serious project needs a release process. Libraries need to be tagged so\n   that godoc sites can index them. Client-side applications need to generate\n   binaries that can be downloaded and installed. Server-side applications need\n   to push container images. And so on.\n * Creating projects requires a common set of boilerplate that is tedious to\n   setup every time. Typically a project needs to have git setup, go mod init\n   run, a Changes file, a README, a license, maybe some common boilerplate code\n   based on the kind of application or library, etc. It'd be nice if there was a\n   tool that could at least get you past crawling and to the walking phase\n   whenever starting a new prototype or project.\n\nThis tool aims at doing all of these things.\n\n# Goals, Tasks, and Plugins, Oh my!\n\nThe tool operates by executing goals. Each goal is made up of a number of tasks.\nThese tasks are provided by plugins. The plugins are chosen and configured by\nyou. For complex projects, plugins can also be configured to perform the same\ngoal with multiple configurations by having configured targets.\n\n## Common Goals\n\nHere are listed the common goals that are built-in to zedpm. Any plugin may\ndefine additional goals, if desired.\n\n### Init (not yet implemented)\n\nThe init goal will initialize a new project and fill it with standard \nboilerplate and initialize files and configurations.\n\n### Generate (not yet implemented)\n\nThe generate goal is will take source code in one form and generate it in\nanother. This is useful for building gRPC stubs, web sites built using\nnode-based tooling (or whatever), embedding files and resources, generating ORM\ncode, etc.\n\n### Build (not yet implemented)\n\nThe build goal will check the syntax of the source code and ensure that it will\nrun. It will not guarantee that the code runs correctly and will not generate\nsource code from other source code.\n\n### Lint\n\nLinting runs programs that perform correctness checks against your code and\nother files. This can run a static analyzer to verify that your code does not\nimplement certain anti-patterns that are prone to cause bugs.\n\n### Test\n\nTesting runs some set of test suites against the project to verify that the code\nis working correctly.\n\n### Request (not yet implemented)\n\nRequest (a.k.a., pull-request or merge-request) is the act of declaring that\nsome set of changes is ready to be considered for merger into some other target\nbranch (usually main or master) of the project.\n\n### Install (not yet implemented)\n\nThe install goal will build local artifacts and install them. This is intended\nto be a helper to allow binaries and other artifacts to be installed as part of\nthe development process.\n\n### Release\n\nReleasing is the process of tagging a set of changes and setting up the release\nprocess.\n\n### Deploy (not yet implemented)\n\nDeploy will construct and deliver artifacts to a destination, such as Docker\nHub or another container repository.\n\n### Info\n\nInfo retrieves information about the project and can be used to either query the\nstate of the application or provide zedpm plugin derived information to other\ntooling.\n\n## Built-in Plugins\n\nThe zedpm project has the following built-in plugins:\n\n### zedpm-plugin-changelog\n\nThis provides tasks for linting the correctness of a changelog, for extracting\nthe changes related to a given release version, and for preparing and fixing the\nchangelog for release.\n\nThis is currently done according to an opinionated format that is subject to\nchange in the future.\n\n### zedpm-plugin-git\n\nThis provides tasks for creating a release branch and tagging the release\naccording to a semantic version.\n\n### zedpm-plugin-github\n\nThis provides tasks for creating pull requests during release, awaiting for\nCI/CD tests to complete successfully, merging the pull request, and creating the\nrelease.\n\n### zedpm-plugin-go\n\nThis provides tools for accessing aspects of the go command for various zedpm\ncommands.\n\n### zedpm-plugin-goals\n\nThis provides the definition for the zedpm built-in goals and related support\ncode and tasks.\n\n# Inspiration\n\nAt this time, I think it would be wrong for me not to mention that this project\nwas inspired by other tools. I spent most of the past 20 years working in the\nPerl programming language. When I came to Golang, one thing became immediately\napparent: while the `go` command itself does slightly more and useful things\nthan the `perl` command, it is vastly inadequate for performing the full range\nof common dev tasks. The Perl community built rich project management tools \naimed at enabling developers to quickly and easily build new prototypes, check \nthe code for correctness, and release that code for others to use.\n\nTools like [ExtUtils::MakeMaker][mm], [Module::Build][mb], and [Dist::Zilla][dz]\nprovided much of the inspiration for this tool.  ExtUtils::MakeMaker is a very \nold tool that allows you to quickly generate an entire Makefile customized for \nyour project based upon configuration contained in a simple Perl program. \nModule::Build extended this to alleviate the need for the Makefile when such was \nunnecessary. And Dist::Zilla provided additional tools for managing module \ndependencies, releasing and deploying software, and generating boilerplate, such \nas ensuring that all source files have the latest license attached or that each \nhave complete and correctly formatted documentation.\n\n[mm]: \u003chttps://metacpan.org/pod/ExtUtils::MakeMaker\u003e\n[mb]: \u003chttps://metacpan.org/pod/Module::Build\u003e\n[dz]: \u003chttps://metacpan.org/pod/Dist::Zilla\u003e\n\nThese tools went a long way to ensuring that Perl developers did not waste a lot\nof time remembering commands, mucking about with esoteric Makefile syntax, and\ngenerally wasting their time on the more tedious aspects of developing a library\nor application.\n\n# Copyright \u0026 License\n\nCopyright 2023 Andrew Sterling Hanenkamp.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the “Software”), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzostay%2Fzedpm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzostay%2Fzedpm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzostay%2Fzedpm/lists"}