Git Product home page Git Product logo

os2forms_docs's Introduction

OS2Forms

Table of contents

Description

OS2Forms is a drupal based solution for creating advanced webform functionality for Danish Municipalities.

Solution main repositories:

License

All OS2Forms projects are using EUPL v1.2 License.

Testing and CI

Every OS2Forms drupal project should have continuous integration builds are performing by Travis CI. To improve code quality and integration possibilities there are using set of following tools:

For more details about travis-ci continuous integration builds see .travis-ci.yml file in project git repository.

NOTE: Some projects couldn't have its own PHPUnit test. This is a part of future development scope.

Git guideline

Project use default approach for branch naming.

Bracnhes

  • develop - general development branch (Default).
  • develop-2.x - development branch for version 2.x. (if requires)
  • master - stable version of code.

There are no specific rules for feature branch names. However we recommend use OS2Forms JIRA or github issue ticket number as prefix for your branch name.

Tags

Release tags should be created from related branches. Tag name space should follow Semantic Versioning rules. Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards compatible manner, and
  • PATCH version when you make backwards compatible bug fixes.

Outdated approach

Since OS2Forms projects are Drupal friendly, there was used drupal-friendly git branch/tag names like 8.x, 8.x-2.x. Please keep use it or ask about changes in case this names are not compatible with changes you have.

For new repositories it was decided to switch back to github, composer way to for branch names.

Code review

New changes or bugfixes in existing codebase have to be added to repository through general code review process. To request a code review, use the following process:

  1. Add Github pull request from the feature/bugfix branch to 8.x or other related dev branch.
  2. Request code review from internal department
  3. Test features with customer on test setting
  4. Fix bugs or get approval from customer
  5. Request code review from one of project contributor (other department/company).
  6. Reviewer approves, requests changes or rejects pull request.
  7. Discuss/Add requested changes or merge approved pull request.

NOTE: There are preconditions that have to be met before accepting a pull request:

  • All requested changes have to be done
  • All discussion have to be resolved
  • Pull request should have green Travis CI build status.

Patching principles

To patch a drupal composer project see: https://www.drupal.org/docs/develop/git/using-git-to-contribute-to-drupal/working-with-patches/applying-a-patch-in-a-feature-branch#s-composer

  • Composer based projects in os2forms should always use cweagans/composer-patches package to patch extensions.
  • To allow patching of project dependencies add "enable-patching" to your composer file configuration:
  "extra": {
      "enable-patching": true
  }
  • Patching should only be used for drupal contributed modules, drupal core and other packages maintained outside os2forms organisation.
  • Patching should be handled by the os2forms project that introduces the externally maintained code.
  • Patches should include a link reference to the issue it addresses, if any exist.
  • If an external package(1) introduces another external package(2) the patch should be handled by the project that introduced package 1.

Example:

Given the following dependency tree:

composer why drupal/dynamic_entity_reference -r

drupal/recommended-project        -                    requires os2forms/os2forms_forloeb_profile (dev-composer_cleanup)  
drupal/recommended-project        -                    requires os2forms/os2forms_forloeb (dev-composer_cleanup as 2.5.0) 
os2forms/os2forms_forloeb_profile dev-composer_cleanup requires os2forms/os2forms_forloeb (^2.5)                          
os2forms/os2forms_forloeb         dev-composer_cleanup requires drupal/workflow_participants (^2.4)                       
drupal/workflow_participants      2.6.0                requires drupal/dynamic_entity_reference (^2.0) 

...the os2forms/os2forms_forloeb project is responsible for patching drupal/dynamic_entity_reference contributed module. Leave a comment about why the patch belongs here.

"patches": {
  "//": "Note: drupal/dynamic_entity_reference is required by drupal/workflow_participants",
  "drupal/dynamic_entity_reference": {
    "entityQuery reference JOINs should specify target_type (https://www.drupal.org/project/dynamic_entity_reference/issues/3120952#comment-14141038)": "https://www.drupal.org/files/issues/2021-06-22/entityquery-reference-joins-should-specify-target_type-3120952-24.patch"
  }

Code of Conduct

See Drupal community code of Conduct

Links

os2forms_docs's People

Contributors

andriyun avatar lats1 avatar martinyde avatar perthaarhus avatar skifter avatar tgjerulff avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

os2forms_docs's Issues

Licensing

The documentation currently states:

All OS2Forms projects are using EUPL v1.2 License.

This is not true.

First, all Drupal modules or themes must use "GPL 2 or later". See their own documentation for details.

Second, many of the subprojects under OS2Forms currently don't specify a license. They should - especially those who are Drupal-derived and thus must be under the GPL.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.