Hi Ivan,
Il 15/08/2013 22:13, helix84 ha scritto:
Hey guys,
it's great to see commiters reviewing other developers' code, as for
example the recent developments by Keiji and Andrea.
I wanted to suggest an easier way to facilitate such collaboration.
Currently, the reviewer comments and waits for the original developer
to incorporate the comments. An obvious improvement would be for the
developer to give the reviewer write access to his fork. The
disadvantages are that you don't know in advance who will be reviewing
your code and maybe you have other public branches that you don't want
to let others touch.
An improvement to that solution would be to have another fork of the
DSpace/DSpace repository (let's call it /collab/) where all commiters
(and, if we decide so, also other trusted developers) would have write
access. So if you're working on any issue in Jira and you're ready to
launch a pull request, you would create the source branch of that PR
in /collab/. That way, with everyone having access to it, they could
fix obvious mistakes right away, even on already open PRs. The
original developer would still have the freedom to develop in his own
personal fork without interference.
yes, this could be an improvement but I'm not sure how big it is and if
an additional repository will look more confusing that helpful to
people. We will need to add some automatic script to assure that the
master is keep up-to-date with the official master this is need to
safety find merged branch and delete it. Otherwise we will end fastly to
a long unmanageable list of branches.
It is important to note that not all the changes that we want propose to
a pull request are appropriate to be done pushing directly to the pull
branch. Sometime we want just propose something and have the original
author to verify/approve. In such case it is best to open a pull request
against the pull request branch (as I usually done vs the original
developer repository).
Another improvement that you solution introduce is that the committer
that want to perform the merge is able to make the rebase or squash of
the original pull request, in this way there is a chance to save some
stats (github will see this pull request as merged) but I'm not sure
about what of the discussion around the pull request will be lost
As I mentioned, we could also decide to open this /collab /repository
for non-commiters, as a way to give trusted developers more
privilieges - a gradual progress towards commitership. In this case,
the /collab/ repository would not be under DSpace/collab, but under a
separate "organization" (which is a GitHub term for a group of people
with access privileges to a group of repositories).
yes, I really like to have only a standard workflow. If we introduce a
second organization/repo I will like that at most all the pull requests
come from it.
What do you think?
I also have a second, similar but distinct idea. I'll call this
/contrib/. /contrib/ would be a separate repository, *not* a fork of
DSpace/DSpace, but a place where optional addons would be officially
published and could be collaboratively maintained.
Over the existence of the DSpace project, there has been a dozen of
quite successful DSpace addons, which were intentionally not made part
of DSpace, but maintained in parallel. They all have their target
group, but do not necessarily contribute towards the direct DSpace
objectives or commiters are not able/willing to maintain
them. Examples of such addons include SRW, Minho stats, OAIExtended,
Semantic Search, REST API or DSpace-CRIS. It is my observation that
it's a lot of work to maintain so called out-of-tree code. The benefit
of /collab/ would be that the maintenace burden of maintaining addons
could be shared with a wider community. For example, if the original
author doesn't have time to work on porting their addon to work with
the newest version of DSpace, an interested user could contribute with
such porting work and ever user of that addon would immediately have
access to it.
An open question about the /contrib/ repository is how it would deal
with versioning. It is often desirable to keep an up-to-date version
of an addon for an older version of DSpace because the older version
is deployed in production. This could be solved using anything from
separate directories, branches or even several collab repositories for
different versions of DSpace.
here the question is much more complex.
I see two different issues:
- a legal/ownership issue: some contribution are very big projects as in
the case of my DSpace-CRIS and the original authors/company want to
maintains the ownership or will be available to transfer it to duraspace
only if a substantial endorsement of the project is done by duraspace.
This mean a sort of incubation status where for example we will open a
jira project to track issue related to this contribution, a wiki area, etc.
- a technical issue: actually we don't have a really plugin/addon
mechanism for dspace. Any contribution need to make some customization
to the "DSpace core" to be able to compile/integrate their features
(sometimes to the pom files others also to java classes). For
DSpace-CRIS we have had to setup several branch on the CILEA/DSpace fork
to manage such integration
I'm sorry, I have more issues to report than answers.
A long term solution requires that:
1) we need to have a real plugin/addon mechanism
2) we need to setup a directory of hight rated/supported addon
(incubation) and a directory of trusted, available out of box, addons
3) we need a market place
Andrea
Do you approve? Disapprove? Have any comments? Do you have any
additional use cases that could be adressed by shared repositories?
Regards,
~~helix84
Compulsory reading: DSpace Mailing List Etiquette
https://wiki.duraspace.org/display/DSPACE/Mailing+List+Etiquette
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel
--
Andrea Bollini
Dipartimento Servizi e Soluzioni per l'Amministrazione Universitaria
Divisione Ricerca
Via dei Tizii, 6
00185 Roma, Italy
tel. +39 06 44 486 087 - mob. +39 348 82 77 525
http://www.cineca.it
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel