{"id":17320875,"url":"https://github.com/andreacrotti/project-organizer","last_synced_at":"2025-03-27T03:15:20.564Z","repository":{"id":66719702,"uuid":"2548218","full_name":"AndreaCrotti/project-organizer","owner":"AndreaCrotti","description":"organize all your projects supporting different SCM","archived":false,"fork":false,"pushed_at":"2012-03-11T23:41:13.000Z","size":196,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T08:31:02.560Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndreaCrotti.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-10-10T13:42:41.000Z","updated_at":"2021-09-21T23:33:05.000Z","dependencies_parsed_at":"2023-02-20T10:00:25.035Z","dependency_job_id":null,"html_url":"https://github.com/AndreaCrotti/project-organizer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreaCrotti%2Fproject-organizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreaCrotti%2Fproject-organizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreaCrotti%2Fproject-organizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreaCrotti%2Fproject-organizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndreaCrotti","download_url":"https://codeload.github.com/AndreaCrotti/project-organizer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245773180,"owners_count":20669719,"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-15T13:34:13.660Z","updated_at":"2025-03-27T03:15:20.539Z","avatar_url":"https://github.com/AndreaCrotti.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Project organizer\n\nThis project aims to set up an uniform way to manage multiple\nprojects, trying to support many different SCMs and modalities.\n\n\nEvery project can be a separate entity, but sharing configurations and\ngeneral rules with many other projects.\n\nIn case there is an original project of our personal fork, we should\nbe able to see detailed diffs and statistics about it.\n\n* Tasks\n** TODO [#A] define exactly what is the scope of the project, or it might end up trying to be too smart\n   This tool should be mainly used for developer, to manage graphs easily\n\n** TODO define what should be the user interface, as CLI and as cmdloop\n\n** TODO take from mr.developer or write from scratch some code to abstract the SCM used\n\n** TODO define a grammar/syntax for a configuration file format\n\n** TODO write doc in RST format\n** TODO check if [[http://code.google.com/p/gerrit/][gerrit]] might be something which can be included (even if it's a Java program)\n** TODO check when sqlite was included in Python\n** TODO define a way to make it py3k compatible (possibly with the same code-base)\n\n* Native libraries\n  In this case we want to access directy to the internals, might be\n  faster and more powerful but the API might not be stable.\n\n** Git\n   We can use [[https://github.com/libgit2/pygit2][libgit2]] and its python bindings to access to git\n   repositories from git.\n\n** Mercurial\n   [[http://mercurial.selenic.com/wiki/MercurialApi][Official mercurial API]] to access the repository in an object\n   oriented fashion.  The official API can break compatibility at every\n   version, use [[https://bitbucket.org/haard/hgapi][HGapi]] to get a stable interface.\n\n** Bazaar\n   [[http://wiki.bazaar.canonical.com/BzrLib][BZrlib]]\n\n** Subversion\n   [[http://svnbook.red-bean.com/en/1.1/ch08s02.html][using the SVN api]] with some examples in Python\n\n* Emacs integration\n  Switching to project should be done withing Emacs (calling shell\n  commands) too with the following:\n  - always store buffers and window configurations used\n  - restore buffers (maybe in new frames) and window configurations\n  - show and analyse the time spent in each of the projects\n    (possibly using org-mode and its advanced timing mechanisms)\n\n  Keep a database storing all the bugs filled, and create\n  org-mode-like links to be able to jump them easily.\n\n* Ideas\n  - this project might be a good candidate to test the actor model for\n    some real concurrency, see for example pyzmq\n  - instead of reinventing the wheel and try to create another\n    SCM-agnostic generic system, just make it very easy to create\n    generic alias for commonly used operations\n  - have a way to generate graphviz graphs of the project tree in\n    SCM-agnostic way\n  - store all the statistics and the history of the work in an\n    internal database, using sqlite for example\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreacrotti%2Fproject-organizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreacrotti%2Fproject-organizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreacrotti%2Fproject-organizer/lists"}