Hi all,
After having lots of trouble of handling the code in svn we finally will be
moving the platform code (except products code) to git. As I, Azeez and
Senaka discussed offline, here is the new strategy of managing platform
code in git.

In this model we have 13 git projects as listed below where each project
will have related components, features and service stubs in them.

   - registry
   - governance
   - identity
   - mediation
   - analytics
   - data
   - apis
   - business-process
   - business-messaging
   - rules
   - deployment
   - qos (QoS)
   - utils

These projects will be build in the builder machine and components will be
hosted in nexus repo (May be once a day) so that projects can be clone from
git repo and be able to build independently. Each product teams will own
respective project (G-Reg team owns registry and governance projects) and
should be maintain the code quality of that project.

Additionally we identified some specific components which may not reuse at
platform level as listed below,

   - appfactory
   - doc-reg-processor
   - stratos
   - cg
   - data-bridge
   - jaxws

These components + features will be moving to the product level so that
they will only build when the related product builds. Also we identified
that we are loosing the whole purpose of having reusable components,
features in our code base so we suggest people to follow some rules when
creating a new components.

   1. Check whether it's a platform wide re-usable component. (e.g.
   Registry components are used in most of the products in Carbon) If it's not
   meaningful out of the product add it to the product level.
   2. Choose the most suitable project which the component should be added.
   If there is no matching component you can create new component iff there's
   no solution.
   3. Add the component to most suitable feature in the same project.
   4. If this feature need some other components (cross-project feature)
   from other project move that feature to the project level.
   5. We may have to keep some reusable cross-project features in a
   separate place, TBD in future.


Dependencies will be graduated and will make available in the nexus as
SNAPSHOT versions and Products will be hosted as in the same svn location
as now and will be able to build a SNAPSHOT version at any given time and
will be decide whether we move to git later.

@Azeez, Senaka,
Please add if anything I have missed.

@All
Please let know if you have any idea or a comment on this.


thanks
Eranda

-- 

*Eranda Sooriyabandara*Senior Software Engineer;
Integration Technologies Team;
WSO2 Inc.; http://wso2.com
Lean . Enterprise . Middleware

E-mail: eranda AT wso2.com
Mobile: +94 716 472 816
Linked-In: http://www.linkedin.com/in/erandasooriyabandara
Blog: http://emsooriyabandara.blogspot.com/
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to