Including Binary Dependencies in Repository
----------------------------------------------------------------
Pros
- One-step build experience; Good for new users, easy to maintain for developers
- Solid control of dependency versioning since we control the DLL
Cons
- No debugging support for 3rd party libs (as opposed to checking in
source code of 3rd party libs)
- Could lead to 'binary bloat' in repository
- Could lead to platform specific issues (eg 32vs64 bit or other OS
platform/framework issues)
- Could lead to legal issues with redistribution
- Requires developers to do extra work to ensure they are complying
with license restrictions for redistribution ( eg, read and understand
the license and do whatever steps it requires)
Including Source Code Dependencies in Repository
---------------------------------------------------------------------------
Pros
- One-step build experience; Good for new users, easy to maintain for developers
- Full debugging support of 3rd party lib (can step through code, etc)
- Allows modification of 3rd party source, if needed.
- Fine grained control of versioning using VCS of 3rd party project
(can include a specific and move back/forwards easily)
Cons
- Could lead to source code bloat in repository
- Requires full build environment for 3rd party lib/dependencies
- Could lead to legal issues with redistribution
- Requires developers to do extra work to ensure they are complying
with license restrictions for redistribution ( eg, read and understand
the license and do whatever steps it requires)
Including Source/Binary Dependencies Outside of Repository
----------------------------------------------------------------------------------------
Pros
- No potential legal liability
- No bloat in repository of content that is not our work product
- End users/developers may choose how to setup/configure libs for their platform
- Allows 3rd party projects to control access to their content (ie:
download link could have updated version or be made non-public if they
choose to do so)
Cons
- Confusing for new users/developers. Need to read documentation and
perform setup before they can compile
- Requires developers to do extra work to maintain
compilation-notes.txt accurately
- Could lead to unavailability of 3rd party content if URLs change or
other unforseen circumstances
Let's put it to a basic vote. Please respond with on of the following
three options:
+1 Include binaries in repository
+1 Include source in repository
+1 Include either binaries or source in repository
+1 Do not include binaries or source in repository
Thanks,
Troy
So, am I right in thinking that we have agreed to include binary dependencies?
If so, I was going to create a folder in lucere.test and call it binary dependencies. Any better suggestions?
Ciaran
-----Original Message-----
From: Ciaran Roarty <ciaran...@gmail.com>
Date: Sun, 21 Nov 2010 21:57:40
To: <lucer...@googlegroups.com>
Subject: RE: [lucere-dev] Third Party Dependencies
So, am I right in thinking that we have agreed to include binary dependencies?
If so, I was going to create a folder in lucere.test and call it binary dependencies. Any better suggestions?
Ciaran
From: lucer...@googlegroups.com [mailto:lucer...@googlegroups.com] On Behalf Of Hakeem Mohammed
Sent: 20 November 2010 15:07
To: lucer...@googlegroups.com
Subject: Re: [lucere-dev] Third Party Dependencies
+1 Binaries in repository.
Include the dependencies in a separate folder named lib or some such. So when a user downloads the Lucere framework there would be a build folder with the build scripts, a lib folder with all dependencies and a src folder with the actual library code. The readme.txt/compilation notes would be in the root folder and if we are to include documentation with it that could be in a doc folder
Thanks!
On Sat, Nov 20, 2010 at 3:57 AM, Ciaran Roarty <ciaran...@gmail.com <mailto:ciaran...@gmail.com> > wrote:
+1 Include binaries in repository if it is legal to do so.
> To post to this group, send email to lucer...@googlegroups.com <mailto:lucer...@googlegroups.com> .
> To unsubscribe from this group, send email to lucere-dev+...@googlegroups.com <mailto:lucere-dev%2Bunsu...@googlegroups.com> .
> For more options, visit this group at http://groups.google.com/group/lucere-dev?hl=en.
>
--
You received this message because you are subscribed to the Google Groups "Lucere Development" group.
To post to this group, send email to lucer...@googlegroups.com <mailto:lucer...@googlegroups.com> .
To unsubscribe from this group, send email to lucere-dev+...@googlegroups.com <mailto:lucere-dev%2Bunsu...@googlegroups.com> .
For more options, visit this group at http://groups.google.com/group/lucere-dev?hl=en.
--
You received this message because you are subscribed to the Google Groups "Lucere Development" group.
To post to this group, send email to lucer...@googlegroups.com <mailto:lucer...@googlegroups.com> .
To unsubscribe from this group, send email to lucere-dev+...@googlegroups.com <mailto:lucere-dev+...@googlegroups.com> .
---Original Message---
From: lucer...@googlegroups.com
Sent: 11/21/2010 12:57 pm
To: lucer...@googlegroups.com
Subject: RE: [lucere-dev] Third Party Dependencies
So, am I right in thinking that we have agreed to include binary dependencies? If so, I was going to create a folder in lucere.test and call it binary dependencies. Any better suggestions? Ciaran From: lucer...@googlegroups.com [mailto:lucer...@googlegroups.com] On Behalf Of Hakeem Mohammed Sent: 20 November 2010 15:07 To: lucer...@googlegroups.com Subject: Re: [lucere-dev] Third Party Dependencies +1 Binaries in repository. Include the dependencies in a separate folder named lib or some such. So when a user downloads the Lucere framework there would be a build folder with the build scripts, a lib folder with all dependencies and a src folder with the actual library code. The readme.txt/compilation notes would be in the root folder and if we are to include documentation with it that could be in a doc folder Thanks! On Sat, Nov 20, 2010 at 3:57 AM, Ciaran Roarty <ciaran...@gmail.com> wrote: +1 Include binaries in repository if it is legal to do so. On 20 Nov 2010, at 01:01, Troy Howard <thow...@gmail.com> wrote: > To summarize the 3rd party dependency issues, I've made a list of the > details of the discussion: > > Including Binary Dependencies in Repository > ---------------------------------------------------------------- > > Pros > - One-step build experience; Good for new users, easy to maintain for developers > - Solid control of dependency versioning since we control the DLL > > Cons > - No debugging support for 3rd party libs (as opposed to checking in > source code of 3rd party libs) > - Could lead to 'binary bloat' in repository > - Could lead to platform specific issues (eg 32vs64 bit or other OS > platform/framework issues) > - Could lead to legal issues with redistribution > - Requires developers to do extra work to ensure they are complying > with license restrictions for redistribution ( eg, read and understand > the license and do whatever steps it requires) > > > Including Source Code Dependencies in Repository > --------------------------------------------------------------------------- > > Pros > - One-step build experience; Good for new users, easy to maintain for developers > - Full debugging support of 3rd party lib (can step through code, etc) > - Allows modification of 3rd party source, if needed. > - Fine grained control of versioning using VCS of 3rd party project > (can include a specific and move back/forwards easily) > > Cons > - Could lead to source code bloat in repository > - Requires full build environment for 3rd party lib/dependencies > - Could lead to legal issues with redistribution > - Requires developers to do extra work to ensure they are complying > with license restrictions for redistribution ( eg, read and understand > the license and do whatever steps it requires) > > > Including Source/Binary Dependencies Outside of Repository > ---------------------------------------------------------------------------- ------------ > > Pros > - No potential legal liability > - No bloat in repository of content that is not our work product > - End users/developers may choose how to setup/configure libs for their platform > - Allows 3rd party projects to control access to their content (ie: > download link could have updated version or be made non-public if they > choose to do so) > > Cons > - Confusing for new users/developers. Need to read documentation and > perform setup before they can compile > - Requires developers to do extra work to maintain > compilation-notes.txt accurately > - Could lead to unavailability of 3rd party content if URLs change or > other unforseen circumstances > > > > Let's put it to a basic vote. Please respond with on of the following > three options: > > +1 Include binaries in repository > +1 Include source in repository > +1 Include either binaries or source in repository > +1 Do not include binaries or source in repository > > > Thanks, > Troy > > -- > You received this message because you are subscribed to the Google Groups "Lucere Development" group. > To post to this group, send email to lucer...@googlegroups.com. > To unsubscribe from this group, send email to lucere-dev+...@googlegroups.com <mailto:lucere-dev%2Bunsu...@googlegroups.com> . > For more options, visit this group at http://groups.google.com/group/lucere-dev?hl=en. > -- You received this message because you are subscribed to the Google Groups "Lucere Development" group. To post to this group, send email to lucer...@googlegroups.com. To unsubscribe from this group, send email to lucere-dev+...@googlegroups.com <mailto:lucere-dev%2Bunsu...@googlegroups.com> . For more options, visit this group at http://groups.google.com/group/lucere-dev?hl=en. -- You received this message because you are subscribed to the Google Groups "Lucere Development" group. To post to this group, send email to lucer...@googlegroups.com. To unsubscribe from this group, send email to lucere-dev+unsubscribe@
The primary reason is for a clone -> build experience. This means it
would be simple to use a public build server like
teamcity.codebetter.com
Can we make this decision fairly soon. The reference to Moq has been
changed several times over the weekend with various relative paths,
with and without the version in the path. Fixing the ref or
rearranging my "lib" folder is getting tedious.
Also, a ref to StructureMap has been added.
Lastly, whoever changes the ref paths should also be responsible for
updating the "compilation_notes.txt" file.
Cheers
--
You received this message because you are subscribed to the Google Groups "Lucere Development" group.
To post to this group, send email to lucer...@googlegroups.com.
To unsubscribe from this group, send email to lucere-dev+...@googlegroups.com.
Cheers,
Ciaran
Thanks!
To post to this group, send email to lucer...@googlegroups.com.
To unsubscribe from this group, send email to
lucere-dev+...@googlegroups.com.
Obvious 'careful' doesn't mean 'paranoid'... So as long as we do due
diligence to ensure that we're complying with licensing, I don't see
that this is much of a concern.
I'd like to keep the third-party dependencies to a minimum and keep
the code isolated to specific Visual Studio projects/DLLs. This way we
can build as much as possible without dependencies.
With regard to the location of dependency storage, there is already a
directory intended for this purpose: The 'resource' directory under
trunk is meant for binary file storage. We should add a subdirectory
to resource for external libraries.
For third-party resource storage, our work repository follows this pattern:
~/trunk/resource/third-party/<organization-name>/<project-name>/<version>/<resource>.<ext>
So, for example, Moq would be:
~/trunk/resource/third-party/Clarius Consulting/Moq/4.0/Moq.dll
or Lucene.Net 2.9.2 would be:
~/trunk/resource/third-party/Apache Software
Foundation/Lucene.Net/2.9.2/Lucene.Net.dll
We find keeping it organized this way keeps track of things well and
multiple versions can live side-by-side easily, etc... i'd suggest
using the same structure here for external libraries.
Thanks,
Troy