CuteFlow-V4 Documentation

Similar documents
git-pr Release dev2+ng5b0396a

Sensor-fusion Demo Documentation

PyCon APAC 2014 Documentation

XStatic Documentation

dublincore Documentation

invenio-formatter Documentation

utidylib Documentation Release 0.4

inflection Documentation

How to contribute to Symfony for Symfony 2.0

How to contribute to Symfony for Symfony 2.1

Elegans Documentation

sensor-documentation Documentation

Dependency Injection Container Documentation

agate-sql Documentation

Git. Charles J. Geyer School of Statistics University of Minnesota. Stat 8054 Lecture Notes

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

FPLLL. Contributing. Martin R. Albrecht 2017/07/06

clipbit Release 0.1 David Fraser

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

josync Documentation Release 1.0 Joel Goop and Jonas Einarsson

Github/Git Primer. Tyler Hague

Tailor Documentation. Release 0.1. Derek Stegelman, Garrett Pennington, and Jon Faustman

Accessing OSIRIS and using OSIRIS through GitHub

Tutorial 2 GitHub Tutorial

Git tutorial. Katie Osterried C2SM. October 22, 2015

FAQ Q: Where/in which branch do I create new code/modify existing code? A: Q: How do I commit new changes? A:

Effective Programming Practices for Economists. 7. Version Control, Part II: Git with a Shared Repository

Feed Cache for Umbraco Version 2.0

Git. Presenter: Haotao (Eric) Lai Contact:

retask Documentation Release 1.0 Kushal Das

PHP-FIG Home Blog PSRs Personnel Bylaws FAQs Get Involved PSR-2: Coding Style Guide

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

Rubix Documentation. Release Qubole

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

Python Schema Generator Documentation

mp3fm Documentation Release Akshit Agarwal

User s Guide for macos with Stata and R

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Submitting your Work using GIT

MCAFEE THREAT INTELLIGENCE EXCHANGE RESILIENT THREAT SERVICE INTEGRATION GUIDE V1.0

CS 390 Software Engineering Lecture 5 More Git

Open Source Used In Cisco Configuration Professional for Catalyst 1.0

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Additional License Authorizations for HPE OneView for Microsoft Azure Log Analytics

pydocstyle Documentation

deepatari Documentation

git-flow Documentation

Git(Lab) Tutorial and Hands-On

PHP-FCM Documentation

Outline The three W s Overview of gits structure Using git Final stuff. Git. A fast distributed revision control system

contribution-guide.org Release

X Generic Event Extension. Peter Hutterer

Git. SSE2034: System Software Experiment 3, Fall 2018, Jinkyu Jeong

Java Relying Party API v1.0 Programmer s Guide

Git. A fast distributed revision control system. Nils Moschüring PhD Student (LMU)

Assumptions. GIT Commands. OS Commands

jumpssh Documentation

puppet-diamond Documentation

XEP-0099: IQ Query Action Protocol

BME280 Documentation. Release Richard Hull

A BASIC UNDERSTANDING OF VERSION CONTROL

cwmon-mysql Release 0.5.0

twstock Documentation

Testworks User Guide. Release 1.0. Dylan Hackers

Versioning with git. Moritz August Git/Bash/Python-Course for MPE. Moritz August Versioning with Git

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

IC Documentation. Release 0.1. IC team

aiounittest Documentation

Spotter Documentation Version 0.5, Released 4/12/2010

disspcap Documentation

Python Project Example Documentation

Git. CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015

google-search Documentation

Using GitHub and SourceTree to work with DITA TC repositories

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

Daedalus Documentation

TWO-FACTOR AUTHENTICATION Version 1.1.0

MOOSE-Based Application Development on GitLab

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

CS314 Software Engineering Configuration Management

Advanced Operating Systems Control Versioning with GIT. Giuseppe Massari

Instagram PHP Documentation

django-generic-filters Documentation

Asthma Eliminator MicroMedic Competition Entry

MPAS Developers Guide. MPAS Development Team

Aldryn Installer Documentation

Software Development I

Colgate, WI

Git Tutorial. André Sailer. ILD Technical Meeting April 24, 2017 CERN-EP-LCD. ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36

Git, the magical version control

XEP-0087: Stream Initiation

Roman Numeral Converter Documentation

abstar Documentation Release Bryan Briney

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

CA File Master Plus. Release Notes. Version

Tips on how to set up a GitHub account:

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Tenable Hardware Appliance Upgrade Guide

Transcription:

CuteFlow-V4 Documentation Release 4.0.0 Timo Haberkern Nov 15, 2017

Contents 1 Contributing 3 1.1 Contributing Code............................................ 3 1.2 Contributing Documentation....................................... 8 2 Indices and tables 11 i

ii

Contents: Contents 1

2 Contents

CHAPTER 1 Contributing 1.1 Contributing Code 1.1.1 Reporting a Bug Whenever you find a bug in CuteFlow, we kindly ask you to report it. It helps us make a better CuteFlow. Caution: If you think you ve found a security issue, please use the special procedure instead. Before submitting a bug: Double-check the official documentation to see if you re not misusing the CuteFlow; Ask for assistance on the users mailing-list if you re not sure if your issue is really a bug. If your problem definitely looks like a bug, report it using the official bug tracker and follow some basic rules: Use the title field to clearly describe the issue; Describe the steps needed to reproduce the bug; Give as much details as possible about your environment (OS, PHP version); (optional) Attach a patch. 1.1.2 Submitting a Patch Patches are the best way to provide a bug fix or to propose enhancements to CuteFlow. If you like to work on new features please contact the CuteFlow Core Team on the dev mailing-list 3

Initial Setup Before working on CuteFlow, setup a friendly environment with the following software: Git; PHP version 5.3.2 or above; PHPUnit 3.5.11 or above. Set up your user information with your real name and a working email address: $ git config --global user.name "Your Name" $ git config --global user.email you@example.com Tip: If you are new to Git, we highly recommend you to read the excellent and free ProGit book. Get the CuteFlow source code: Create a GitHub account and sign in; Fork the CuteFlow repository (click on the Fork button); After the hardcore forking action has completed, clone your fork locally (this will create a CuteFlow-V4 directory): $ git clone git@github.com:username/cuteflow-v4.git Add the upstream repository as remote: $ cd CuteFlow-V4 $ git remote add upstream git://github.com/cuteflow/cuteflow-v4.git CuteFlow Setup You need to get CuteFlow up and running before you can start developing on it. For an clean and mean development installation just take the following steps: Create a database on your MySQL-Server (name it for example cuteflow-v4) Rename the app/config/parameters.ini.dist to app/config/parameters.ini Open the file app/config/parameters.ini and adapt the database parameters to the settings of your environment Create and fill the database schema: $ php app/console doctrine:schema:create $ php app/console doctrine:fixtures:load The fixtures containing a admin user with password admin Working on a Patch Each time you want to work on a patch for a bug or on an enhancement, create a topic branch: $ git checkout -b BRANCH_NAME 4 Chapter 1. Contributing

Tip: Use a descriptive name for your branch (ticket_xxx where XXX is the ticket number is a good convention for bug fixes). The above command automatically switches the code to the newly created branch (check the branch you are working on with git branch). Work on the code as much as you want and commit as much as you want; but keep in mind the following: Follow the coding standards (use git diff check to check for trailing spaces); Add unit tests to prove that the bug is fixed or that the new feature actually works; Do atomic and logically separate commits (use the power of git rebase to have a clean and logical history); Write good commit messages. Tip: A good commit message is composed of a summary (the first line), optionally followed by a blank line and a more detailed description. The summary should start with the Component you are working on in square brackets ([Administration], [WorkflowManagement],...). Use a verb (fixed..., added...,...) to start the summary and don t add a period at the end. Submitting a Patch Before submitting your patch, update your branch (needed if it takes you a while to finish your changes): $ git checkout master $ git fetch upstream $ git merge upstream/master $ git checkout BRANCH_NAME $ git rebase master When doing the rebase command, you might have to fix merge conflicts. git status will show you the unmerged files. Resolve all the conflicts, then continue the rebase: $ git add... # add resolved files $ git rebase --continue Check that all tests still pass and push your branch remotely: $ git push origin BRANCH_NAME You can now discuss your patch on the dev mailing-list or make a pull request (they must be done on the cuteflow/ CuteFlow-V4 repository). To ease the core team work, always include the modified components in your pull request message, like in: [Administration] foo bar [Translation] [WorkflowManagement] foo bar If you are going to send an email to the mailing-list, don t forget to reference you branch URL (https://github. com/username/cuteflow-v4.git BRANCH_NAME) or the pull request URL. Based on the feedback from the mailing-list or via the pull request on GitHub, you might need to rework your patch. Before re-submitting the patch, rebase with master, don t merge; and force the push to the origin: 1.1. Contributing Code 5

$ git rebase -f upstream/master $ git push -f origin BRANCH_NAME Note: All patches you are going to submit must be released under the MIT license, unless explicitly specified in the code. 1.1.3 Reporting a Security Issue Found a security issue in CuteFlow? Don t use the mailing-list or the bug tracker. All security issues must be sent to security [at] cuteflow.org instead. Emails sent to this address are forwarded to the CuteFlow core-team private mailing-list. For each report, we first try to confirm the vulnerability. When it is confirmed, the core-team works on a solution following these steps: 1. Send an acknowledgement to the reporter; 2. Work on a patch; 3. Write a post describing the vulnerability, the possible exploits, and how to patch/upgrade affected applications; 4. Apply the patch to all maintained versions of CuteFlow; 5. Publish the post on the official CuteFlow blog. Note: While we are working on a patch, please do not reveal the issue publicly. 1.1.4 Coding Standards When contributing code to CuteFlow, you must follow its coding standards. To make a long story short, here is the golden rule: Imitate the existing CuteFlow code. Structure Never use short tags (<?); Don t end class files with the usual?> closing tag; Indentation is done by steps of four spaces (tabs are never allowed); Use the linefeed character (0x0A) to end lines; Add a single space after each comma delimiter; Don t put spaces after an opening parenthesis and before a closing one; Add a single space around operators (==, &&,...); Add a single space before the opening parenthesis of a control keyword (if, else, for, while,...); Add a blank line before return statements; Don t add trailing spaces at the end of lines; Use braces to indicate control structure body regardless of the number of statements it contains; 6 Chapter 1. Contributing

Put braces on their own line for classes, methods, and functions declaration; Separate the conditional statement and the opening brace with a single space and no blank line; Declare visibility explicitly for class, methods, and properties (usage of var is prohibited); Use lowercase PHP native typed constants: false, true, and null. The same goes for array(); Use uppercase strings for constants with words separated with underscores; Define one class per file; Declare class properties before methods; Declare public methods first, then protected ones and finally private ones. Naming Conventions Use camelcase, not underscores, for variable, function and method names; Use underscores for option, argument, parameter names; Use namespaces for all classes; Use CuteFlow as the first namespace level; Suffix interfaces with Interface; Use alphanumeric characters and underscores for file names; Documentation Add PHPDoc blocks for all classes, methods, and functions; The @package and @subpackage annotations are not used. 1.1.5 CuteFlow License CuteFlow is released under the MIT license. According to Wikipedia: It is a permissive license, meaning that it permits reuse within proprietary software on the condition that the license is distributed with that software. The license is also GPL-compatible, meaning that the GPL permits combination and redistribution with software that uses the MIT License. The License Copyright (c) 2003-2011 Timo Haberkern Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software ), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 1.1. Contributing Code 7

THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR- TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT- WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 1.2 Contributing Documentation 1.2.1 Contributing to the Documentation Documentation is a very import part of a software. It follows some important principles: DRY, tests, ease of maintenance, extensibility, optimization, and refactoring just to name a few. And of course, documentation has bugs, typos, hard to read tutorials, and more. Contributing Before contributing, you need to become familiar with the markup language used by the documentation. The CuteFlow documentation is hosted on GitHub: https://github.com/cuteflow/cuteflow-documentation If you want to submit a patch, fork the official repository on GitHub and then clone your fork: $ git clone git://github.com/yourusername/cuteflow-documentation.git Next, create a dedicated branch for your changes (for organization): $ git checkout -b improving_foo_and_bar You can now make your changes directly to this branch and commit them. When you re done, push this branch to your GitHub fork and initiate a pull request. The pull request will be between your improving_foo_and_bar branch and the cuteflow-documentation master branch. images/docs-pull-request.png GitHub covers the topic of pull requests in detail. Note: The CuteFlow documentation is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. Reporting an Issue The most easy contribution you can make is reporting issues: a typo, a grammar mistake, a bug in code example, a missing explanation, and so on. 8 Chapter 1. Contributing

Steps: Submit a bug in the bug tracker; (optional) Submit a patch. 1.2.2 Documentation Format The CuteFlow documentation uses restructuredtext as its markup language and Sphinx for building the output (HTML, PDF,...). restructuredtext restructuredtext is an easy-to-read, what-you-see-is-what-you-get plaintext markup syntax and parser system. You can learn more about its syntax by reading existing CuteFlow documents or by reading the restructuredtext Primer on the Sphinx website. If you are familiar with Markdown, be careful as things as sometimes very similar but different: Lists starts at the beginning of a line (no indentation is allowed); Inline code blocks use double-ticks (``like this``). Sphinx Sphinx is a build system that adds some nice tools to create documentation from restructuredtext documents. As such, it adds new directives and interpreted text roles to standard rest markup. Syntax Highlighting All code examples uses PHP as the default highlighted language. You can change it with the code-block directive:.. code-block:: yaml { foo: bar, bar: { foo: bar, bar: baz } } If your PHP code begins with <?php, then you need to use html+php as the highlighted pseudo-language:.. code-block:: html+php <?php echo $this->foobar();?> Note: A list of supported languages is available on the Pygments website. Testing Documentation To test documentation before a commit: Install Sphinx; Run make html and view the generated HTML in the build directory. 1.2. Contributing Documentation 9

1.2.3 CuteFlow Documentation License The CuteFlow documentation is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. You are free: to Share to copy, distribute and transmit the work; to Remix to adapt the work. Under the following conditions: Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work); Share Alike If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. With the understanding that: Waiver Any of the above conditions can be waived if you get permission from the copyright holder; Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license; Other Rights In no way are any of the following rights affected by the license: Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; The author s moral rights; Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. This is a human-readable summary of the Legal Code (the full license). 10 Chapter 1. Contributing

CHAPTER 2 Indices and tables genindex modindex search 11