This is a consolidated summary of requirements provided by users. It was assembled by grouping similar requirements and sorting them by topic. When the same requirement was added as both a 'must-have' and a 'nice-to-have,' it's only listed once as a 'must-have.' Some requirements conflict with each other; those conflicts will need to be resolved by community discussion.
Current situation
Discussions and progress are scattered across a lot of tools. Bugs and features are sometimes tracked simultaneously in Mingle/Trello, Bugzilla, and Gerrit. Discussions happen across all of these platforms, plus via mailing lists, hangouts, Flow pages, and IRC. This has the effect of making our conversations regarding any progress completely disjointed, especially for tasks that take weeks to complete, because the discussion history can be incredibly hard to track. Users would like to do all the things that they need to do in one place, not six (Mingle, Bugzilla, Gerrit, IRC, Translatewiki, Mediawiki.org) or more.
Meta
Users must be able to:
Use this single system for all projects, configurations, discussions, designs and others (no roll-your-own-process with Mingle, or Github, etc.)
Be able to know what exactly the tool does and at least have a possibility of fixing it if necessary, that means: must be free and open source software and not outsourced
Users would like to be able to:
Workflow
Users must be able to:
Alter the workflow at any time to accommodate new needs
Enforce certain actions be taken when a card's status changes — e. g.: ensure ownership changes happen seamlessly when a card's status changes; ensure that comments be added when a particular status gets updated
Users would like to be able to:
Write a narrative of the important changes for a milestone (linking to tasks and commits alike) and series of milestones
Visualization
Users must be able to:
Create custom item views, and save them for future use — e.g.: "All reopened Flow bugs"
See the current sprint's swim lanes
Track velocity for a particular sprint as well as over an arbitrary length of time/number of iterations
Separate planned velocity from emergency velocity
Generate burnup/burndown charts
Work in the emergency work trend
View a dashboard for the review of incoming streams of, custom saved searches of, and individual item (task, commit)
Users would like to be able to:
See helpful graphs and reports
Have a tech trend graph that can be manipulated in real time
Organization and queries
Users must be able to:
Define a task's type (bug, feature, technical debt/code quality, enhancement) and query on that type / UI that is specifically made for tracking requests (software bug reports are just a subset of requests, bugtracker tools are specialized version of request trackers).
Tag items in a free-form way, display tags , and query on that tag
Display statuses — e. g.: for deployment, or blocked items
Query tickets and commits by product, component, status, assignee, keywords, relationships, codebase, sprint/iteration / Search code review, bugs, user stories, translation discussions
Add and edit relationships between the item and one or more other items (hierarchy, super-task/sub-task, dependency, bug <-> commit; also cross-project), automatically if possible / Associate items with external items
Assign a ticket to a (dated) milestone / sprint / Add deadlines to items
Accept and reject — e. g.: mark as invalid/wontfix) an item (with justification)
Rank/order/prioritize bugs and stories and do this across types — e. g.: not only prioritize stories and prioritize bugs, but also prioritized bugs/stories relative to each other)
Users would like to be able to:
Editing
Users must be able to:
Create new item (feature, task, bug)
Create an ultra-simple (default?) item entry type, which ideally would not even present anything beyond title and description.
Users would like to be able to:
Item content
Users must be able to:
Mark a task as "blocked" (with comments) / Mark items as 'not actionable' / Mark item as needing more input from a user
Edit type, priority, status, assignees, title, product/component, priority, confirmation, wording, details/comments of items
Users would like to be able to:
Define arbitrary properties for tickets
Monitor and report project results and objective criteria achievement
History
Users must be able to:
View who created an item, and who was working on it last
View the history of charges in a item's life cycle (creation, major swim lane moves like 'Pending Code Review' and 'Deployed,' change of priority/keyword, etc.)
Get a complete — i. e.: mostly automated — list, if not explanatory release notes, for all relevant items included in any given release/deploy of their interest.
Users would like to be able to:
Source code
Users must be able to:
Review and approve code before merging into master
Restrict code merge ability to team members
Run automated checks (linting, etc.) and tests (unit, integration, browser, …) when code commits are submitted, amended, and approved (and block merge on this basis)
Edit patches/code in their browser
Automatically RESOLVE bugs when the code is merged, maybe using "Closes Bug: ####" as commit message
Configure automated testing for each project independently, which can be required for merge (voting, which is preferred), or not required for merge (non-voting, ideally temporary)
Users would like to be able to:
Automatically mark issues and features as 'deployed to production' when they are deployed
Access
Users must be able to:
Restrict user read and/or write access to certain tickets, groups, and repositories
Restrict write access to certain properties of an item (type, status, priority) and actions (create/modify stories, administer project settings) to some users (assignee, team)
Allow any user to file a new bug
Let anyone (who isn't a spammer/vandal) comment on the bug
Let anyone read any (non-private) task ticket and all statuses
Have equal permissions even if they're just new users, rather than being punished for registering an account after year 200x (example for bugzilla: let all editbugs users add editbugs to other users.)
Users would like to be able to:
Lock an item from further discussion once closed (maybe after some period of time?)
Allow any user to generate an idea for a new user story
File a task using their SUL login transparently
Let anyone express mere '+1' in the form of votes, so that they don't clutter the discussion.
Interface
Users must be able to:
Add stories through desktop, mobile, tablet / Track requests to my team and me in a web-based UI.
See real time changes without reloading the web page for a sprint
See everything that is happening within a sprint without scrolling the screen
Have one area for the backlog, one area for the current sprint, and one area for the upcoming sprint
Users would like to be able to:
Clearly see when someone else is updating a story or bug (like, updating the text of the description). Even better, it would be awesome if there were real-time updates to story/bug descriptions and status changes (without refreshing the page manually)
Indicate user names in other venues (other tools, IRC, wiki, external sites)
Notifications and API
Users must be able to:
Provide stable, simple, short-as-possible sharable URLs that uniquely identify tickets without login
Transmit all needed streams of tickets and code commits by e-mail to users that need it
CC people (including themselves, as a watch/follow/subscribe feature) without them being considered assigned
Receive email notifications whenever a bug which they have filed, to which they have assigned themselves or been assigned by somebody else, or to which they have 'CC'ed on is updated
Be notified when new items are created or task status changes
Notify user automatically when an item has been assigned to him or her
Notify user when an item has been marked as needing more input from that user
Use a real-time notifications feed, preferably IRC
Get and send information about commits and tickets automatically on IRC
Use a read/write API provided by the tool
Work without waiting too long for the tool to load
Be notified when code goes to production
Export all of our data (users, stories, etc) in a generic/commonly used format (like CSV)
Get notifications based on arbitrary property changes — e. g.: a story has been moved to 'ready for signoff' and I receive an email alerting me to this fact
Users would like to be able to:
Be able to control an entire ticket flow from the git command line
Run scripts to batch-edit items
Receive by e-mail and be able to review incoming streams, custom saved searches, and individual translations of discussions
'Mute' a thread to stop receiving notifications about it, regardless of anything else
See the status/title of the bug when it's linked to from a wiki page
Export arbitrary chunks of data in a generic/commonly used format (like CSV)
Use a mobile app (Android and iOS) to be able to get notifications, update tasks, etc.