3 Rules | Tiki Wiki CMS Groupware :: Development
Loading...
Navigation and related functionality and content
Related content
Upcoming event:
21 May 26
Tiki Roundtable Meeting - May
Save to my calendar
View the event
(Cached)
Please wait
The PDF is being prepared....
Translations
English (en)
Português Brasileiro (pt-br)
13
Backlinks
Development
DevMenu
Where to commit
AdminUIRevamp
DevTips
Get Started
Bare Tiki
GSOC 2010 Application Form
GSOC 2009 Application Form
Google Summer of Code 2008 GSOC
Google Summer of Code 2010 GSOC
Google Summer of Code 2013 GSOC
Moving a node in structure to another structure does not change structure ID...
Structures
Developer Documentation
Page actions
Refresh
3 Rules
The 3 rules
Used by the project admins in the "Recruitment Ceremony". A one line set of maxims on how members of the Tiki Community collaborate.
I wish to follow the 3 rules, and also to convince anyone in Tiki community to respect those simple rules:
In brief
Respect the Environment
Tiki is both a software project and a community. The mix of both, contextualized on the Internet and in real life, is called The Environment. Any change in Tiki should take into account its effect on the entire Tiki community and should allow for a balanced evolution with respect for the people and organizations that use it. Please make sure any code you commit
respects the LGPL license
and that you are allowed to share it. Do not duplicate code or features, as this just creates more work for everyone to maintain. Reuse and extend code instead, and ask for help if you are unsure how, or unsure if there is similar code lying around.
Commit early, Commit often
Git
is the central point in Tiki's collaborative development. Contributions should be frequent, even in the early stages, to offer an opportunity for interaction between contributors. Early merge requests in draft provide more opportunities for feedback and for the community to start to assimilate the ideas you propose.
"Upstream first" is the cheapest, most sustainable way to innovate on an open source platform
Make it Optional
Tiki is used in many smaller contexts and its modularity is key to adoption in those areas. Help preserve this flexibility by making your changes optional whenever possible, accessible for tuning to the admin at least, via admin panels. This is also good for security as if a security vulnerability is discovered, a feature can be deactivated.
Verbose mode
Think about other users
Tiki is both a piece of software and a community of people. This combination means that we invite you, as a member of the community, to think not only about the code but also about the wide variety of people who use Tiki every day. Consider your proposed changes in this context. We believe that a careful, thoughtful, and highly collaborative approach is a way to maintain respect for both the code and the people who depend on it. Rather than seeing Tiki as a game, we invite you to see Tiki as a manner of producing change. Recognize that your code could affect the lives of people.
Share Early, Share Often
If you have an idea for an improvement, new feature, performance enhancement, or anything else of that nature, be quick to share it. Be proud of your idea and get it out there on the e-mail list or chat channel. Be open to questions and ideas that others may have. As you work out your ideas and implementations, share your progress and approach often. Ask for advice and feedback. There are many smart and dedicated people in the Tiki Community who love to help. Documenting what you are doing on Tiki.org keeps others up to date with changes. You are encouraged to create a wiki page for your idea so others can comment. Create a showcase site to show off your work in progress. Make a draft merge request to show the community you are going in a certain direction. Yes, it may be incomplete, nevertheless, by following the maxim of Release Early, Release Often others are more able to help with development and debugging.
One BIG caution
: Don't commit or accept merge requests for sweeping or wide-reaching changes until there is community consensus or at least approval from one or more of the project administrators. They are those who have that designation in the list of developers. Checking with others is the right way to develop code and helps us to avoid screwing up other people's lives and projects. When in doubt, communicate! This could be in the chat, by email, or by some other agreed upon method. For sweeping changes, it's encouraged to use an
Experimental Branch
, which can be merged to trunk later.
A caution about the BIG caution
: I feel it is impossible to reach a consensus without effective code. Asking before is a matter of gathering information, not getting prior acceptance of something. Good decisions can provide bad implementations and in such cases, there is difficulty in correcting what was mutually agreed upon beforehand (without really knowing). Of course, that only applies to experienced coders
who are supposed to know what they are doing
. People who learn to code need to be particularly cautious. You decide whether this is for authoritative reasons or as a means of obtaining wisdom (if available). That's my 2 cents. — mose
Make It Optional
Tiki is used in the real world by many people for many different uses. Try to avoid forcing new features on everyone. Allow new features to be tuned and configured by the site admin, and, if at all possible, allow it to be turned off. At the very least, make sure that the default config doesn't change Tiki's behavior.
More good things to do
Register to the
code & Developers mailing list
. We need to have a way to join you if you have some comments to do on your commits.
Hang out on
Read
Hello World
Follow
DevTips
Alias
3Rules
Ceremony
Things to discuss
"default config doesn't change Tiki's behavior." -> "default config is the most common/expected" (This is subjective of course, which is why we have
).
Clarify expectation about backward compatibility (How and when to break things)
History
Source
Comments
Related content
Future version
More content and functionality (right side)
Keywords
The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to
documentation keywords
Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to
your profile
. You can also try out the
Dynamic filter
(WAI & 508)
Accounting
Administration
Ajax
Articles
& Submissions
Backlinks
Banner
Batch
BigBlueButton
audio/video/chat/screensharing
Blog
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts
Address book
Content template
Contribution
Credits
Custom Home
(and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Diagram
Directory
(of hyperlinks)
Documentation
link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw
-superseded by
Diagram
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds
(RSS)
File Gallery
Forum
Friendship Network
(Community)
Gantt
Group
Groupmail
Help
History
Hotword
HTML Page
i18n
(Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura
video management
Kanban
Karma
Live Support
Logs
(system & action)
Lost edit protection
Mail-in
Map
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Notepad
OS independence
(Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups
(Self-managed Teams)
Packages
Payment
PDF
Performance
Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization
(SEO)
Security
Semantic
links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection
(Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter
(Codemirror)
Tablesorter
Tags
Task
Tell a Friend
Terms and Conditions
Theme
TikiTests
Federated Timesheets
Token Access
Toolbar
(Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail
and
Groupmail
WebServices
Wiki
History, page rename, etc
Wiki plugins
extends basic syntax
Wiki syntax
text area, parser, etc
Wiki structure
(book and table of content)
Workspace
and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP
Last Changed Items
User Information popover is missing the user avatar (regression)
Possible to see admin "Advanced" options when the parent "Experimental" feature is not visible
Module order changes can't be saved
CAS Authentication
Error in upgrade script (function upgrade_20120429_fix_collation_tiki)
Last Changed Pages
Tiki30
Make a wish - reproduce your bug
makeawish-reproduce_tpl
Endangered features
Strings Format Convention
...more
Useful Tools
PhpStorm
by
JetBrains
Show PHP error messages
NOTICE (E_USER_NOTICE):
Undefined array key "module_last_modif_tracker_comments"
At line 537 in lib/modules/modlib.php
ERROR (E_WARNING):
Trying to access array offset on null
At line 27 in vendor_bundled/vendor/smarty/smarty/src/Template/Compiled.php(162) : eval()'d code
US