Open Design Engine (ODE) uses Capistrano for code deployment. Capistrano is a developer tool for deploying web applications. It is typically installed on a workstation, and used to deploy code from your source code management (SCM) to one, or more servers.
In order to deploy code to production servers, you must first have authorization to access the server. The simplest way to achieve access is to use SSH public/private key pairs so that you don't have to type the password each time. Because SSH is the transport for other services such as SCP (secure copy), SFTP (secure file transfer), and other services (SVN, etc), this can be very convenient and save you a lot of typing.
If your local username is different from your remote username, add -s user=<remote_user> to the beginning of the Capistrano commands.
We can archive by tarring the current release directory with the archive command:
cap production archive name=0.1.0
This process with tar the current release directory and copy the tar file to the shared directory. In addition, it will download the tar file to your local tmp/ directory.
The following instructions are meant to help get the ODE application up and running on your local workstation. Note, these instructions assume you are setting up a development environment on Linux/OS X.
You will need to setup a local development MySQL database and call it 'ode_development'.
To create the database, run the following commands:
mysql -u root -p
mysql> create database ode_development character set utf8;
mysql> create user 'ode_development'@'localhost' identified by 'my_password';
mysql> grant all privileges on ode_development.* to 'ode_development'@'localhost';
mysql> exit
Next we need to create a new database.yml so the application knows how to connect to the database. To accomplish this, simple copy the database.yml.exampe file:
cd trunk
cp config/database.yml.example config/database.yml
Under the development: section of the the config file, fill in the database name, username, and password.
This page contains the DRAFT Terms of Service for Open Design Engine. It is used to prepare the formatting before posting updates to the Terms of Service. See https://opendesignengine.net/terms for the live Terms of Service.
The following terms and conditions govern all use of the OpenDesignEngine.net website and all content, services and products available at or through the website. The Website is owned and operated by Mach 30 (“Mach 30”). The Website is offered subject to your acceptance without modification of all of the terms and conditions contained herein and all other operating rules, policies (including, without limitation, Mach 30’s Privacy Policy included below) and procedures that may be published from time to time on this Site by Mach 30 (collectively, the “Agreement”).
Please read this Agreement carefully before accessing or using the Website. By accessing or using any part of the Website, you agree to become bound by the terms and conditions of this agreement. If you do not agree to all the terms and conditions of this agreement, then you may not access the Website or use any services. If these terms and conditions are considered an offer by Mach 30, acceptance is expressly limited to these terms. The Website is available only to individuals who are at least 13 years old.
Your OpenDesignEngine.net Account and Site. If you create a project on the Website, you are responsible for maintaining the security of your account and project, and you are fully responsible for all activities that occur under the account and any other actions taken in connection with the project. You must not describe or assign keywords to your project in a misleading or unlawful manner, including in a manner intended to trade on the name or reputation of others, and Mach 30 may change or remove any description or keyword that it considers inappropriate or unlawful, or otherwise likely to cause Mach 30 liability. You must immediately notify Mach 30 of any unauthorized uses of your project, your account or any other breaches of security. Mach 30 will not be liable for any acts or omissions by You, including any damages of any kind incurred as a result of such acts or omissions.
Responsibility of Contributors. If you operate a project, comment on a project, post material to the Website, post links on the Website, or otherwise make (or allow any third party to make) material available by means of the Website (any such material, “Content”), You are entirely responsible for the content of, and any harm resulting from, that Content. That is the case regardless of whether the Content in question constitutes text, graphics, an audio file, or computer software. By making Content available, you represent and warrant that:
the downloading, copying and use of the Content will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark or trade secret rights, of any third party;
if your employer has rights to intellectual property you create, you have either (i) received permission from your employer to post or make available the Content, including but not limited to any software, or (ii) secured from your employer a waiver as to all rights in or to the Content;
you have fully complied with any third-party licenses relating to the Content, and have done all things necessary to successfully pass through to end users any required terms;
the Content does not contain or install any viruses, worms, malware, Trojan horses or other harmful or destructive content;
the Content is not spam, is not machine- or randomly-generated, and does not contain unethical or unwanted commercial content designed to drive traffic to third party sites or boost the search engine rankings of third party sites, or to further unlawful acts (such as phishing) or mislead recipients as to the source of the material (such as spoofing);
the Content is not pornographic, does not contain threats or incite violence towards individuals or entities, and does not violate the privacy or publicity rights of any third party;
your project is not being advertised via unwanted electronic messages such as spam links on newsgroups, email lists, projects and web sites, and similar unsolicited promotional methods;
your project is not named in a manner that misleads your readers into thinking that you are another person or company. For example, your project’s URL or name is not the name of a person other than yourself or company other than your own; and
you have, in the case of Content that includes computer code, accurately categorized and/or described the type, nature, uses and effects of the materials, whether requested to do so by Mach 30 or otherwise.
the Content does not intimidate or harass another
the Content does not include any personally identifiable information about persons under 13 years of age
you have not used or attempted to use another's account, service, or personal information
Licenses Associated With Content on the Websites and Services.
Mach 30 Content: All Content (other than computer software) owned by Mach 30 and made available by Mach 30 on the Website or through the Services is licensed under the Creative Commons Attribution 3.0 Unported license, unless marked otherwise.
Your Content: You retain the copyright in the Content you provide on the Websites or in connection with the Services. You hereby agree that all Content you voluntarily provide to Mach 30 on or through any Website or Service is licensed under an approved open source license (as listed on the Website), is not copyrightable, or is in the public domain. When you post your Content, you designate the relevant project as the “Attribution Party” for the purposes of the attribution licenses and grant permission for the relevant Website URI to be associated with your Content for purposes of that license. If Content you provide is protected by copyright, then if it is not licensed under an approved open source license, you must not provide it to Mach 30.
Publishing Content. By submitting Content to Mach 30 for inclusion on your Website, you grant Mach 30 a world-wide, royalty-free, and non-exclusive license to reproduce, modify, adapt and publish the Content solely for the purpose of displaying, distributing and promoting your project. If you delete Content, Mach 30 will use reasonable efforts to remove it from the Website, but you acknowledge that caching or references to the Content may not be made immediately unavailable.
Removal of Content. Without limiting any of those representations or warranties, Mach 30 has the right (though not the obligation) to, at Mach 30’s sole discretion (i) refuse or remove any content that, in Mach 30’s reasonable opinion, violates any Mach 30 policy or is in any way harmful or objectionable, or (ii) terminate or deny access to and use of the Website to any individual or entity for any reason, in Mach 30’s sole discretion. Mach 30 will have no obligation to provide a refund of any amounts previously paid.
Responsibility of Website Visitors. Mach 30 has not reviewed, and cannot review, all of the material, including computer software, posted to the Website, and cannot therefore be responsible for that material’s content, use or effects. By operating the Website, Mach 30 does not represent or imply that it endorses the material there posted, or that it believes such material to be accurate, useful or non-harmful. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. The Website may contain content that is offensive, indecent, or otherwise objectionable, as well as content containing technical inaccuracies, typographical mistakes, and other errors. The Website may also contain material that violates the privacy or publicity rights, or infringes the intellectual property and other proprietary rights, of third parties, or the downloading, copying or use of which is subject to additional terms and conditions, stated or unstated. Mach 30 disclaims any responsibility for any harm resulting from the use by visitors of the Website, or from any downloading by those visitors of content there posted.
Content Posted on Other Websites. We have not reviewed, and cannot review, all of the material, including computer software, made available through the websites and webpages to which OpenDesignEngine.net links, and that link to OpenDesignEngine.net. Mach 30 does not have any control over those non-"Open Design Engine" websites and webpages, and is not responsible for their contents or their use. By linking to a non-"Open Design Engine" website or webpage, Mach 30 does not represent or imply that it endorses such website or webpage. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. Mach 30 disclaims any responsibility for any harm resulting from your use of non-"Open Design Engine" websites and webpages.
Copyright Infringement and DMCA Policy. As Mach 30 asks others to respect its intellectual property rights, it respects the intellectual property rights of others. If you believe that material located on or linked to by OpenDesignEngine.net violates your copyright, you are encouraged to notify Mach 30 by emailing dmca at opendesigneengine.net. Mach 30 will respond to all such notices, including as required or appropriate by removing the infringing material or disabling all links to the infringing material. Mach 30 will terminate a visitor’s access to and use of the Website if, under appropriate circumstances, the visitor is determined to be a repeat infringer of the copyrights or other intellectual property rights of Mach 30 or others. In the case of such termination, Mach 30 will have no obligation to provide a refund of any amounts previously paid to Mach 30.
Intellectual Property. This Agreement does not transfer from Mach 30 to you any Mach 30 or third party intellectual property, and all right, title and interest in and to such property will remain (as between the parties) solely with Mach 30. Mach 30, Open Design Engine, OpenDesignEngine.net, the OpenDesignEngine.net logo, and all other trademarks, service marks, graphics and logos used in connection with OpenDesignEngine.net, or the Website are trademarks or registered trademarks of Mach 30 or Mach 30’s licensors. Other trademarks, service marks, graphics and logos used in connection with the Website may be the trademarks of other third parties. Your use of the Website grants you no right or license to reproduce or otherwise use any Mach 30 or third-party trademarks.
Advertisements. Mach 30 reserves the right to display advertisements on your project.
Changes. Mach 30 reserves the right, at its sole discretion, to modify or replace any part of this Agreement. It is your responsibility to check this Agreement periodically for changes. Your continued use of or access to the Website following the posting of any changes to this Agreement constitutes acceptance of those changes. Mach 30 may also, in the future, offer new services and/or features through the Website (including, the release of new tools and resources). Such new features and/or services shall be subject to the terms and conditions of this Agreement.
Termination. Mach 30 may terminate your access to all or any part of the Website at any time, with or without cause, with or without notice, effective immediately. If you wish to terminate this Agreement or your OpenDesignEngine.net account (if you have one), you may simply discontinue using the Website. All provisions of this Agreement which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.
Disclaimer of Warranties. The Website is provided “as is”. Mach 30 and its suppliers and licensors hereby disclaim all warranties of any kind, express or implied, including, without limitation, the warranties of merchantability, fitness for a particular purpose and non-infringement. Neither Mach 30 nor its suppliers and licensors, makes any warranty that the Website will be error free or that access thereto will be continuous or uninterrupted. If you’re actually reading this, here’s a treat. You understand that you download from, or otherwise obtain content or services through, the Website at your own discretion and risk.
Limitation of Liability. In no event will Mach 30, or its suppliers or licensors, be liable with respect to any subject matter of this agreement under any contract, negligence, strict liability or other legal or equitable theory for: (i) any special, incidental or consequential damages; (ii) the cost of procurement for substitute products or services; (iii) for interruption of use or loss or corruption of data; or (iv) for any amounts that exceed the fees paid by you to Mach 30 under this agreement during the twelve (12) month period prior to the cause of action. Mach 30 shall have no liability for any failure or delay due to matters beyond their reasonable control. The foregoing shall not apply to the extent prohibited by applicable law.
General Representation and Warranty. You represent and warrant that (i) your use of the Website will be in strict accordance with the Mach 30 Privacy Policy, with this Agreement and with all applicable laws and regulations (including without limitation any local laws or regulations in your country, state, city, or other governmental area, regarding online conduct and acceptable content, and including all applicable laws regarding the transmission of technical data exported from the United States or the country in which you reside) and (ii) your use of the Website will not infringe or misappropriate the intellectual property rights of any third party.
Indemnification. You agree to indemnify and hold harmless Mach 30, its contractors, and its licensors, and their respective directors, officers, employees and agents from and against any and all claims and expenses, including attorneys’ fees, arising out of your use of the Website, including but not limited to your violation of this Agreement.
Miscellaneous. This Agreement constitutes the entire agreement between Mach 30 and you concerning the subject matter hereof, and they may only be modified by a written amendment signed by an authorized executive of Mach 30, or by the posting by Mach 30 of a revised version. Except to the extent applicable law, if any, provides otherwise, this Agreement, any access to or use of the Website will be governed by the laws of the state of Ohio, U.S.A., excluding its conflict of law provisions, and the proper venue for any disputes arising out of or relating to any of the same will be the state and federal courts located in Montgomery County, Ohio. Except for claims for injunctive or equitable relief or claims regarding intellectual property rights (which may be brought in any competent court without the posting of a bond), any dispute arising under this Agreement shall be finally settled in accordance with the Comprehensive Arbitration Rules of the Judicial Arbitration and Mediation Service, Inc. (“JAMS”) by three arbitrators appointed in accordance with such Rules. The arbitration shall take place in Dayton, Ohio, in the English language and the arbitral decision may be enforced in any court. The prevailing party in any action or proceeding to enforce this Agreement shall be entitled to costs and attorneys’ fees. If any part of this Agreement is held invalid or unenforceable, that part will be construed to reflect the parties’ original intent, and the remaining portions will remain in full force and effect. A waiver by either party of any term or condition of this Agreement or any breach thereof, in any one instance, will not waive such term or condition or any subsequent breach thereof. You may assign your rights under this Agreement to any party that consents to, and agrees to be bound by, its terms and conditions; Mach 30 may assign its rights under this Agreement without condition. This Agreement will be binding upon and will inure to the benefit of the parties, their successors and permitted assigns.
Using these Terms of Service for Your Own Purposes. The Open Design Engine Terms of Service are licensed under a Creative Commons Attribution-ShareAlike 3.0 License. These Terms of Service are based upon the WordPress.com Terms of Service and the Creative Commons Terms of Use. You are free to use and adapt these Terms of Use for your own purposes. However, please keep in mind that these terms, as written, may not be completely suitable for your situation. Mach 30 strongly encourages you to seek the advice of your own attorney or counsel before using these Terms of Service.
Your privacy is critically important to us. At Mach 30 we have a few fundamental principles:
We don’t ask you for personal information unless we truly need it. (We can’t stand services that ask you for things like your gender or income level for no apparent reason.)
We don’t share your personal information with anyone except to comply with the law, develop our products, or protect our rights.
We don’t store personal information on our servers unless required for the on-going operation of one of our services.
Mach 30 (“Mach 30”) operates the website opendesignengine.net. It is Mach 30’s policy to respect your privacy regarding any information we may collect while operating our website.
Website Visitors Like most website operators, Mach 30 collects non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request. Mach 30’s purpose in collecting non-personally identifying information is to better understand how Mach 30’s visitors use its website. From time to time, Mach 30 may release non-personally-identifying information in the aggregate, e.g., by publishing a report on trends in the usage of its website.
Mach 30 also collects potentially personally-identifying information like Internet Protocol (IP) addresses for logged in users of OpenDesignEngine.net. Mach 30 only discloses logged in user IP addresses under the same circumstances that it uses and discloses personally-identifying information as described below.
Gathering of Personally-Identifying Information Certain visitors to Mach 30’s websites choose to interact with Mach 30 in ways that require Mach 30 to gather personally-identifying information. The amount and type of information that Mach 30 gathers depends on the nature of the interaction. For example, we ask visitors who sign up for a project at OpenDesignEngine.net to provide a username and email address. Mach 30 does not disclose personally-identifying information other than as described below. And visitors can always refuse to supply personally-identifying information, with the caveat that it may prevent them from engaging in certain website-related activities.
Aggregated Statistics Mach 30 may collect statistics about the behavior of visitors to its websites. For instance, Mach 30 may monitor the most popular projects on the OpenDesignEngine.net site. Mach 30 may display this information publicly or provide it to others. However, Mach 30 does not disclose personally-identifying information other than as described below.
Protection of Certain Personally-Identifying Information Mach 30 discloses potentially personally-identifying and personally-identifying information only to those of its employees, contractors and affiliated organizations that (i) need to know that information in order to process it on Mach 30’s behalf or to provide services available at Mach 30’s websites, and (ii) that have agreed not to disclose it to others. Some of those employees, contractors and affiliated organizations may be located outside of your home country; by using Mach 30’s websites, you consent to the transfer of such information to them. Mach 30 will not rent or sell potentially personally-identifying and personally-identifying information to anyone. Other than to its employees, contractors and affiliated organizations, as described above, Mach 30 discloses potentially personally-identifying and personally-identifying information only in response to a subpoena, court order or other governmental request, or when Mach 30 believes in good faith that disclosure is reasonably necessary to protect the property or rights of Mach 30, third parties or the public at large. If you are a registered user of a Mach 30 website and have supplied your email address, Mach 30 may occasionally send you an email to tell you about new features, solicit your feedback, or just keep you up to date with what’s going on with Mach 30 and our projects. We primarily use our various project blogs to communicate this type of information, so we expect to keep this type of email to a minimum. If you send us a request (for example via a support email or via one of our feedback mechanisms), we reserve the right to publish it in order to help us clarify or respond to your request or to help us support other users. Mach 30 takes all measures reasonably necessary to protect against the unauthorized access, use, alteration or destruction of potentially personally-identifying and personally-identifying information.
Cookies A cookie is a string of information that a website stores on a visitor’s computer, and that the visitor’s browser provides to the website each time the visitor returns. Mach 30 uses cookies to help Mach 30 identify and track visitors, their usage of Mach 30 websites, and their website access preferences. Mach 30 visitors who do not wish to have cookies placed on their computers should set their browsers to refuse cookies before using Mach 30’s websites, with the drawback that certain features of Mach 30’s websites may not function properly without the aid of cookies.
Business Transfers If Mach 30, or substantially all of its assets were acquired, or in the unlikely event that Mach 30 goes out of business or enters bankruptcy, user information would be one of the assets that is transferred or acquired by a third party. You acknowledge that such transfers may occur, and that any acquirer of Mach 30 may continue to use your personal information as set forth in this policy.
Ads Ads appearing on any of our websites may be delivered to users by advertising partners, who may set cookies. These cookies allow the ad server to recognize your computer each time they send you an online advertisement to compile information about you or others who use your computer. This information allows ad networks to, among other things, deliver targeted advertisements that they believe will be of most interest to you. This Privacy Policy covers the use of cookies by Mach 30 and does not cover the use of cookies by any advertisers.
Privacy Policy Changes Although most changes are likely to be minor, Mach 30 may change its Privacy Policy from time to time, and in Mach 30’s sole discretion. Mach 30 encourages visitors to frequently check this page for any changes to its Privacy Policy. Your continued use of this site after any change in this Privacy Policy will constitute your acceptance of such change.
The following are the key decisions to made during the conceptual design of ODE, and the values that had to be balanced to make them.
Should we extend an existing system, or develop something from scratch - Extending an existing system may mean getting something useful much sooner, but it means accepting many decisions that are already made (language, license, architecture, etc). Values to balance include: 1, 2, 4, 5, 6, 7. Result: Extend Redmine
Development Roadmap - Emphasis should currently be on selecting feature sets for early versions that get the system off the ground and let users start seeing benefits sooner rather than later. Values to balance include: 1, 2, 3, 4. Result: Early releases favor existing plugins and function over form
License - The license of a project can evoke a strong reaction from the community, so the choice of license should be made to support the shared values of sharing source code of both CSTART and Mach 30. If ODE is based on an existing system, this decision will be made by default. Values to balance include: 7 (and likely one or more uncaptured values). Result: Per license requirements of Redmine, ODE is licensed under the GNU General Public License v2 (GPL)
Programming language - Language choice affects developer availability, barrier to hosting, and more. If ODE is based on an existing system, this decision will be made by default. Values to balance include: 6, 7. Result: Ruby on Rails, in no small part due to its use in Redmine
The code repository for hosting the ODE source code - ... Result: ODE is hosted on http://opendesignengine.net and is stored in SVN due to its high level of built in support in Redmine
First class sub-projects: Projects in ODE may be organized into sub-projects which have all of the features and customization of top-level projects. Use sub-projects to organize your development team along functional lines (software, electronics, mechanical design, etc) so individual teams can internally communicate while still being visible to the entire project.
Full set of per-project features: Projects (and sub-projects) have all the key features you expect in a project management tool
Issue tracking: Track bugs, support issues, etc using the built in issue tracker
Time tracking: Add time spent to issues and then use the Activity tab to report on the time spent
News: Update your community using a blog-like news feed
Files: Distribute release builds of your documentation and software
Repositories: Store source code and other version controlled files in SVN (Git coming soon)
DMSF: Document management system for project files beyond source code, includes versioning and drag-and-drop interface
Forums: Hold public discussions on your project on topics such as design and support
Roadmap: Publish version based release schedule with list of version related issues
Calendar: View due dates for issues and releases on a monthly calendar
Gantt Chart: View issues based in a Gantt chart based on release schedule from the Roadmap
Consistent Wiki-like syntax:ODE uses its Wiki syntax throughout the site, meaning you can markup issue descriptions, project descriptions, and any other text field in ODE using the same syntax as in ODE Wikis. ODE also includes some additional markups in its Wiki syntax
Open Design Engine (ODE) is based on Redmine. The official installation method is to install the Bitnami Redmine Stack, apply some custom configuration to the stack, and then upgrade the installed Redmine instance to the ODE source code. Support for other stacks (or bootstrapped installations) will come with future releases. With luck, one or more of the stack providers will add ODE to their list of supported stacks.
If you're looking to upgrade from a previous version of ODE, see Upgrading ODE
Note, these instructions assume you are running the Ubuntu VM image of the Bitnami Redmine Stack and are running all commands undersudo. They were tested with version 1.1.3 in VMWare Player.
Useful Paths
(bitnami_base) = /opt/bitnami in VM images
Steps to install ODE
Import the Bitnami Redmine Stack into VMWare (the free VMWare Player is supported)
Edit (bitnami_base)/apache2/conf/httpd.conf and comment out the line:
DocumentRoot "/opt/bitnami/apache2/htdocs"
Edit (bitnami_base)/apps/redmine/conf/redmine.conf to match the following (the key areas are the addition of the virtual host section and changing all references of /redmine to /):
<VirtualHost *:80>
ServerAdmin haha.huhu.com
ServerName server.our.lan
ServerAlias server
ErrorLog "logs/error.log"
CustomLog "logs/access.log" combined
# this not only blocks access to .svn directories, but makes it
# appear as though they aren't even there, not just that they are
# forbidden
<DirectoryMatch "^/.*/\.svn/">
ErrorDocument 403 /404.html
Order allow,deny
Deny from all
Satisfy All
</DirectoryMatch>
# This passes through remote_user to mongrel
RewriteEngine On
# Redirect non-static requests to cluster
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://redminecluster%{REQUEST_URI} [P,QSA,L]
</VirtualHost>
#ProxyPass / balancer://redminecluster
#ProxyPassReverse / balancer://redminecluster
<Proxy balancer://redminecluster>
BalancerMember http://127.0.0.1:3001
BalancerMember http://127.0.0.1:3002
# The number of balancer members depends on the number of mongrels running
# We use only one mongrel on port 3001 by default for the BitNami Cloud Hosting
# Please remove the others like 3002 above in such a case.
</Proxy>
Edit (bitnami_base)/apps/redmine/config/mongrel_cluster.yml and change references to prefix: /redmine to prefix:
Create the directory structure for the svn repositories (Note, ODE is setup to store all project related content in the (bitnami_base) directory, so it uses a non-traditional location to store the svn repositories.)
cd (bitnami_base)
mkdir repos
chown root:daemon repos
chmod 0755 repos
cd repos
mkdir svn
chown daemon:daemon svn
chmod 0750 svn
Document the following production values in (bitnami_base)/apps/redmine/config/database.yml:
username
password
socket
database
host
Edit (bitnami_base)/apps/redmine/conf/redmine.conf to configure apache to host the svn repositories
Add the following line between RewriteEngine On and the first RewriteCond to prevent calls to svn from being forwarded to Redmine:
RewriteCond %{REQUEST_URI} !/svn(/|$)
Add the following line above the first ProxyPass directive:
ProxyPass /svn !
Add the following directives to the end of redmine.conf to enable svn over http (note the various fields that need to be updated with values for your installation, including the values you noted earlier from database.yml):
# /svn location for users
PerlLoadModule Apache::Redmine
<Location /svn>
DAV svn
SVNParentPath "(bitnami_base)/repos/svn"
Order deny,allow
Deny from all
Satisfy any
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
AuthType Basic
AuthName "Redmine SVN Repository"
#read-only access
<Limit GET PROPFIND OPTIONS REPORT>
Require valid-user
Allow from localhost
# Allow from another-ip
Satisfy any
</Limit>
# write access
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
## for mysql
RedmineDSN "DBI:mysql:database=(database);host=(host);mysql_socket=(socket)"
RedmineDbUser "(username)"
RedmineDbPass "(password)"
</Location>
Create a new Redmine project, making sure to select the Repository module, then wait for 2 minutes to give the cron job a chance to create the svn repository
Refresh the project page, and then browse to the new project's Repository tab. You should see an empty repository display without any error messages
Confirm you can browse the new repository using svn by running the following command. It should return without errors.
svn ls http://(server_public_fqdn)/svn/(project_name)
Confirm you can add content to the svn repository through svn.
Add a user to the newly created project in Redmine (go to the Settings tab and then the Members sub-tab to add a user)
Run the following command (note, you will be prompted for the Redmine user's password during this step):
This page is listed for archival purposes only. Please add ideas for features as New Issues.
Core Features (merging of major features/ideas from Mach 30 meetings and posts on CSTART forums)
Host Projects and sub-projects (sub-projects should be first class entities with their own members, documentation, etc but parent projects should have views that merge sub-project data with parent data when desired)
Projects include storage for:
Documents such as Bill of Materials, instructions, reports, etc (probably stored in wiki-like system that includes multiple formatting filters to give content creators control over level of complexity of input vs necessary control)
Revision Control System to store source code for embedded systems or stand alone software projects (should be accessible directly through RCS interfaces and through web pages)
File storage for part models and final part drawings (still version controlled, but maybe not in the same space as the source code)
Users should be able to configure features used in the project
Project "home page" should be wiki-like as well to let project owners "sell" their projects, including posting rich media (videos, pics, etc); More like OpenRocket's home page than its sourceforge page - think public face of the project
Projects should also have dashboard page so members can keep up with progress (possible example) - think members' homepage for the project
Projects need workspace/forums to discuss design and development issues (especially for hardware) that includes linking files to comments and the main post to store the evolution of a design decision
Need Issue tracking, and it would be very good if it included way to directly request (and advertise) help with specific tasks/sub-tasks of the project
Site level homepage should highlight best hosted projects (like wikipedia does with featured articles?)
Projects should have a news feed (blog?)
donation drive module
Newer ideas for features that need even more discussion to fully define
One possible engineering workflow (project features should support following all or part of the workflow as needed by the projects):
get/make requirements (to understand what you are going to build)
setup 1 or more teams/sub-projects (small scale still just 5-10 people all one team, big scale several sub-project teams)
create tasks that link to derived requirements to establish traceability, in multi-team scenarios, tasks should be associated with the appropriate teams/sub-projects; in single team scenario, all tasks should get associated to the main team/project when there are multiple teams, usually need a PCT (team of teams)
loop through below, each iteration move into more detail (lofi analysis, hifi analysis, cad parts, prototype, build, fly)
do work (each iteration = more detail: lo-fi analysis, hi-fi analysis, produce cad parts, prototype, build, fly/test) <–if we're generalizing
Project assistance Bounty System – mash up of craigslist, sourceforge, rent-a-coder, and a solution archive. The ideas is to have a website where "customers" can post discrete analysis, report writing, peer review, hardware build, component design requests, etc. – see http://mach30.org/blogs/jrs/2009-10-22-ispcs-2009-day-1-mission-and-methods for details. This is an attempt to discretize hardware development like wiki has discretized encyclopedia writing, enabling users to hop into a project to answer a specific need.
Have a fans page so supporters can show their interest
Auto-share buttons for social network sites from project pages (to share on reddit, twitter, etc)
Bug/Issue tracking (duh) – should be tied to the bounty system if used?; taggable, with tags auto added for type of issue and project hierarchy (this project + parent project tags)
A BOM tree to visualize the structure. Also, a method to see where a part is used in other assemblies.
Workflow system should be extensible and allow users to share there workflows with other projects (this way we are not expected to deliver the end-all-be-all workflow, and instead, the community can discover what workflows work best in the tool); system should ship with some basic workflow(s) in this case so it has something even at release
Engineering file management features - Source code control for embedded systems or computer based controls, etc should be stored in one of the available Version Control Systems (VCS) such as SVN, bzr, git, etc. But engineering documents offer challenges that VCS do not handle well (very large, on order of GB files, primarily binary files). Here are some specific requirements for engineering documents. (Should investigate Enterprise CMS like Alfresco for underlying capabilities, as many of the features below are available in this class of tools.)
Easily manage very large files (on order of GB)
Easily handle binary files
Find a way to keep binary files (like drawings) from entering conflicted states (one option, per rpulkrabek's comment on the forums is to allow users to mark files as in use or checked out to indicate that other users should not work on those files)
A method to inform others, and possibly restrict others, that a certain item is currently being worked on, to avoid different design changes happening at the same time.
A history or RSS feed of the most recently modified items.
Document number generation. Possibly a running number to uniquely identify each document or part and possibly associate this number to the document. If this method is used, it's suggested that the number is also associated to a more readable description ex: ID=12345678rev01; Description=OHKLA COMBUSTION CHAMBER. Another thing to consider is variants and the numbers for that.
Thumbnails next to each item to quickly view what each file is (useful for CAD models).
A page/site to see all available attributes, such as, ID, Description, Creater, Modifier, creation date, modified date, etc.
Configure file storage so all files in the project (including attachments to issues/forum posts, source code VCS files, and files specifically loaded into the engineering file management system) are stored in the engineering file management system. Attachments should include link back to page where they are attached in the meta-data for the file. The idea is that all of the files wind up in a central location for easy search/backup, but are still available on the page where the context about them is located.
Add real-time wiki editing (like Etherpad or google docs). See list of existing tools
Add web based IRC client with server for hosted projects and have IRC sessions auto-logged to the project space
The following test plan should be performed on any release candidate prior to scheduling an upgrade of the ODE server. It should again be performed on the live site once the upgrade is in place to ensure the upgrade was successful.
ODE features come in three categories. First is features which are built-in to Redmine core. Second is features from community developed plugins such as DMSF. And the third is features which were added using custom plugins from ODE development.
Creation (test with several new projects, each with different features turned on and ensure the correct tabs are visible and appear to be functional)
Create a subproject with New subproject" button on *Overview tab
Attach a project as a subproject of another project from the Settings tab
Wiki
Creating wiki pages
Editing wiki pages
Reverting changes
Adding and referencing attachments on wiki pages
Viewing wiki pages
Issues
Creating issues
Updating issues
Assigning issues
Closing issues
News
Posting News items
Viewing News items from project Overview tab and from ODE homepage (all projects should feed here, so post news items from multiple projects and make sure they show up on home page and only on correct project page)
Forums
Creating forums
Creating forum posts
Replying to forum posts
Viewing forum threads
Repository
TBD (create, list, update, etc)
Users
User creation
User locking (make sure we can disable a user account)
Repeat tests with a user who does not have sufficient privileges to commit and ensure read works and write fails (TODO - J needs to confirm the required membership)
Visit Features and ensure the following examples render
Pledgie
Kickstarter
Paypal
Redmine Video (extends a community plugin)
Visit Features and ensure the following examples render
Youtube
Vimeo
Redmine Legal
Create a new user account and ensure you must agree to the terms of service to complete account creation
Update the terms of service (there is a settings section under Admin to do this) and then login with an existing account and ensure you must agree to the updated terms of service to continue logging in
Ensure the Terms of Service link in the footer works
Ensure the Terms of Service page renders correctly for both the static display (when you click the link in the footer) and during account creation/login on updates
Redmine Licensing
Add new license to license list in Admin section and ensure it shows up on project Settings tab
Update a license in the license list in the Admin section
Ensure new projects must select at least one license
Ensure a project's selected licenses render on the Overview tab
Allow Private Projects
Ensure the option to create a private project is not visible for new and existing users
Assign private projects allowed privilege (under the users list in Admin) to a user and ensure that user can create a private project
In general, there are 3 steps to upgrading to a new version of ODE.
Back up the database
Back up the folder ODE resides in
Check your version of your web stack, and upgrade if necessary / desired. You may be required to upgrade due to a need for a newer version of one of the dependencies, such as Ruby or Rails. Instructions for upgrading Bitnami are found here
Download the latest copy of ODE, and place it in the desired location. This should be in another location than the existing installation to avoid issues caused by files that should no longer exist.
Copy over configuration files config/database.yml and config/configuration.yml into the new location's config directory.
Copy over the files directory from the old copy to the new location.
Execute migration scripts. The details of this step may vary, but usually at least will include
The following documentation is for the upgrade of the first release of ODE to a more modern version of Redmine. At the time the work was undertaken, the latest version of Redmine was 2.2, therefor these upgrade notes are focused on upgrading from the 1.x series of Redmine to 2.2. Many of these steps are similar to other upgrades, but since this is a major version upgrade, there will be additional items. The RedmineUpgrade article on the Redmine wiki goes through most of these steps, and is a good reference. Any occurrences of <ODE_ROOT> refer to the root directory of where the ODE codebase is located.
Back up the database, running something like this:
Perform stack upgrades. It is unlikely that this will not be required, due to version changes in Ruby and Rails. See #3 from the General Upgrade Notes.
Download the latest copy of ODE into a new folder.
Copy over configuration files config/database.yml and config/configuration.yml into the new location's config directory. If there are any changes from the default that were made to other files, such as config/settings.yml, these will have to be done by hand in the new config/settings.yml.
Copy the files folder from the old <ODE_ROOT> to the new <ODE_ROOT>, or create a symlink.
Execute the migration scripts. Since this is from the 1 to 2 series of Redmine, there's some extra steps that wouldn't need to be observed during other upgrades. The last two commands also clear the cache, as a just-in-case measure.
It seems sometimes the part of the database migration scripts for DMSF do not always run. Executing this script solves this issue.
You may see some error messages. While there are none that have been encountered thus far, the Redmine wiki on upgrading states some common ones, so check there first.
Those features that can be implemented with existing, stable plugins will form the feature set for the Private Alpha Release (see the following blog post for a possible list of these plugins). Once these features can be packaged for release and installed on the live ODE site, visitors will be allowed to create accounts.
While all visitors may create accounts during this phase, project creation will be limited to system admins and invited users who will be added to the Testers role. This role will continue to be used to deploy new features to trusted community members for testing before deployment to the larger ODE community.
This is an interim release to capture issues which were preventing v0.2 - Public Beta from launching. These issues are centered around adding version control systems and refining plugins developed for v0.2 - Public Beta.
This will be the first release to include significant new code from Mach 30 and ODE volunteers. The code will primarily come in the form of new plugins or contributions to existing plugins that did not make it into the Private Alpha and are deemed necessary for core functionality. New plugins will include an OSHW licensing plugin so hosted can be required to select an OSHW license for hardware projects or an OSI license for software projects (similar to http://sourceforge.net), and work on presentation. The exact set of features to be implemented is still being determined.
At the release of the Public Beta, all users will be allowed to create their own projects.
The goal of v0.3 is to grow ODE from its current beta state to a vibrant and self-sustaining open source hardware community. To accomplish this goal, we will focus development efforts on obtaining IT support for features such as integrated git support, updating the visual aspects of the site to enhance the usability of the site, growing the user base through advertising and messaging, and developing multiple income streams to sustainably fund ODE.
This version will focus on adding features to the ODE wiki system. New features will include a templating engine that will support sharing templates with the ODE community, new formatting options, and better export support.
Welcome to the Open Design Engine (ODE) project Wiki. This wiki contains documentation covering development, installation, and use (on your own server or at http://opendesignengine.net) of the Open Design Engine software. If you are interested in starting a hosted project, click here. ODE started as a proposed joint project between Mach 30 and CSTART. We hope it will grow to serve a wider audience and be used to host Open Source Hardware (and Software) projects of all kinds.
We like to think of Open Design Engine as the Source Forge for hardware. And while sites like Source Forge and LaunchPad are focusing on features to support software projects (such as demo web and database servers for web site projects), Open Design Engine is focused on the needs of hardware projects. Open Design Engine is built on Redmine (licensed under the GNU General Public License v2), and has support for common features such as source code repositories, wikis, forums, and issue tracking. ODE also has full sub-projects so teams can breakout their work along functional lines (such as software, electronics, and mechanical engineering) all under the heading of the main project. And Open Design Engine has a desktop like file management system for storing non-source files in a way that is more familiar to developers who come from disciplines beyond software development.
ODE is being distributed similar to Wordpress. That is, there will be a version available for download that users can install on their own servers (like http://wordpress.org) and a hosted version where users can register accounts and host projects (like http://wordpress.com).
The following values are intended to shape the development of ODE. Ideally decisions will represent a balancing of multiple values. Note, these values were derived by reflecting on the views (or positions) presented during the early discussions about ODE at Mach 30 and CSTART. See the Mach 30 consensus process for more info on values and positions. Note, these values are listed in no particular order, the numbering is simply for easy reference.
We need something that works better than what we have now - CSTART has the wiki+forums+polls+version control system?, Mach 30 has its forums+phone bridge
Getting something sooner would be better than later - there is a sense that current projects will gain momentum from having the right tool for engineering management, which would be a "very good thing"
It would be better if we can share the work and the rewards of developing this system - this includes both between CSTART and Mach 30 and with the larger open design/hardware community
Release early, release often - this has been the mantra of other successful open source projects, and is in support of having something "sooner rather than later"
The defining feature(s) include the ability to manage engineering decisions - we need to focus on those features that hardware projects need that platforms for open source software development do not provide
The language used for the software must be one that is familiar to developers in our communities - you can't write in a language you don't know
The choice of programming language (and other elements of the software stack) impacts the ability of users to self-host, and all other things being equal, the barrier to self-hosting should be as low as possible - this value strongly supports choosing tools that are widely available if at all possible (such as the LAMP stack)
Proposed but not discussed - Site security and information assurance should be a high priority - organizations in the US will need their hosted versions of the tool to be secure enough to meet ITAR and other export control restrictions
See the links on the right hand side for more details on project development, installation, and use.
To create a wiki Navigation bar, edit the wiki page named Sidebar. Then use one of the following templates to quickly setup your design process in the Navigation Bar.