CoreStore: A standard library for e-commerce | WIP (Work in Progress)
based on an optimized Magento 2 database structure.
Magento is a trademark of MAGENTO, INC..
Min. Go Version: 1.11
To properly use the CoreStore packages, some environment variables must be set
go generate. (TODO)
CS_DSN the environment variable for the MySQL connection.
$ export CS_DSN='magento2:magento2@tcp(localhost:3306)/magento2'
$ go get github.com/corestoreio/pkg $ export CS_DSN='see previous' $ cd $GOPATH/src/github.com/corestoreio/pkg $ xgo run xcodegen/tableToStruct/*.go
Setup database for Magento 2 and fill them with the provided testdata.
Create a DSN env var
CS_DSN and point it to Magento 2 database. Run the tests.
If you find an entry in the source like
TODO(CS) that means you can ask
to get more information about how to implement and what to fix if the context of
the todo description isn't understandable.
- Create Magento 2 modules to setup test database and test Magento system.
single repo. CoreStore is a single repo. That means things can be changed and rearranged globally atomically with ease and confidence.
no backwards compatibility. CoreStore makes no backwards compatibility promises. If you want to use CoreStore, vendor it. And next time you update your vendor tree, update to the latest API if things in CoreStore changed. The plan is to eventually provide tools to make this easier.
forward progress because we have no backwards compatibility, it's always okay to change things to make things better. That also means the bar for contributions is lower. We don't have to get the API 100% correct in the first commit.
no Go version policy CoreStore packages are usually built and tested with the latest Go stable version. However, CoreStore has no overarching version policy; each package can declare its own set of supported Go versions.
code review contributions must be code-reviewed.
CLA compliant contributors must agree to the CLA.
docs, tests, portability all code should be documented in the normal Go style, have tests, and be portable to different operating systems and architectures. We'll try to get builders in place to help run the tests on different OS/arches. For now we have Travis at least.
Please have a look at the contribution guidelines That document is an idea.
Some packages have been fully refactored but the initial idea has been extracted from the geniuses listed below:
|Steve Francia||util/conv||MIT Copyright (c) 2014|
|Martin Angers and Contributors.||ctxthrottled||The MIT License (MIT) 2014|
|Dave Cheney||util/errors||The MIT License (MIT) 2015|
|Jad Dittmar||finance aka. money||Copyright (c) 2011|
|Google Inc||youtube/vitess\sqlparser||Copyright 2012 BSD Style|
|Olivier Poitrey||ctxmw.WithAccessLog & CORS||Copyright (c) 2014-2015 MIT License|
|Dave Grijalva||csjwt||Copyright (c) 2012 MIT License|
|Uber Technologies, Inc.||log||Copyright (c) 2016 MIT License|
|2013 The Go Authors||singleflight||Copyright (c) 2013 BSD Style|
|Ventu.io, Oleg Sklyar, contributors.||util/shortid||MIT License Copyright (c) 2016,|
|Carl Jackson (email@example.com) (Goji)||net/responseproxy||Copyright (c) 2014, 2015, 2016|
|Greg Roseberry, 2014; Patrick O'Brien, 2016||util/null||BSD Copyright (c) 2014, 2015, 2016|
|The Go-MySQL-Driver Authors||storage/null/time_mysql.go||Mozilla Public License, v. 2.0, Copyright 2012|
|siddontang||storage/binlogsync||MIT Copyright (c) 2014|
|siddontang||storage/myreplicator||MIT Copyright (c) 2014|
|Tace De Wolf||util/byteconv||MIT Copyright (c) 2015|
|Copyright 2013 The Camlistore Authors||util/byteconv||Apache 2.0|
|Copyright 2013 Google Inc.||storage/lru||Apache 2.0|
|Alex Saskevich||util/validation||MIT Copyright (c) 2014|
|Mat Ryer and Tyler Bunnell||util/assert or github.com/stretchr/testify||Copyright (c) 2012 - 2013|
|Google Youtube||storage/lru||Apache License, Version 2.0|
CoreStore is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.