mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-17 05:32:12 -05:00
Hierarchical issue tracking #6353
Open
opened 2025-11-02 06:53:25 -06:00 by GiteaMirror
·
3 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
type/proposal
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#6353
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @h0lg on GitHub (Nov 19, 2020).
Are there any plans (or existing forks you know of) for supporting hierarchical issue tracking?
If not, is there a way to store information about issue hierarchy?
I want to migrate from redmine, which provides that feature (via a parent_id field on the issue model).
I've looked at the dependencies/"blocking issues" model, but
it seems to have a different purpose in that it is opinionated about allowing status changes on an issue with open dependencies.
In my experience, it is better to keep hierarchical information independent from that. Otherwise moving an open issue into a closed one invalidates the status of the parent or even forces you to reopen it. That introduces perpetually-open issues into your system, because top-level components/modules will always have open ancestors some levels deeper. Redmine for example started out un-opinionated about that and then introduced a rule enforcing that a closed issue could only have closed ancestors, which made the entire hierarchy system harder to manage.
Also, there doesn't seem to be a swagger API or migration model support for the dependencies/"blocking issues" model.
Acknowledging that hierarchical issue tracking may be somewhat of a personal preference/subjective topic and you may be reluctant to add official support for it:
Background
I came to Gitea for the easy setup of a self-hosted git server on Windows. (Great job there btw - love the simple setup approach!)
Then I looked into the Issue tracking and immediately recognized it from Github - which is a big plus, because most devs know how to use that. What got me excited (and seriously thinking about switching issue trackers as well as git servers) though, are the new Kanban task boards.
The only thing that keeps me from making the switch at this point is the question of how to preserve the hierarchical information when migrating my issues to Gitea.
Having used hierarchical issue trackers has probably spoiled me and taught me to expect more from my issue tracking these days :|
Either way, I don't like the "solve & forget" approach of unstructured issue trackers much any more. I feel like I'm losing to much information and have to repeat myself too often when I use them; the communication overhead increases and the pitfalls become more numerous.
The case for hierarchical issue tracking
(from my personal experience)
@h0lg commented on GitHub (Oct 6, 2023):
A few years later and with some more experience working with hierarchical issue trackers I still like the option to organize part of my issues in a structured way (i.e. in trees instead of a flat list) that mimics the navigational and UI structure of my app.
It works well for big apps with many distinct components/pages.
But there's an issue with it that is hidden in the little word or in this section of the original proposal:
What if I want that or to be an and? What if I want my issue to be associated with a UI component as well as with a module relevant only to devs? Or associated with multiple UI components because it relates to their interaction? That basically means I want different tree structures or have the issue in different parts of the same tree. Yet my issue can't have more than one parent. As an OO programmer, I realize that I've signed up for a single-inheritance scheme lacking the flexibility that I need.
I don't want one tree to rule them all.
And on the heels of that it came to me that I don't need a pre-defined structure either: The existing issue Labels (tags) do what I need to categorize issues. Giving the labels the correct structure (e.g. a tree by navigational structure down to UI component or a list by internal module) can really only be taken care of by the consumer of the issue data - because any pre-defined structure would hardly ever be right for everyone all the time.
Once I have the label structure right, I can use the API to list issues by label.
The only thing I can currently think of required to make categorizing new issues easier is the ability to pre-fill the Labels from the URL #27341. A host app could use this to enable creating issues for a specific page or UI component, improving issue tracker integration and reducing manual categorization efforts.
So unless anyone sees benefits in defining and rendering issue label structures in gitea itself (e.g. in a JSON "trees" with
title: labelpairs for nodes), I'd say this may be better implemented as optional functionality in a plugin or custom in the host app.Feel free to close this proposal.
@lunny commented on GitHub (Oct 9, 2023):
I think Gitea Issues will not have a complicated features like Jira or Redmine int a short-term.
@h0lg commented on GitHub (Oct 9, 2023):
And that's not a problem - because if you want it, you can build it on top of gitea as a plugin or use its REST API to query and structure your issues according to your needs. That's the gist of what I wanted to get across above.