Taiga Project
Summary
This is to track progress on setting up and getting Taiga running in the Fedora Infrastructure for use by Fedora Teams and Projects.
Owner
- Name: Adam Miller
- Email: maxamillion@fedoraproject.org
- Name: Ralph Bean
Current status
- Targeted release: Fedora 23
- Last updated: 2015-05-12
- Percentage of completion: 10%
Detailed Description
Currently different groups (or "subprojects") within the Fedora Project all function in a very disjoint fashion with completely different workflows. While this is likely very applicable from a technical perspective for various needs, there are project planning workflows that can be adapted to almost any type of work. A prime example of this would be kanban, which was originally extracted from supermarket stocking, applied to automotive manufacturing, and recently become very popular in the software development world. The idea here would be that you take a task and divide it into units of work that are estimated to take some finite amount of time to accomplish and in the event that it takes longer, that task should be broken out into smaller tasks. This lends itself to rapid iterative improvements instead of giant all-encompassing project based work.
Benefit to Fedora
The hope here is that this will allow for Fedora to be more open and inviting to new contributors because various groups/SIGs within the Fedora Project will share a similar workflow at least at a high level such that someone looking at what the Infrastructure Group is up to could also look at what the QA or Docs groups are up to and have a decent idea of what is going on in order to decide if there's any ongoing work that interests them. Another aspect is that if the ongoing work within these groups has been broken down into small enough tasks that someone can accomplish them in half a day, a day, or two days (or some other arbitrary "size" of time), it will allow a newcomer to have a well defined task that is an entry point into the project that they find interesting without being too daunting.
Aside from opening up even more to new contributors, this will hopefully encourage different groups within Fedora to think about the work they are doing in small enough tasks that can be easily measured and by looking at the project "board" (more on the board later in discussion of tools), an overview of what's in progress and what's coming down the pipeline is easy to view both for actively engaged members doing the work and for obervational community members just curious what other groups are up to.
Scope
The scope of this work is:
- Proof of Concept environment up and running from upstream source
- Implement Taiga plugins needed by Fedora
- Package the components required and get them into Fedora (including Fedora specific plugins)
- Create Ansible configurations to deploy and manage Taiga
- Deploy Taiga to staging environment
- Promote to Prod when signed off by Fedora Infrastructure team
Taiga PoC Planning
This will be where the scope of work needed will be listed out in order to plan and implement the Proof of Concept(PoC) for use of Taiga as the Project Planning/Management and kanban board workflow for Fedora. Originally the PoC will target the Fedora Rel-Eng group but we will be working cross-team to make sure requirements and considerations are taken into account to allow for other teams within Fedora to use Taiga.
Pre-Req
- python3 in EPEL7
- Fedora Infrastructure is hosted on RHEL7, Taiga requires Python 3.4+
Required Packages
- taiga-back # Taiga backend
- taiga-front-dist # Taiga frontend
- taiga-events # Taiga websockets gateway (technically optional from the Taiga aspect but something we should aim for)
Optional Packages:
- TBD
Requirements Planning
For inclusion in Fedora, potentially hosted and listed under "Fedora Apps" we will need certain integrations into Fedora's Infrastructure.
The scope here is directly targeting the PoC but will also try to make notes of requirements for a full production deploy:
PoC Requirements
- Must be able to authenticate with FAS
- Fedmsg integration for message passing and notifications to the rest of the Fedora Infra
- Trac integration for Rel-Eng
- #FIXME - Right now this is expected to be just to either integrate tasks two-way or as a migration path functionality... needs more thinking over
- Pagure integration
- #FIXME - What this means and what it will look like also needs to be planned out.
PoC Ongoing Work
Dev instance deployed in the Fedora Cloud, can be accessed at: http://taiga.cloud.fedoraproject.org/
- Ralph has implemented a FAS Account auth plugin and it can be seen at the dev instance.
PROD Needs outside PoC scope
- Integration with Fedora Badges
- This might be more directly related to fedmsg, but should be noted either way
Links of interest
Links of interest for adding new functionality to Taiga:
- Taiga Docs Main Index
- Taiga REST API
- Gogs Intregration Plugin (Should be useful for reference to integrating Pagure)
- Tweet from Taiga.io on Fedora 21 install instructions
- Resulting links - Thanks to Brett Taylor (ssplat)
Dependencies and Packaging Work Tracking
### NOTE ###
It was decided in the Fedora Infrastructure Meeting on 2015-05-28 that the packaging work would be put on hold until post-Flock where broad Fedora Project adoption of Taiga will be discussed as well as some finer points about app containerization will be sorted out for build deps in web apps.
COPR Workspace
The following COPR is to be used as a workspace to get all dependencies and Taiga components packaged and built so they can be tested even if everything has not yet completed the Fedora Package Review Process.
https://copr.fedoraproject.org/coprs/maxamillion/taiga/
- If anyone is interested in joining the packaging efforts, please feel free to add yourself to the table below as currently working on a package and apply to the above COPR as a builder.
Taiga Core Components
- taiga-front: Taiga's web front-end (written in JS, node.js, and coffeescript)
- taiga-back: Taiga's backend server (written in Python3.4+ based on Django)
- taiga-events: Taiga's websocket server (written in JS/node.js
Non-core Taiga Requirements
- nginx (already in Fedora)
- rabbitmq (already in Fedora)
- mozilla circus (not yet in Fedora)
Packaging Status
Package | Version | Review request | Packager | Status | Comments |
---|---|---|---|---|---|
python34 | 3.4.3 | 1219411 | Matej Stuchlik | Pending Review | Needed for EPEL7 to host Taiga on RHEL7 Infrastructure |
Package | Version | Review request | Packager | Status | Comments |
taiga-back | Adam Miller | Pending Packaging | |||
python3-django | Already in Fedora | ||||
python3-django-picklefield | Python2 version already in Fedora, should be an easy package update | ||||
python3-django-sampledatahelper | Adam Miller | Unpackaged dependency of taiga-back | Upstream URL - Adam Miller packaged and in COPR | ||
python3-sampledata | Adam Miller | Unpackaged dependency of python3-django-sampledatahelper | pypi URL - Adam Miller packaged and in COPR | ||
python3-versiontools | Dependency of python3-django-sampledatahelper, python2 version is in Fedora. Needs updating. | Adam Miller patched and submitted RFE BZ#1225658 | |||
python3-gunicorn | Already in Fedora | ||||
python3-psycopg2 | Already in Fedora | ||||
python3-pillow | Already in Fedora | ||||
python3-pytz | Already in Fedora | ||||
python3-six | Already in Fedora | ||||
python3-amqp | Already in Fedora | ||||
python3-djmail | Unpackaged dep of taiga-back | Upstream URL | |||
python3-django-pgjson | Unpackaged dep of taiga-back | Upstream URL | |||
python3-djorm-pgarray | Unpackaged dep of taiga-back | Upstream URL | |||
python3-django-jinga | Unpackaged dep of taiga-back | Upstream URL | |||
python3-jinja2 | Already in Fedora | ||||
python3-pygments | Already in Fedora | ||||
python3-django-sites | Unpackaged dep of taiga-back | Upstream URL | |||
python3-markdown | Already in Fedora | ||||
python3-fn | Already in Fedora | ||||
python3-diff-match-patch | Unpackaged dep of taiga-back | Upstream URL | |||
python3-requests | Already in Fedora | ||||
python3-django-sr | Unpackaged dep of taiga-back | Upstream URL | |||
python3-easy-thumbnails | Unpackaged dep of taiga-back | Upstream URL | |||
python3-celery | Already in Fedora | ||||
python3-redis | Already in Fedora | ||||
python3-unidecode | Already in Fedora | ||||
python3-raven | Already in Fedora | ||||
python3-bleach | Already in Fedora | ||||
python3-django-ipware | Unpackaged dep of taiga-back | Upstream URL | |||
python3-premailer | Unpackaged dep of taiga-back | Upstream URL | |||
python3-django-transactional-cleanup | Unpackaged dep of taiga-back | Upstream URL | |||
python3-lxml | Already in Fedora | ||||
python3-django-pglocks | Unpackaged dep of taiga-back | Upstream URL | |||
Package | Version | Review request | Packager | Status | Comments |
taiga-front | Adam Miller | Pending Packaging | |||
nodejs-angular-mocks | Unpackaged dep of taiga-front | npm URL | |||
nodejs-bluebird | Already in Fedora | ||||
nodejs-chai | Already in Fedora | ||||
nodejs-cli-color | Unpackaged dep of taiga-front | npm URL | |||
coffee-script | Already in Fedora | ||||
nodejs-del | Unpackaged dep of taiga-front | npm URL | |||
nodejs-express | Already in Fedora | ||||
nodejs-glob | Already in Fedora | ||||
nodejs-gulp | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-angular-templatecache | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-autoprefixer | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-cache | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-cached | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-coffee | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-coffeelint | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-concat | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-csslint | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-flatten | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-if | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-imagemin | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-insert | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-jade | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-jade-inheritance | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-minify-css | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-order | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-plumber | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-print | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-rename | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-replace | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-sass | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-scss-lint | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-sourcemaps | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-template | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-uglify | Unpackaged dep of taiga-front | npm URL | |||
nodejs-gulp-wrap | Unpackaged dep of taiga-front | npm URL | |||
nodejs-karma | Unpackaged dep of taiga-front | npm URL | |||
nodejs-karma-chai | Unpackaged dep of taiga-front | npm URL | |||
nodejs-karma-chrome-launcher | Unpackaged dep of taiga-front | npm URL | |||
nodejs-karma-coffee-preprocessor | Unpackaged dep of taiga-front | npm URL | |||
nodejs-karma-mocha | Unpackaged dep of taiga-front | npm URL | |||
nodejs-karma-sinon | Unpackaged dep of taiga-front | npm URL | |||
nodejs-karma-sinon-chai | Unpackaged dep of taiga-front | npm URL | |||
nodejs-karma-sourcemap-loader | Unpackaged dep of taiga-front | npm URL | |||
mocha | Already in Fedora | (Should the package name be nodejs-mocha?) | |||
nodejs-pre-commit | Unpackaged dep of taiga-front | npm URL | |||
nodejs-readable-stream | Already in Fedora | ||||
nodejs-run-sequence | Unpackaged dep of taiga-front | npm URL | |||
nodejs-sinon | Unpackaged dep of taiga-front | npm URL | |||
nodejs-through2 | Already in Fedora | ||||
Package | Version | Review request | Packager | Status | Comments |
taiga-events | Adam Miller | Pending Packaging | |||
nodejs-amqplib | currently unpackaged dep of taiga-events | npm URL | |||
nodejs-base64-url | currently unpackaged dep of taiga-events | npm URL | |||
nodejs-bluebird | Already in Fedora | ||||
nodejs-node-uuid | Already in Fedora | ||||
nodejs-ws | Already in Fedora |
Further reading
- The Kanban System
- Kanban Software Development
- Kanban Development Oversimplified
- Lean Software Development Using Kanban
- Why use kanban in software development?
- What is kanban?
- Kanban Applied to Software Development: from Agile to Lean