"At phase one-stage one, will we be just migrating the contract and tests"
Yes.
Regarding third-party dependencies...
Neither source code or binaries of dependencies should be included in
the repository. We don't want to redistribute content from other
projects. Instead, the file 'compilation-notes.txt' should include
instructions on how to download the appropriate binary file or source
code, where to place it and how to configure it. See that file for
reference.
For example.. If you wanted to include MyCoolLibrary.dll. You would
edit compilation-notes.txt, adding to the dependencies description
there.
Example:
----
Dependencies
--------------------
This project depends on MyCoolLibrary.dll version 3.5.2.
File download link:
http://mycoollibrary.org/downloads/MyCoolLibrary/3.5.2/MyCoolLibrary-3.5.2.zip
Unzip the file 'MyCoolLibrary.dll' and place it in the following location:
If this file (compilation-notes.txt) is located at:
C:\repository\lucere\trunk\compilation-notes.txt
The DLL should be located at:
C:\repository\lib\MyCoolLibrary\3.5.2\MyCoolLibrary.dll
----
This way, anyone who wants to build the project can follow the
instructions and setup their compilation environment correctly.
This is one reason why I hope to keep the dependencies of the project
to a minimum.
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.
> For more options, visit this group at http://groups.google.com/group/lucere-dev?hl=en.
>
>
Thanks,
Troy
The reason for this is for cross platform compatibility; 32 vs 64 bit,
Linux vs Windows... etc. A binary is built for a specific execution
environment. This is less of an issue for .NET but still a significant
concern.
Regarding versioning... Ideally, the compilation-notes.txt would be
updated with setup instructions and references to current download
locations for the correct versions. This becomes a problem when the
correct versions are not readily available for download. In which case
we should start preserving libraries in the repository.
Another significant concern is legality. If we do include external
content in the library we must be sure that we are complying with all
restrictions and provisions of the license for that content. We may
need to include copyright, license or other legal documents along with
the content to ensure that we are legally redistributing it. I prefer
to avoid the complexities of the law by just not including them in
public repositories and by keeping third-party references to a
minimum.
At work, in our private repository, we do preserve specific versions
in our repository, often as binaries, sometimes as source. In that
context, we don't have to worry about legality since it's not public.
Anyhow, I realize it's a bit of a hassle. Also.. this is just my
suggestion and reasons. We don't have to do it this way if you all
would rather not. Mostly, since I'm not an expert on the topic of
software legality, I just avoid the topic and workaround it.
Thanks,
Troy
Then we don't need to re-distribute but the user can install the third
party dependencies quickly.
Mark