From dba76dc22663f3614d1c6a14fa1a79aee77034c7 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Sun, 3 Jan 2010 11:05:57 -0500 Subject: Add #bea/814# : Add Roundup-like flexibility --- .../17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/body | 14 +++++ .../17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/values | 11 ++++ .../d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/body | 67 ++++++++++++++++++++++ .../d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/values | 8 +++ .../814e39c0-68ee-4165-9166-19e2aee9c07d/values | 11 ++++ 5 files changed, 111 insertions(+) create mode 100644 .be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/body create mode 100644 .be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/values create mode 100644 .be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/body create mode 100644 .be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/values create mode 100644 .be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/values (limited to '.be/bea86499-824e-4e77-b085-2d581fa9ccab') diff --git a/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/body b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/body new file mode 100644 index 0000000..6e3f1e7 --- /dev/null +++ b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/body @@ -0,0 +1,14 @@ +> Roundup's great strength is the flexibility of its data model and +> range of generic support. It's very easy to extend... +> ... +> As far as postponed customization goes, it would be easy enough to +> duplicate Roundup's schema.py and provide a default schema.py for +> bugtracking. This would improve our current system by keeping all the +> configurable bits under version control from the start (equivalent to +> setting _versioned_property(require_save=True) for all properties). + +How will we handle diffs between with revisions with different +schema.py? This re-raises #bea86499-824e-4e77-b085-2d581fa9ccab/ed5eac05-80ed-411d-88a4-d2261b879713/c664b7be-ded5-42dd-a16a-82b2bdb52e36# (#bea86499-824e-4e77-b085-2d581fa9ccab/1100c966-9671-4bc6-8b68-6d408a910da1/bd1207ef-f97e-4078-8c5d-046072012082#), but we +_expect_ schema.py to evolve, while before we had expected on-disk +versions to stabilize. + diff --git a/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/values b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/values new file mode 100644 index 0000000..5bc6769 --- /dev/null +++ b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/17d045d1-3b21-4d3d-8f81-29a5bbc5e6c1/values @@ -0,0 +1,11 @@ +Author: W. Trevor King + + +Content-type: text/plain + + +Date: Sun, 03 Jan 2010 16:02:57 +0000 + + +In-reply-to: d463e2d9-6dcc-41a4-a6b2-647fb3bddf88 + diff --git a/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/body b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/body new file mode 100644 index 0000000..b953536 --- /dev/null +++ b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/body @@ -0,0 +1,67 @@ +The Roundup issue tracker + http://roundup.sourceforge.net/ +has been around for a while, and provides a nice, flexible design + http://roundup.sourceforge.net/docs/design.html +What ideas from Roundup are worth incorperating in our setup? + +Roundup's great strength is the flexibility of its data model and +range of generic support. It's very easy to extend. However, there +is only so far you can go with generic support. Roundup lacks analogs +to the following Command subclasses (as far as I know): + Diff + Has per-issue logs, but no repository-wide summary + Merge + Commit + No VCS backends, see http://issues.roundup-tracker.org/issue2550547 + Import_xml + Serve + Has HTML server, but no remote command-line access +Of course, none of these would be particularly hard to add to Roundup, +with the possible exception of VCS backends, which appears to be +in-progress anyway. However, I really like the simplicity of + `be init` +and the ability to postpone repository customization until you need +it. So, can we trim down the BE internals to make BE more extensible +without sacrificing our nice default setup and its tools? The problem +is, how to the commands do their thing if they don't know what they're +working with? + +Say, for example, I want to run `be depend bugA bugB`, but my bugs +don't have blocks or blocked_by link properties. That could be easily +handled by having each command would have to keep track of which +properties it needed and raise appropriate exceptions. + +List, Show, Import_xml, etc. would presumably use templates to define +their output/input formats. + +As far as postponed customization goes, it would be easy enough to +duplicate Roundup's schema.py and provide a default schema.py for +bugtracking. This would improve our current system by keeping all the +configurable bits under version control from the start (equivalent to +setting _versioned_property(require_save=True) for all properties). + +Another part of the difference between BE and Roundup seems to be due +to the initial backend selection. Roundup is built on databases, +which encourages their keyed-Class approach with (property, value) +pairs of predefined types. They use Classes for everything, down to +status values, etc., while we've built those sorts of things into +_versioned_property()s. +Benefits of Roundup approach: + * easy to configure/alter/retrieve list of allowed values + * no need to hard-code properties or resort to extra_strings + * assigned values are actually links to centralized definitions + - easy updates +Benefits of BE approach: + * single file for all properties + - one read and you're done + - many file systems don't handle 'lots of tiny files' well + * assigned values are actual values, not links to centralized defs. + - easy to merge by hand, no need to look up references. +Since it would be fairly simple to add a merging tool that handled the +reference lookup transparently, we can move to a Roundup-like Class +structure by using our current mapfile implementation to store small +Classes. + +Finally, would it be easier to merge these Roundup features into BE, +or merge the BE features into Roundup... + diff --git a/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/values b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/values new file mode 100644 index 0000000..cb7278c --- /dev/null +++ b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/comments/d463e2d9-6dcc-41a4-a6b2-647fb3bddf88/values @@ -0,0 +1,8 @@ +Author: W. Trevor King + + +Content-type: text/plain + + +Date: Sun, 03 Jan 2010 14:16:55 +0000 + diff --git a/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/values b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/values new file mode 100644 index 0000000..9c9a294 --- /dev/null +++ b/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/814e39c0-68ee-4165-9166-19e2aee9c07d/values @@ -0,0 +1,11 @@ +severity: minor + + +status: open + + +summary: Add Roundup-like flexibility + + +time: Sun, 03 Jan 2010 13:12:38 +0000 + -- cgit