Recent from talks
Nothing was collected or created yet.
Redmine
View on Wikipedia| Redmine | |
|---|---|
| Developer | Jean-Philippe Lang |
| Initial release | June 25, 2006 |
| Stable release | 6.1.1 (January 6, 2026[1]) [±] |
| Repository | |
| Written in | Ruby |
| Operating system | Unix, Linux, macOS, Windows |
| Platform | Ruby on Rails |
| Available in | 49 languages[2] |
List of languages Albanian, Arabic, Azerbaijani, Basque, Bosnian, Bulgarian, Catalan, Croatian, Czech, Danish, Dutch, English, English (British), Estonian, Finnish, French, Galician, German, Greek, Hebrew, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Macedonian, Mongolian, Norwegian, Persian, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Serbian, Serbian Cyrillic, Simplified Chinese, Slovak, Slovene, Spanish, Spanish (Panama), Swedish, Thai, Traditional Chinese, Turkish, Ukrainian, Vietnamese | |
| Type | Project management software, Bug tracking system |
| License | GNU General Public License, version 2.0 |
| Website | www |
Redmine is a free and open source, web-based project management and issue tracking tool. It allows users to manage multiple projects and associated subprojects. It features per project wikis and forums, time tracking, and flexible, role-based access control. It includes a calendar and Gantt charts to aid visual representation of projects and their deadlines. Redmine integrates with various version control systems and includes a repository browser and diff viewer.
The design of Redmine is significantly influenced by Trac, a software package with some similar features.[3]
Redmine is written using the Ruby on Rails framework.[4] It is cross-platform and cross-database and supports 49 languages.[2]
Features
[edit]Redmine includes a wide range of features designed to support project management and collaboration. It enables tracking of multiple projects simultaneously and offers flexible, role-based access control. The platform incorporates an issue tracking system, Gantt chart, and calendar, along with integrated tools for managing news, documents, and files. Users can receive updates through web feeds and email notifications. Each project can have its own wiki and forum, and the system also supports basic time tracking. Redmine allows the creation of custom fields for issues, time entries, projects, and users. It integrates with various source code management systems such as Subversion (SVN, CVS, Git, Mercurial, Bazaar, and Darcs). Additional features include support for multiple LDAP authentication, user self-registration, compatibility with 49 languages, support for multiple databases, plugin extensions, and a REST API for external integrations.[5]
Adoption
[edit]As of 2008[update], there were more than 80 major Redmine installations worldwide.[6] Among the users of Redmine is Ruby.[7] In 2015, Redmine was the most popular open source project planning tool.[8]
Forks
[edit]Following concerns with the way the feedback and patches from the Redmine community were being handled[9] a group of Redmine developers created a fork of the project in February 2011.[10] The fork was initially named Bluemine, but changed to ChiliProject.[11] After the leader of the fork moved on from ChiliProject in 2012[12] and development and maintenance had been announced to shut down, the project was officially discontinued in February 2015.[13]
Another fork of ChiliProject called OpenProject is active since 2015.[14]
Additionally, Easy Redmine (also known as Easy Project), developed by Easy Software, functions as an extension to Redmine. Established in 2006, Easy Redmine offers enhanced features and a mobile application, and is available in over 80 countries. It covers various project management methodologies and integrates advanced functionalities like risk and resource management, Gantt charts, and CRM modules. Easy Redmine is being used by the Kazakh state administration, Bosch, and the Ministry of Foreign Affairs of the Czech Republic among others.[15][16][17]
See also
[edit]References
[edit]- ^ "Download - Redmine". redmine.org. Retrieved 2026-02-02.
- ^ a b "Features". redmine.org. Retrieved 2021-04-28.
- ^ "Edgewall Software Trac". trac.edgewall.org. 2015-03-01. Retrieved 2015-03-31.
- ^ "10 Awesome Free Applications for Office Work". OXHow.com. 2014-08-03. Archived from the original on 2018-10-06. Retrieved 2015-03-31.
- ^ "Overview - Redmine". crackpaws.ezyro.com/. Retrieved 2017-07-22.
- ^ "Redmine - They Are Using Redmine". Redmine. 2008-11-12. Archived from the original on 2010-05-07. Retrieved 2008-11-12.
- ^ "Ruby Issue Tracking System". Retrieved 2015-03-01.
- ^ "Project Planning Tools - Popularity Ranking". Project Management Zone. 2015-08-01. Retrieved 2015-08-01.
- ^ "ChiliProject – Why fork". Retrieved 2012-07-04.
- ^ "Introducing ChiliProject – A community fork of Redmine". 2 February 2011. Archived from the original on 2011-04-17. Retrieved 2011-04-16.
- ^ "Chiliproject FAQ". Retrieved 2015-03-31.
- ^ "ChiliProject". 2 February 2011. Retrieved 2014-05-21.
- ^ "Announcing the end of ChiliProject". 2015-02-02. Archived from the original on 2015-02-04. Retrieved 2015-02-28.
- ^ "Open Project Development Timeline". openproject.org. Retrieved 2015-03-31.
- ^ "Důvěra jako cenná komodita. Výzkum české firmy Easy Software vyvíjející projektové nástroje odhalil trendy managementu na dálku v roce 2021". roklen24.cz (in Czech). Retrieved 2023-12-26.
- ^ iX-Redaktion (2017-06-09). iX Special 2017 – IT-Projektmanagement: Agil bessere Software entwickeln (in German). Heise Medien GmbH & Co. KG. ISBN 978-3-95788-087-1.
- ^ "Easy Redmine Reveals its New Feature Developed Based on the Feedback of Over 200 Scrum Teams". markets.businessinsider.com. Retrieved 2023-12-26.
Sources
[edit]- Lesyuk, Andriy (2013). Mastering Redmine. Packt Publishing. ISBN 978-1-849519-14-4.
- Bevilacqua, Alex (2014). Redmine Plugin Extension and Development. Packt Publishing. ISBN 978-1-783288-74-8.
External links
[edit]Redmine
View on GrokipediaHistory
Origins and development
Redmine was initially developed by Jean-Philippe Lang in 2006 to address the need for a flexible, Ruby on Rails-based issue tracking system capable of handling multiple projects and supporting various databases.[1][5] From its early stages, the project adopted the GNU General Public License version 2.0 or later, enabling open-source collaboration and distribution.[1][6] It was initially hosted on RubyForge, the primary repository platform for Ruby projects at the time, before transitioning to a GitHub mirror in 2011 amid RubyForge's phase-out and growing community needs for version control accessibility.[7][8] The first public release, version 0.5.0, took place on June 25, 2006, marking Redmine's debut as a viable alternative for project management needs.[5][9] Following this launch, Redmine quickly evolved into a community-driven project, with contributions from volunteers expanding its core functionalities while Lang maintained oversight as the lead developer.[10] By 2010-2011, concerns over development pace, maintenance practices, and governance led to significant community discussions, culminating in the creation of ChiliProject as a fork to pursue a more structured release methodology and shared decision-making processes.[11]Major releases and milestones
Redmine's major releases have followed a cadence of approximately annual updates for significant versions, with minor releases providing maintenance and security fixes every few months. The project began its stable branch with version 1.0.0, released as a release candidate on July 18, 2010, marking the start of production-ready stability after years of development from its initial 2006 inception.[12] This version stabilized the codebase over six weeks and included numerous bug fixes and features building on the prior 0.9 release from January 2010.[13] Version 2.0.0 arrived on May 15, 2012, introducing substantial UI enhancements and dropping support for the outdated Rails 2.3 in favor of Rails 3, which improved performance and maintainability.[14] Around this time, the project adopted a two-branch release model, maintaining a stable branch for production users alongside the trunk for ongoing development, to balance reliability with innovation.[15] In 2011, prior to this release, the community experienced a notable event with the creation of ChiliProject, a fork led by key contributors seeking different development priorities; this prompted discussions but reinforced Redmine's commitment to its core model without direct backport accelerations documented in official records. Subsequent milestones included version 3.0.0 on February 19, 2015, which added support for Ruby 2.x versions and upgraded to Rails 4, enhancing compatibility with modern Ruby ecosystems.[16] Version 4.0.0, released on December 9, 2018, upgraded to Rails 5.2.2, enhancing security, stability, and performance.[17][18] The 5.0.0 release on March 28, 2022, brought modern authentication advancements, including two-factor authentication via TOTP and refined LDAP integration, alongside migration to Rails 6.1.[19][20] From 2020 onward, development emphasized compatibility with evolving Ruby and Rails versions. In 2023, with the 5.1.0 release on October 31, support for Ruby 2.5 and 2.6 ended to align with Ruby's maintenance branches, ensuring security patches for active versions only.[17][21] This culminated in version 6.0.0, released on November 10, 2024, which upgraded to Rails 7.2 and added Ruby 3.3 support while dropping support for Ruby 2.7 and 3.0.[22] The latest major update, version 6.1.0 on September 21, 2025, enhanced security through fixes for vulnerabilities like XSS and information disclosures, alongside API improvements such as OAuth2 provider support and new endpoints for better integration.[23] This ongoing focus on framework upgrades has been influenced by community growth, enabling sustained contributions to maintain Redmine's relevance in project management tools.[24]Features
Issue tracking and workflow
Redmine's issue tracking system serves as the central mechanism for managing tasks, bugs, and other project items, allowing teams to capture, assign, and progress work through structured processes. Issues represent individual units of work, each bound to a specific project and owned by a user, with attributes such as subject, description, priority, and estimated time.[25] This system supports customizable configurations to align with diverse project needs, emphasizing flexibility in defining how issues evolve from inception to resolution. At the core of issue management are trackers, which categorize issues by type, such as bugs, features, or tasks. Administrators can define trackers with options including a name, default status, and whether they appear on the project roadmap. Common trackers include Bug for defects, Feature for enhancements, and Task for general work items, enabling teams to differentiate and filter issues effectively.[26] Each tracker can have its own workflow, which may be copied from an existing one during creation to streamline setup.[26] Workflows in Redmine govern the progression of issues through statuses, such as New, Assigned, In Progress, Resolved, and Closed, using role-based rules to control transitions. For instance, a developer role might be permitted to move an issue to Resolved but not to Closed, requiring QA approval via a manager role. These rules are configured per tracker, specifying which statuses a role can transition to or from, and can include field-level permissions, such as making certain fields read-only or required during updates. The "Issue closed" flag on statuses indicates final resolution, while the "% Done" attribute allows tracking completion progress, which can be calculated automatically based on subtask status or set manually.[26] [25] Issues support relations to model dependencies and hierarchies, enhancing workflow sequencing. Parent-child relations link subtasks to a parent issue, with no depth limit and optional cross-project support; changes in subtask status influence the parent's done percentage, start date, and due date. Blocking relations indicate that one issue prevents progress on another until resolved, while precedes/follows links establish order without blocking. Other relations include duplicates (where closing one closes the other), copied from/to for replication, all enforced through permissions like "Edit issues."[25] Custom fields extend issue data capture with types like text, long text, integers, floats, booleans, dates, single or multi-select lists, user or group assignments, and version fields. These can be made available for all projects or specific ones, and are displayed in issue forms, lists, and reports to accommodate tailored information, such as risk levels or compliance tags.[27] Issues can be associated with versions, representing milestones or releases, to track progress toward specific targets via the roadmap view. Categories further organize issues within a project, grouping them by topic (e.g., frontend or backend) and allowing assignment of a default user for automatic ownership upon selection.[28] This integration supports brief visualizations like Gantt charts for timeline overviews based on issue dependencies and dates.[25] As of Redmine 6.1.0, issues and notes support reactions (such as emojis) for quick feedback and collaboration.[23]Project visualization and reporting
Redmine provides several built-in tools for visualizing project progress and generating reports from issue and time-tracking data, enabling users to gain insights into timelines, workloads, and resource allocation without relying on external software. These features draw from the core issue tracking system to present data in graphical and tabular formats, supporting project management across various scales.[29] Gantt charts in Redmine offer a dynamic timeline view of project activities by displaying issues that have defined start and due dates or are assigned to versions with scheduled dates. The chart renders issues as horizontal bars representing their durations on a time axis, allowing users to visualize overlaps, sequences, and key milestones tied to version release dates. This built-in functionality facilitates planning and monitoring by highlighting potential delays or bottlenecks based on date assignments, though advanced dependency visualizations require plugin extensions.[30] The calendar module presents an overview of project commitments in a monthly grid format, overlaying due dates for issues and versions to provide a temporal snapshot of upcoming deadlines. Users can navigate through dates to review assigned tasks, with filtering options similar to those in issue lists to focus on specific subsets of data, such as by tracker or status. While primarily monthly, the view supports date-based navigation for weekly assessments, aiding in resource scheduling and deadline awareness.[31] Roadmaps deliver version-centric summaries of project status, organizing open and closed issues into hierarchical lists grouped by version, complete with counts and clickable links to filtered issue views. Each version displays a progress bar indicating completion percentage, calculated as a weighted average of estimated hours across issues (defaulting to equal weighting if estimates are absent), which helps track milestone achievement and overall advancement. Customization includes sidebar filters for trackers and toggles to hide completed versions or specific categories, enhancing focus on active development phases.[32] Custom queries enable flexible data analysis through filter-based issue lists, where users apply criteria akin to SQL conditions—such as status, assignee, or custom fields—to generate tailored reports. Saved queries appear in the sidebar for reuse, allowing selection of display columns and public/private visibility, with results exportable to CSV for further processing in tools like spreadsheets. While core Redmine supports these for basic reporting, burndown charts depicting remaining work over time typically require plugin installation and minimal configuration to integrate with query outputs.[33] Time tracking reports aggregate logged hours into summaries accessible via the Spent Time > Report menu, grouping entries by categories like issue, user, activity, or version to reveal effort distribution and totals. For instance, reports can show cumulative hours per issue with subtotals (e.g., 2.67 hours for a specific bug) and overall project aggregates, output in HTML or CSV formats for auditing or billing. This feature supports per-user or per-version breakdowns, providing quantitative insights into productivity without advanced setup. As of Redmine 6.1.0, administrators can configure whether time logging is allowed on closed issues.[34][23]Collaboration and customization
Redmine supports team collaboration through integrated modules designed for documentation, discussion, and resource sharing. Each project includes a dedicated wiki for creating and editing pages using Textile or Markdown syntax (configurable in administration settings), which enables features like free linking to other wiki pages or issues, hierarchical page organization, and export options to HTML or PDF. Wiki pages maintain a full revision history, allowing users to view diffs between versions, annotate changes, and revert to previous states, facilitating collaborative editing and knowledge preservation.[2][35] Project forums provide threaded discussion spaces to foster communication among team members, with capabilities to create topics, reply in chains, attach files, and manage posts as sticky (pinned at the top) or locked (preventing further replies). These forums are enabled per project and help in brainstorming, support queries, and non-issue-related exchanges, though they can reference issues for context. Complementing this, the news module allows posting announcements and updates visible to all project members, serving as a centralized feed for important project communications. The files module acts as a document repository, where users upload, organize, and share resources in a hierarchical structure, with support for descriptions, download tracking, and secure storage, though it lacks built-in file versioning.[36][2][37] Access to these collaborative tools is governed by Redmine's role-based access control (RBAC) system, which groups permissions into customizable roles assignable to project members. Permissions cover actions such as viewing/editing issues, managing wiki pages, adding forum topics, uploading files, and administering members, with granular controls like "view issues" or "edit own changesets." Default roles include Manager (full administrative access), Developer (edit issues, wiki, and code), and Reporter (view and add issues), while users can hold multiple roles per project for combined privileges; global roles like Non member and Anonymous apply to public projects for limited access.[38] Interface personalization is achieved through themes, which override default stylesheets to modify the visual layout and colors, with installation placing theme files in the public directory and selection via administration settings; numerous community themes are available for download. Redmine also supports over 49 languages, enabling users to set their preferred language in profile settings for localized interfaces and content. Notifications enhance collaboration by delivering configurable email alerts for events like issue updates, news posts, forum replies, and file uploads, sent to authors, assignees, and watchers; Atom/RSS feeds provide syndication for project activity, issues, and changesets, with user-specific opt-ins to avoid overload. Additionally, source code management integration allows linking repository commits to issues, supporting code-focused team workflows.[39][2][40]Technical aspects
Architecture and technology stack
Redmine is constructed using the Ruby on Rails web application framework, which follows the Model-View-Controller (MVC) architectural pattern to separate concerns between data models, user interfaces, and request handling. Within this structure, ActiveRecord serves as the primary Object-Relational Mapping (ORM) component, facilitating interactions with the underlying database by abstracting SQL queries into Ruby objects.[1][41] As of Redmine 6.1.0 (released September 2025), for data persistence, Redmine accommodates multiple relational database management systems, including MySQL (versions 8.0 to 8.4 with specific configuration), PostgreSQL (version 14), Microsoft SQL Server (versions greater than 2012), and SQLite 3. PostgreSQL and MySQL are recommended for production deployments due to their robustness in handling concurrent access, while SQLite is suitable only for development or single-user scenarios. On the backend, Redmine requires a Ruby interpreter, with support for versions 3.2, 3.3, and 3.4. Source code management (SCM) integrations are enabled via direct repository access, supporting Git, Subversion (SVN), Mercurial, CVS, and Bazaar, where SCM binaries must be available in the system PATH for browsing and changeset fetching.[41][42] The frontend employs standard web technologies—HTML for structure, CSS for styling, and JavaScript for interactivity—leveraging Prototype.js as a legacy library alongside jQuery for dynamic elements, with recent additions like the Stimulus framework enhancing modern JavaScript capabilities in version 6.1 and later. A RESTful API exposes core resources such as issues, projects, and users, allowing external applications to perform CRUD operations via HTTP. Security is managed through session-based authentication for user sessions, native LDAP integration for directory-based logins, and built-in Cross-Site Request Forgery (CSRF) protection to mitigate unauthorized actions; OmniAuth support for additional OAuth providers is available via plugins.[43][44]Installation and deployment
As of Redmine 6.1.0 (released September 2025), Redmine installation requires specific prerequisites to ensure compatibility and performance. The application is built on Ruby on Rails, necessitating Ruby versions 3.2, 3.3, or 3.4, and Rails 7.2. Supported databases include PostgreSQL (version 14), MySQL (8.0 to 8.4), Microsoft SQL Server (2012 or higher), and SQLite 3 (suitable only for development, not production multi-user environments). Users must create an empty database and a dedicated user with appropriate permissions, such as granting all privileges on the schema in PostgreSQL viaCREATE USER redmine WITH PASSWORD 'password'; CREATE DATABASE redmine OWNER redmine;.[41]
The basic installation process begins with downloading the latest stable release from the official repository, typically as a .tar.gz or .zip file, and extracting it to a directory like /opt/redmine. Next, install dependencies by navigating to the Redmine root directory and running bundle install --without development test. Configure the database connection in config/database.yml by copying the example file and specifying the adapter (e.g., mysql2 for MySQL), database name, host, username, and password. Generate a secret token with bundle exec rake generate_secret_token, then migrate the database schema using RAILS_ENV=production bundle exec rake db:migrate. Load default configuration data with RAILS_ENV=production bundle exec rake redmine:load_default_data, set appropriate file permissions (e.g., chown -R redmine:redmine files log tmp public/assets), and start the server for testing via bundle exec rails server -e production using Puma or WEBrick. Initial access is at http://localhost:3000, with default credentials admin/admin.[41]
Deployment options include self-hosting on Linux distributions like Ubuntu or Debian, which are recommended for their robust package management and stability in production environments. For containerized setups, an official Docker image is available, allowing quick deployment with commands like docker run -d -p 3000:3000 --name redmine -v /path/to/files:/usr/src/redmine/files redmine:6.1, supporting persistent storage for files and integration with external databases. Cloud deployments are facilitated via platforms such as Heroku, where users clone the repository, configure a Procfile for Puma, remove SQLite dependencies, and push to a new app while setting environment variables for the database add-on. On AWS, Redmine can be deployed using EC2 instances with manual installation or pre-configured Bitnami stacks on Lightsail, which include Apache, Ruby, and database setup out-of-the-box.[45][46][47]
Post-installation configuration involves editing key files for operational settings. The config/database.yml file defines connection details, such as production: adapter: postgresql, database: redmine_production, host: localhost, username: redmine, password: password. For email notifications, attachments, and SCM integration, modify config/configuration.yml by copying from the example: enable SMTP with settings like default: email_delivery: smtp: address: smtp.gmail.com, port: 587, enable_starttls_auto: true, user_name: your_email, password: your_password; set attachments_storage_path: /var/redmine/files for file storage; and define SCM paths, e.g., scm_git_command: /usr/bin/git, scm_subversion_command: /usr/bin/svn. Production environments require at least 512MB RAM to handle typical loads, with adjustments for memory limits in web servers like Passenger.[48][49]
Upgrading Redmine involves backing up the database and files directory to prevent data loss, followed by downloading the new version or updating via Git/SVN. Copy over database.yml, configuration.yml, and custom files, then run bundle install and bundle update to align dependencies. Migrate the schema with RAILS_ENV=production bundle exec rake db:migrate and plugins via RAILS_EXEC=production bundle exec rake redmine:plugins:migrate if applicable. Clear caches using RAILS_ENV=production bundle exec rake tmp:cache:clear, regenerate the secret token for major version jumps (e.g., from Rails 6 to 7), and restart the server while verifying permissions. Version-specific changes, such as MySQL transaction isolation settings in 5.1+, must be addressed during the process.[50]
Ecosystem
Plugins and extensions
Redmine's extensibility is facilitated by a robust plugin system that employs a hook-based architecture, enabling developers to inject custom code at predefined points in the core application without altering the original source. Hooks consist of callback functions registered by plugins, which execute sequentially during specific events in Redmine's execution flow, such as view rendering or model actions. This design promotes modularity and allows for seamless integration of additional features like custom workflows or UI enhancements.[51][52] Plugins are installed by extracting the plugin archive into theplugins directory within the Redmine root folder, followed by running the command bundle exec rake redmine:plugins:migrate RAILS_ENV=production to apply any database migrations—always after backing up the database. After restarting the server, administrators can enable or configure plugins through the Administration > Plugins panel in the web interface. Management involves similar steps for updates or uninstallation, such as migrating to version 0 for removal and deleting the directory, with compatibility verified against the Redmine version (e.g., plugins tested for 5.0+). Themes, treated as specialized plugins, follow the same process and can overhaul the visual interface for better usability.[53]
The ecosystem boasts over 1,200 plugins listed in the official directory as of 2025, with many hosted in community repositories on GitHub for collaborative development and version control. Popular examples include the Redmine Agile plugin, which supports Agile and Scrum methodologies with drag-and-drop backlog planning and sprint visualization; the Checklists plugin, enabling sub-task checklists within issues for granular tracking; and advanced reporting plugins such as the Redmine Reporting Plugin (by AlphaNodes) for interactive dashboards with real-time charts (pie, bar, line), burndown charts, and cross-project analytics akin to some Jira features. Themes such as A1, offering responsive design with status badges and Retina support, and PurpleMine2, providing a modern purple-toned layout, are widely adopted for aesthetic improvements.[54][55][56][57][58][59][60][61]
While powerful, the plugin system has limitations, including potential conflicts arising from core updates that introduce API or Rails framework changes, necessitating individual testing of plugins after upgrades. Paid options, such as the RedmineUP suite encompassing bundles like Agile, CRM, Helpdesk, and Invoicing plugins, offer premium features with dedicated support but require licensing and may introduce dependencies that complicate third-party compatibility. These extensions complement core customization tools like custom fields by providing deeper, specialized functionality.[53][62][63]
