====== Set up a developement environment ====== ===== Where can I find the source code? ===== We develop Admidio using the version management [[https://de.wikipedia.org/wiki/Git|Git]] on the platform [[https://www.github.com|GitHub]]. The current source code is located in the Master **Branch** and can be found via the following link: https://github.com/Admidio/admidio GitHub also offers a client for [[https://mac.github.com/Mac|Mac]] and [[https://windows.github.com/|Windows]]. More Git programs can be found at [[https://git-scm.com/]]. Before you start with the development of new functions, you should contact us or use [[https://help.github.com/articles/about-issues/|Issue-Tracker]] to describe the desired extension or collecting ideas for new features. Have you got your idea formulated as [[https://help.github.com/articles/about-issues/|Issue]] and coordinated with us, then you will find the **Master** Branch the current code with all new features and changes that have been added since the last release. If you want Admidio evolve, we recommend that you take as a base this Branch. Ideally, you create then in your GitHub account a [[https://guides.github.com/activities/forking/#fork|Fork]] of this Branch and a feature Branch. There you can now develop your extension and [[https://guides.github.com/activities/forking/#making-changes|commit]] in the fork. Once your extension is complete, you can use a [[https://guides.github.com/activities/forking/#making-a-pull-request|Pull Request]] for our **Master** Branch. This Pull Request we will look at and discuss it then to assume ideally. Shortly after we released a major new version, we will create a Branch specifically for this version. The current state of development is appropriately recorded to the published version practically. At this stage of development we can later import corrections regardless of what has been developed in parallel **Master**. The Branch is always appropriate for us to release. On behalf of the Branches you can see which version is which Branch. Example of Admidio 4.0 the Branch is named **v4.0** and reachable at the following URL: https://github.com/Admidio/admidio/tree/v4.0 ===== GitHub Write permissions ===== If you are new to Admidio, then you should, as described above, once create a[[https://guides.github.com/activities/forking/#fork|Fork]] and perform new functions or corrections. We can then take a [[https://guides.github.com/activities/forking/#making-a-pull-request|Pull Request]]. Have you already helped through this method and the codeĀ“corresponds to our [[en:entwickler:programmierrichtlinien|programming guidelines]], then usually there is nothing against giving you also write access to the Admidio project in GitHub. ===== Develop New Feature ===== Do you want to develop a new feature for Admidio or extend an existing function, it would be nice if you perform the following steps. - Describe on our GitHub project page your planned expansion. For this purpose you acquired a new [[https://github.com/Admidio/admidio/issues|Issue]] and add the label **Enhancement**. About this Issue and the function described there other team members or those interested have the opportunity to get to know your desired change and possibly to write comments. - Do you want to continue registering the function, then switch to the **Master** Branch and create a [[https://help.github.com/desktop/guides/contributing/creating-a-branch-for-your-work/ | new Branch]]. This is named with the prefix **feature - ** and a short function name eg. // Feature bootstrap3 Integration // or // feature-improved-registration //. This should contain only your changes in the future . Do you still have no write permission in Admidio repository then you can develop the function in your fork. - Now you can transfer your changes to this feature Branch (or your own Fork) and commit until the development is done from your point of view. When you check in (commit) a descriptive sentence should preferably be given in English. - Create now from your feature Branch (or your own Fork) a [[https://help.github.com/desktop/guides/contributing/sending-a-pull-request/|Pull-Request]]. This may now be considered by another developer and //merged//. ===== How and where do I fix a bug? ===== The following steps are necessary if you want to fix a bug: - The first step is, as also with new features an [[https://github.com/Admidio/admidio/issues|Issue]] must be created, if it does not already exist. - If the error in the recently published version exists, it should also be corrected there. For this you switch to the appropriate Branch for example **v4.0**. - Fix the error and execute the relevant commits in this Branch. When you check in (commit) a descriptive sentence should preferably be given in English, which also concerned a reference to the issue, for example, // # 4711 fix SQL syntax When save new events // - Typically, the error also occurs in the **Master** Branch, so that commits with [[https://help.github.com/articles/merging-branches/|merge]] in the **Master** Branch shall be incurred. This step can also be carried out later. Do you still not have write permissions in Admidio project on GitHub, so you can [[https://help.github.com/articles/fork-a-repo/|fork]] the repository only once to do the correction there. Subsequently, the correction can then be taken on a [[https://help.github.com/articles/creating-a-pull-request/|Pull Request]] in the official code.