{"id":15700026,"url":"https://github.com/thejohnfreeman/picard","last_synced_at":"2025-05-12T13:05:11.625Z","repository":{"id":57452482,"uuid":"162385444","full_name":"thejohnfreeman/picard","owner":"thejohnfreeman","description":"The idea of Ansible with the execution of Make.","archived":false,"fork":false,"pushed_at":"2018-12-29T04:20:06.000Z","size":66,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-24T14:19:51.090Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://picard.readthedocs.io","language":"Python","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/thejohnfreeman.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2018-12-19T05:05:31.000Z","updated_at":"2023-10-31T16:25:45.000Z","dependencies_parsed_at":"2022-09-05T17:50:31.486Z","dependency_job_id":null,"html_url":"https://github.com/thejohnfreeman/picard","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thejohnfreeman%2Fpicard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thejohnfreeman%2Fpicard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thejohnfreeman%2Fpicard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thejohnfreeman%2Fpicard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thejohnfreeman","download_url":"https://codeload.github.com/thejohnfreeman/picard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221265159,"owners_count":16788017,"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-10-03T19:44:25.922Z","updated_at":"2024-10-24T02:22:05.345Z","avatar_url":"https://github.com/thejohnfreeman.png","language":"Python","readme":"======\npicard\n======\n\n.. start-include\n..\n\n    *\"Make it so.\"* -- `Captain Jean-Luc Picard`_\n\n.. _`Captain Jean-Luc Picard`: https://www.youtube.com/watch?v=FaLyasJPyUU\n\n.. image:: https://travis-ci.org/thejohnfreeman/picard.svg?branch=master\n   :target: https://travis-ci.org/thejohnfreeman/picard\n   :alt: Build status\n\n.. image:: https://readthedocs.org/projects/picard/badge/?version=latest\n   :target: https://picard.readthedocs.io/en/latest/?badge=latest\n   :alt: Documentation status\n\n.. image:: https://img.shields.io/pypi/v/picard.py.svg\n   :target: https://pypi.org/project/picard.py/\n   :alt: Latest PyPI version\n\n.. image:: https://img.shields.io/pypi/pyversions/picard.py.svg\n   :target: https://pypi.org/project/picard.py/\n   :alt: Python versions supported\n\nThe idea of Ansible_ with the execution of Make_.\n\n.. _Ansible: https://www.ansible.com/overview/how-ansible-works\n.. _Make: https://www.gnu.org/software/make/manual/make.html\n\nWith Picard, you define a set of targets, each with a recipe that leaves it in\na desired state, e.g. a compiled executable or a running service. Targets may\ndepend on each other, e.g. \"this executable depends on that source file\" or\n\"this service depends on that host\", in a directed acyclic graph. Like Make,\nPicard executes the recipes for targets in dependency order.\n\nLike Ansible, Picard comes with many sophisticated recipes out-of-the-box\nthat behave like rsync_: they find the differences between a target's present\nstate and its goal state, and execute just the changes necessary to transition\nfrom the first to the second.\n\n.. _rsync: https://linux.die.net/man/1/rsync\n\nMake is limited to considering targets on the local filesystem, while Ansible\ncan consider more general targets and states, e.g. the existence and\nconfiguration of remote machines. Ansible's input is a rigid declarative\ntemplate (based on Jinja_), while Make's input is an executable script that\nbuilds the abstract definitions of the targets and gets to leverage functions\nand variables. Picard tries to combine the best of both worlds in pure Python.\n\n.. _Jinja: http://jinja.pocoo.org/\n\n.. end-include\n\nHelp\n====\n\nPlease see the documentation on `Read the Docs`_.\n\n.. _`Read the Docs`: https://picard.readthedocs.io\n\nIf you have any questions, please ask me_ in the issues_, by email_, over\nTwitter_, or however you want to reach me. I'll be happy to help you, because\nit will help me make this documentation better for the next reader.\n\n.. _me: https://github.com/thejohnfreeman\n.. _issues: https://github.com/thejohnfreeman/picard/issues\n.. _email: mailto:jfreeman08@gmail.com\n.. _Twitter: https://twitter.com/thejohnfreeman\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthejohnfreeman%2Fpicard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthejohnfreeman%2Fpicard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthejohnfreeman%2Fpicard/lists"}