Hi Shariq,
Yeah, we may not needed those to be build again and again. So let's add
related stubs to service-stubs directory in each repo.

thanks
Eranda


On Tue, Jan 21, 2014 at 12:51 PM, Shariq Muhammed <sha...@wso2.com> wrote:

> On Tue, Jan 21, 2014 at 12:38 PM, Kishanthan Thangarajah <
> kishant...@wso2.com> wrote:
>
>> Yes, we don't need to separately say "service-stubs", it should be under
>> the components level as just another component.
>>
>
> Initially we extracted out the service stubs because it doesn't change
> frequently. So we can reduce the build time because we don't need to do
> wsdl2java in each build cycle. Looks like we are going to add it back?
>
>
>>
>>
>>
>> On Tue, Jan 21, 2014 at 12:30 PM, Eranda Sooriyabandara 
>> <era...@wso2.com>wrote:
>>
>>> Hi Kicha,
>>> There will be no service stubs directory it will be a additional
>>> component in the same level as BE + FE components.
>>>
>>> thanks
>>> Eranda
>>>
>>>
>>> On Tue, Jan 21, 2014 at 11:41 AM, Kishanthan Thangarajah <
>>> kishant...@wso2.com> wrote:
>>>
>>>> Hi Eranda,
>>>>
>>>> Where have you put the service-stubs related to governance component?
>>>> It should come under the same repo as carbon-component-governance.
>>>>
>>>>
>>>> On Tue, Jan 21, 2014 at 12:29 AM, Eranda Sooriyabandara <
>>>> era...@wso2.com> wrote:
>>>>
>>>>> Hi All,
>>>>> As a PoC I just completed the carbon-component-governance. Please
>>>>> find it in [1] and let me know your comments and suggestions. Please keep
>>>>> in mind that this is not in a buildable state since other components
>>>>> need to build before this.
>>>>>
>>>>> thanks
>>>>> Eranda
>>>>>
>>>>> [1] https://github.com/wso2/carbon-component-governance
>>>>>
>>>>>
>>>>> On Fri, Jan 17, 2014 at 9:26 PM, Afkham Azeez <az...@wso2.com> wrote:
>>>>>
>>>>>>  [Sorry for the very long mail. I want to document all that I had in
>>>>>> mind & the stuff we discussed. I would recommend all devs to take
>>>>>> some time to read this]
>>>>>>
>>>>>>
>>>>>> I would like to summarize he discussion we had a couple of days back.
>>>>>>
>>>>>> *The Problems*
>>>>>> The problems we are trying to solve are as follows:
>>>>>>
>>>>>> 1. Trunk & branches structures being completely different
>>>>>> 2. Branches containing directories with version numbers
>>>>>> 3. It is impossible to move to GitHub with the current structure
>>>>>> because of #2
>>>>>> 4. It is very easy to break the build by changing already released
>>>>>> code. The room for human error is high.
>>>>>> 5. Bamboo builds are eternally broken because the build fails at some
>>>>>> point & Bamboo cannot continue any further
>>>>>> 6. When we branch, the trunk quickly becomes obsolete, and remains
>>>>>> in that broken state until the next major platform release.
>>>>>> 7. Everybody has to build all components/features, even if those are
>>>>>> not related to their products
>>>>>> 8. Fixed versions in branches instead of using SNAPSHOT versions.
>>>>>> This makes it impossible to upload build artifacts to Maven/Nexus
>>>>>> repos. This leads to #7.
>>>>>> 9. Impossible to integrate code quality tools such as EraInsight
>>>>>> because of #5
>>>>>>
>>>>>> *Proposed solution*
>>>>>> We have come up with the following solution after much deliberation &
>>>>>> thought.
>>>>>>
>>>>>> Rationale:
>>>>>> We started looking at other open source projects out there. We took
>>>>>> Axis2 as an example. Axis2 had many dependencies including Axiom,
>>>>>> XmlSchema, Woden, WSS4J etc. Those 3rd party dependencies were also
>>>>>> developed by some Axis2 contributors, but we never branched all of those
>>>>>> together and brought them into the same code branch. We used to start 
>>>>>> what
>>>>>> we used to call a release train, where the upstream code would have to be
>>>>>> released first before the downstream code such as Axis2 & Synapse could 
>>>>>> be
>>>>>> released. This way, we never had any of the problems outlined above.
>>>>>>
>>>>>> If you look at the WSO2 product releases, again, the scenario is not
>>>>>> that much different from the Axis2/Synapse releases. Components & 
>>>>>> features
>>>>>> are simply dependencies of the products. In order to get product releases
>>>>>> out, we first need releases of those dependencies (components/features). 
>>>>>> So
>>>>>> the proposal is to identify the top level components/features, and first
>>>>>> release that code before doing product releases. Each of those components
>>>>>> will have a GitHub repo. All active development will be done on the
>>>>>> main branch of those components, and will be branched when they are close
>>>>>> to the release. Instead of granting commit rights to all, we could only
>>>>>> allow the primary developers of those components to commit, and
>>>>>> others can send pull requests, which will be merged in by the primary
>>>>>> owners after reviewing. These component teams could even have an internal
>>>>>> Git repo or clone, and commit to that, run all tests, and when they
>>>>>> are satisfied that the code is in a good state to be merged into the main
>>>>>> branch, they can send a pull request & merge the changes. We would run
>>>>>> Bamboo which would build the components several times a day & deploy them
>>>>>> to the Nexus repo. That way, you would not have to build code that
>>>>>> is not directly related to what you are working on, which would save 100s
>>>>>> of valuable dev hours.
>>>>>>
>>>>>> In the majority of the cases, the P2 features correspond to one or
>>>>>> more related components. So we would keep the feature close to the
>>>>>> component. There are some cases where these components & features belong
>>>>>> in the product itself. AppFactory components are a good example.
>>>>>>
>>>>>> Products will also have their own GitHub repos. We will have
>>>>>> separate GitHub repos for platform integration tests. Products such
>>>>>> as API Manager may opt to have the API Management feature in the
>>>>>> product itself. We would have a separate P2-repo GitHub repo whichwould 
>>>>>> build & deploy the compatible set of P2 features.
>>>>>>
>>>>>> We will have Bamboo plans at multiple levels; components, products,
>>>>>> platform, p2-repo and so on.
>>>>>>
>>>>>> We will not change any package structures at this time. We would
>>>>>> defer that to Carbon 5 (if necessary). We will get rid of the chunk based
>>>>>> release model. Continuous delivery is our ultimate aim & for that to
>>>>>> happen, we have to release a compatible set of features. We are going to
>>>>>> rely heavily on automation, automated builds & deploys to Maven. The
>>>>>> developers will do the majority of the QA (just like the Apache Stratos
>>>>>> team is doing now).
>>>>>>
>>>>>> We will use the Maven release plugin to create releases & upload them
>>>>>> to the Maven repo.
>>>>>>
>>>>>> *Implications to WSO2 code developers*
>>>>>> 1. Life becomes easier because you don't have to spend a lot of time
>>>>>> building unrelated stuff
>>>>>> 2. General development would happen in the main branch.
>>>>>> 3. Close to a release, branches would be cut.
>>>>>> 4. Once release branches are cut, fixes would be done in the main
>>>>>> branch, and pull requests would be sent to the branch & merged in. This
>>>>>> will be easy because we no longer have the trunk & branch structure being
>>>>>> different.
>>>>>>
>>>>>>
>>>>>> *Implications to users*
>>>>>> Users will not see any difference in the components & features
>>>>>> because we are not changing packages or binary structure. In fact, we 
>>>>>> would
>>>>>> have a P2 repo with compatible features which all work together.
>>>>>>
>>>>>> Senaka, Isuruwan & Harshana have already started working on a PoC.
>>>>>>
>>>>>> Thoughts welcome. Those who were in these discussions, please add
>>>>>> anything I may have missed.
>>>>>>
>>>>>> --
>>>>>> *Afkham Azeez*
>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>>> * <http://www.apache.org/>*
>>>>>> *email: **az...@wso2.com* <az...@wso2.com>
>>>>>> * cell: +94 77 3320919 <%2B94%2077%203320919> blog: *
>>>>>> *http://blog.afkham.org* <http://blog.afkham.org>
>>>>>> * twitter: 
>>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>>>>>> * linked-in: **http://lk.linkedin.com/in/afkhamazeez
>>>>>> <http://lk.linkedin.com/in/afkhamazeez>*
>>>>>>
>>>>>> *Lean . Enterprise . Middleware*
>>>>>>
>>>>>> _______________________________________________
>>>>>> Architecture mailing list
>>>>>> Architecture@wso2.org
>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> *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
>>>>> Architecture@wso2.org
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *Kishanthan Thangarajah*
>>>> Senior Software Engineer,
>>>> Platform Technologies Team,
>>>> WSO2, Inc.
>>>> lean.enterprise.middleware
>>>>
>>>> Mobile - +94773426635
>>>> Blog - *http://kishanthan.wordpress.com
>>>> <http://kishanthan.wordpress.com>*
>>>> Twitter - *http://twitter.com/kishanthan
>>>> <http://twitter.com/kishanthan>*
>>>>
>>>> _______________________________________________
>>>> Dev mailing list
>>>> d...@wso2.org
>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> *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/
>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> *Kishanthan Thangarajah*
>> Senior Software Engineer,
>> Platform Technologies Team,
>> WSO2, Inc.
>> lean.enterprise.middleware
>>
>> Mobile - +94773426635
>> Blog - *http://kishanthan.wordpress.com
>> <http://kishanthan.wordpress.com>*
>> Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
>>
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Thanks,
> M. S. M. Shariq.
> Senior Software Engineer
> Phone: +94 777 202 225
>



-- 

*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
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to