Permalink
Switch branches/tags
1543 BAK_oxajax_fix_for-OXDEV-341 CEPR452-ESDEV-4011 CEPR458_0006465-ESDEV-4006 FINAL_BAK_routing-ESDEV-4240 OXDEV-1208_Events-Spike OXDEV-1373 OXDEV-1376 OXDEV-1462-cosine OXDEV-1501_Update_DI_Container OXDEV-1532-convert-assign-converter OXDEV-1536-adjust-twig-engine-for-oxeval OXDEV-1538-convert-hasrights-tag OXDEV-1540-convert-include_widget-rebased-from-current-twig OXDEV-1542-conver-oxinputhelp-twig-current OXDEV-1544-translate-oxmultilang OXDEV-1545-Convert-oxprice-to-formatPrice OXDEV-1547-convert-oxstyle-current-twig-branch OXDEV-1573-convert-cat-filter OXDEV-1608-DI-Container OXDEV-1617-adjust-oxmultilang-extension OXDEV-1621-refactor-oxmultilang OXDEV-1634-convert-colon-modifier-current-twig-branch OXDEV-1635-convert-oxaddslashes-filter OXDEV-1636-convert-oxenclose-filter-current-twig-branch OXDEV-1636-convert-oxenclose-filter OXDEV-1637-convert-oxescape-filter OXDEV-1637_Add-escapers-to-twig OXDEV-1638-convert-oxfilesize-filter OXDEV-1639-convert-oxformattime-filter OXDEV-1644_Migrate-oxnumberformat-to-twig OXDEV-1646-convert-ox-upper-updated-twig-branch OXDEV-1647_Migrate-oxwordwrap-to-twig OXDEV-1648-translate-smartWordWrap-modifier OXDEV-1705-convert-date_format-modifier OXDEV-1720_Package_Support OXDEV-1751_Arguments-and-return-value-types OXDEV-1754-update-twig-function-and-filter-names PR417_0006056-ESDEV-4005 PR531_fix_setup_mysql56_issue SPIKE_ideas_for_basket_serialization-ESDEV-4644 System_service_overwriting_check-OXDEV-1745 TCF_module_ordering_presentation TCF_routing_demo-ESDEV-4240 TEMPORARY-OXDEV-1314 TEMPORARY_check_travis_build TEMPORARY_module_tests an_example_for_workshop b-4.6-ce b-5.0-ce b-5.1-ce b-5.2-ce b-5.3-ce b-6.x-OXDEV-1608-DI-Container b-6.x-add_doctrine_collections_to_composer b-6.x-cleanup_module_smarty_plugins b-6.x-implement_metadata_mapper-OXDEV-1441 b-6.x-module_activation_service-OXDEV-1444 b-6.x-module_configuration_repository-OXDEV-1284 b-6.x-refactor_conole_and_di_changes-OXDEV-1735 b-6.x-show_uncaught_exception_message b-6.x-symphony-di b-6.x-upgrade_phpmailer-OXDEV-1762 b-6.x-yaml_file_validation-OXDEV-1471 b-6.x_rp_final-OXDEV-1387 b-6.x_rp_refactor_events-OXDEV-1387 b-6.x_shop_events-OXDEV-1387 b-6.x b-6.0-beta.2 b-6.0-rc.1 b-6.0.x-update_phpmailer-OXDEV-1719 b-6.0.x b-6.1.x-group_logging_in_config_inc b-6.1.x-improve_controllers-OXDEV-1724 b-6.1.x-stabilize_db_tests b-6.1.x-upgrade_phpmailer-OXDEV-1762 b-6.1.x b6x_INVESTIGATE-OXDEV-1387 b6x_REBASED_events-OXDEV-1387 b6x_events-OXDEV-1387 b6x_stabilize_PaginationSeoTest backup-b-6.x-implement_metadata_mapper-OXDEV-1441 category_multilingual_external_link-OXDEV-575 codeception-OXDEV-691 compare_links_in_lists_do_not_work_correctly-OXDEV-605 dev-b-6.0-ce extended_basket_bug_fix-esdev-4742 extract_module_helper_class-ESDEV3354 fix_acceptance_tests_CI2_issue fix_blocking_tests-ESDEV-4372 fix_failing_tests-ESDEV-4472 fix_test fix_travis_for_PHP53-OXDEV1252 flow_theme_acc_tests-ARC-24 investigate-OXDEV-1618 investigating-OXDEV-854 master-check_notices master-refactor_tests-OXDEV-73 master-upgrade_phpmailer-OXDEV-1762 master_add_AU_states master_check_quarantine_tests master no_excuses_testing_example no_excuses_testing ordering_of_modules_ESDEV-4251 oxajax_fix_for-OXDEV-331 pr429 pr553 pr571 pr580 prepare_feature_branch_for_module_bugfixes-ESDEV-4344 pull_request_480 refactoring_price_calculation selenium-OXDEV-690 spike-basket_extending_bug-esdev-4734 spike_multilanguage_handling-ESDEV-3273 spike_non_numeric_language_ids-ESDEV-3273 stabilize_pagination_seo_test_OXDEV-881 stable-master symfony_comp test-push_notices_satis test_noregister_email_change-OXDEV-1006 twig vat_calculation_for_percentaged_vouchers-ESDEV-3338
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
98 lines (63 sloc) 6.31 KB

Getting involved

OXID eShop is available under two different licenses, GPLv3 and a commercial license.

That's why, before contributing for the first time, you must sign the Contributor License Agreement. You can find more information about it on the FAQ page OXID Contribution and Contributor Agreement FAQ: https://oxidforge.org/en/oxid-contribution-and-contributor-agreement-faq

Process

First off, you have to fork the repository OXID-eSales/oxideshop_ce to your list of repositories.

Branch naming introduction

To find the correct branch to contribute to, read this introduction to our branch naming strategy:

First one caveat: You really need to understand the difference between OXID components and the eShop compilation. The compilation is a bundle that incorporates the shop core and several essential modules. But although each component has it's own versioning (and follows strict semantic versioning), it's the versioning of the compilation, that determines the naming of branches that exist in the OXID eShop components.

The versioning of the components themselves may differ from the compilation (which as a bundle can't follow strict semantic versioning). So although you are contributing to a component, the numbering of the branches follows the versioning of the compilation. The reason for this is obvious: We want to see, which changes go to the next release and releases means that we publish a new compilation - although we might have several new versions of the component in between.

For a better understanding take a look at the release plan - as example the compilation version v6.1.0 contains the v6.3.0 version from this repository.

Of the many different branches only three types are relevant for you as a contributor in the <github_username>/oxideshop_ce repository:

  • The next major version branch is always named master: All new features including compatibility breaking changes will be developed here as well as bug fixes.
  • The next minor version branch with a name like b-{current major}.x for the currently maintained major version. Only Backwards compatible changes as well as new compatible features are possible.
  • The current patch branch with a name like b-{current major}.{current minor}.x: bug fixes only. (will only be created if needed)
  • The previous patch branch with a name like b-{current major}.{previous minor}.x: critical bug fixes only. (will only be created if needed)

In general, contributions can be taken over for all branches. Bug fixes committed to only one branch will be pushed to the other branches manually. Of course you can also consider to commit e.g. bug fixes to more than one branch.

Finding the best branch for a pull request

  • So you have found a security issue: do not create a pull request please, but instead follow the the security procedures as outlined here https://oxidforge.org/en/security - thank you!

  • You have a great idea and even a working prototype for a nice new feature/improvement, but it will break the shops backwards compatibility: master is the best spot for you.

  • Again you have a nice new feature/improvement, but you are sure it will not break backwards compatibility: if for example "6" is the current major shop version then b-6.x is the best spot, as it will be used for the next minor version.

  • You have found a bug and already know the best fix: this one is a bit tricky, of course you can always create a pull request for next minor version as described above, but we would prefer usage of the current patch branch. An easy way to find the best branch is to look at https://github.com/OXID-eSales/oxideshop_metapackage_ce/releases and if a.e. the topmost entry is v6.1.0 then the best branch to use is b-6.1.x.

Development installation

  1. make sure composer is installed on your system
  2. $ git clone https://github.com/OXID-eSales/oxideshop_ce.git
  3. $ cd oxideshop_ce
  4. $ composer install --no-dev
  5. $ cp source/config.inc.php.dist source/config.inc.php

If you want to install OXID eShop including example data like products, categories etc., you first need to install the demo data package:

  1. $ composer require --no-update oxid-esales/oxideshop-demodata-ce:dev-b-6.0
  2. $ composer update --no-dev

Cloning without history

To reduce the size of the repository when cloning you can use a so called "shallow clone". With it, the history will be truncated and can save more than 90% of the disk space and traffic in comparison to a full repository clone.

Here is an example of how to use a shallow clone:

git clone --depth 1 https://github.com/OXID-eSales/oxideshop_ce.git

Best practice

  • please leave the the branch names as they are
  • if you want to fix a bug or develop a new feature, define an own branch in your repository off of one of the three branches above. Name it e.g. feature/foo or bug/bugname for better tracability
  • change whatever you want and push it to your forked repository
  • when changes are pushed, create a Pull request on github for your branch
  • additional changes to pull request can be done by making additional commits on your branch

For more information about this, please see:
http://codeinthehole.com/writing/pull-requests-and-other-good-practices-for-teams-using-github/

Now you'll be asked for signing an OXID Contributor Agreement (this has to be done once). After that we can start checking your code. In every case, whether or not we could take over your contribution, you'll be informed.

Image alt

When sending your pull request, please provide a clear, meaningful and detailed information what your code is about and what it will do, best including a screen shot if possible. If you want to discuss your contribution and your code before committing it, please go to the dev-general mailing list: https://lists.oxidforge.org/mailman/listinfo/dev-general.

You will find technical help with Git and GitHub on this place:
https://help.github.com/

Code quality

Please find a collection of helpful development tools as well as a link to the OXID specific Coding style guidelines at https://oxidforge.org/en/coding-standards.html. We also kindly request to PHP Unit tests for your code.