Skip to content

VanTrieuThanh/redSHOP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

redSHOP 3.x

Build Status Scrutinizer Code Quality

redSHOP 3.x is a major release and breaking change version, including a lot of enhancement in core and bugs fixes. The new version is opened for people to contribute new features, bugs fixes, improvements.

Requirement

  • For redSHOP version <= 2.1.4: PHP Version: >= 5.6
  • For redSHOP version >= 2.1.5: PHP Version: >= 7.0

Code Standard

redSHOP >= 2.1.5 follow PSR-12 code standard for PHP development instead of Joomla standard which is outdated and not work with PHP_Codesniffer 3.x

IDE integration

Documentation

https://github.com/redCOMPONENT-COM/documentation

DB Change

There are an MySQL Workbench DB Model file in src/db/redshop.mwb. When need some changes in DB structure:

  • Use MySQL Workbench open this src/db/redshop.mwb file.
  • Add some necessary changes in MySQL Workbench
  • Go to File > Export > Forward Engineer SQL Create Script...
  • Choose path for output script file (admin/sql/mysql/install.sql)
  • Check on 2 option Generate DROP Statements Before Each CREATE Statement and Omit Schema Qulifier in Object Names.
  • Open generated install.sql file and remove the comments from MySQL Workbench
  • In install.sql, remove this line at top:

SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

  • In install.sql, remove this line at bottom:

SET SQL_MODE=@OLD_SQL_MODE;

Twig template engine support

  • Twig library is ready and embeded into redSHOP.
  • Almost tags system of redSHOP using Twig template instead of PHP inline
  • Remaining layouts, views of redSHOP is moving to Twig and PHP Inline will be deprecated soon.

Release process for redSHOP

Please follow the next steps in order to release a new version of redSHOP.

  • Execute component_packager.xml PHING file to generate the main component package (includes 1 module and 2 plugins).

Using Gulp build system

Before you can run any Gulp command you need to:

  • download and install NodeJS https://nodejs.org/download/
  • install npm: sudo npm install
  • install Gulp: npm install --save gulp-install
  • install joomla-gulp-release: sudo npm install --save-dev joomla-gulp-release

Using NodeJS version >= 10 on redSHOP

  • download and install NodeJS https://nodejs.org/download/. If you need to update NodeJS do as bellow:
  • install: npm install -g n
  • update Node to version you want, example NodeJS 2: sudo n 12
  • npm install: npm install --save-dev
  • rebuild node-sass: npm rebuild node-sass

Gulp 4 support

  • Currently, redSHOP support GULP 4 with all updated dependencies.

Following tasks and switches are available:

Setup gulp config file. Copy and rename gulp-config.sample.json file into gulp-config.json

Version and other information can be set in gulp-config.json file.

To Release component and create .zip file

Use this command to release component. Version and other information can be set in gulp-config.json file.

gulp release:component

To Release modules and create .zip file

gulp release:module

To Release plugins and create .zip file

gulp release:plugin

This command will read the base directory and create zip files for each of the folder.

=== Switches ===

Pass an argument to choose different folder

--folder {source direcory}  Default: "./plugins"

Pass an argument to change suffix for extension

--suffix {text of suffix}   Default: "plg_"

Example Usage:

 gulp release:extensions --folder ./modules --suffix ext_

Languages & translation

Extensions

Plugins

  • Check if any plugin has been changed in this last release:

$ git log --oneline --after={2013-04-18} --no-merges --name-only | grep 'plugins/.*' | cut -d/ -f2,3 | sort | uniq

Or Compare across versions

git log --oneline 1.4/dev19...develop --no-merges --name-only | grep 'plugins/.*' | cut -d/ -f2,3 | sort | uniq > /var/www/packages/plugins.log

Note: to match the plugins with it's compatible core version see redCOMPONENT-COM#1548

Modules

  • Check if any module has been changed in this last release:

$ git log --oneline --after={2013-04-18} --no-merges --name-only | grep 'modules/.*' | cut -d/ -f2,3 | sort | uniq

Or Compare across versions

git log --oneline 1.4/dev19...develop --no-merges --name-only | grep 'modules/.*' | cut -d/ -f2,3 | sort | uniq > /var/www/packages/modules.log

  • if modules have been modified:
  • Update the release number in their manifest .xml file in the same way you have done it with plugins https://github.com/redCOMPONENT-COM/redSHOP-1.2#plugins
  • execute the modules_packager.xml PHING file and upload the new release to redCOMPONENT.com

Test

  • test the packages to ensure that everything works properly.
  • share the package in the redSHOP testing chat, so others can do some testing.
  • add fast fixes if issues has been identified during testing
  • Generate the final packages and contact the Product Owner (Ole) and ask him to upload the packages to redCOMPOPNENT.com

Update Changelog

  • Create the Changelog list of commits:

git log --oneline 1.4/dev25...develop --no-merges --format="* %s ( %h )" > /var/www/packages/changelog2.log

Prepare software for next release

$ git tag -a 1.3 -m "Version 1.3 Stable"

  • Upload the tag to Github:

$ git push --tags

Testing

See: testing redSHOP

redSHOP Road map

Will be updated here soon.

Packages

No packages published

Languages

  • PHP 70.3%
  • JavaScript 22.1%
  • CSS 6.1%
  • HTML 0.7%
  • Hack 0.5%
  • TSQL 0.3%