Open joergboe opened 6 years ago
list seems to be complete This would clean-up the release archive, but in most cases not reduce its size noticeable
I found that toolkits handle the release archive differently. I would like to establish a common understanding. I would like to have this as a common guideline in the wiki if there are no objections.
+1
I think there's also a place for a toolkit only archive to be part of a release. That would be just the toolkit, maybe even without the docs, no samples.
The list is missing C++ headers required by operators, e.g. toolkits like topology, json that have all their C++ code in headers to keep the toolkit platform indendent.
Also missing Python modules, packages which are under opt
including ones provided by the user under opt/python
and those installed under opt/.__splpy
by spl-python-extract
.
the LICENCE.md and README.md : required
Can you expand on how this would work?
I image most install a toolkit release like I do:
cd $HOME/toolkits
tar xzf ~/Downloads/NEW_TOOLKIT_RELEASE.tgz
If the licence and readme files are at the top level then they will overwrite the last toolkit install I did.
Note that (I think) samples
works as its sub-directories are just added into the existing ones under $HOME/toolkits/samples
, which is why samples in a toolkit should have a unique name.
Actually I think this is overly prescriptive, trying to list every type of file and if it should be included or not. For example, it misses .spl
files!
Maybe some higher level rules are enough?
A release contains toolkit(s), documentation and samples. The main purpose is for the toolkit to be used in Streams applications. Documentation is included and samples should be complete and self-explanatory to allow users to understand the toolkit.
Artifacts required to create the toolkit are not included in a release, the complete repo is the mechanism to modify and build a toolkit. Items such as DEVELOPMENT.md
, make/ant files, intemediate build files (e.g. .class
files), git aritfiacts etc. are not included in a release.
Yes we should mention the general rule for the file assembly. But anyway I think the list is helpful as an guideline. The list has no claim to completeness. It must be adapted to individual toolkit requirements.
There is more missing:
A further step is to define, how the archive should be organized to enable the user to install more than one toolkit release in parallel.
And another issue is the place of the generated doc-folder. Currently it is often placed into the toolkit directory. I would propose that the doc folder is placed at the top level (like the samples folder). This way, the toolkit folder alone becomes the minimalistic toolkit installation.
The defined location for documentation artifacts in a toolkit is doc
.
Placing the doc folder at the top level will not work as it can't be used when multiple toolkits are installed to the same location, e.g. $HOME/toolkits
.
When making a toolkit release we should upload an archive with the binary of the tookit that customers can just download an use. What files should be included in these archive? This list is intended for all standard toolkits (not the topology toolkit).
samples
directory : requiredtests
directory : noLICENCE.md
andREADME.md
: requiredDEVELOPMENT.md, GRADUATION_STATUS.md, TESTING.md
... : noWhat artefacts should the toolkit directory include:
toolkit.xml, info.xml
: required<namspace>/<operator>
) : required<namspace>/<operator>
) : requiredbin, impl/bin
) : requiredlib, impl/lib, impl/java/lib
) : requiredopt
orext
folder) : yes, if licence allows re-distributionimpl/nl
; .xlf and .dat files) : requiredetc
folder) : requiredWhat artefacts should the
samples
directory include:etc
folder) : requiredetc
folder) : required.gitignore
... ) : noThe toolkit release archive is not intended to be used if the user wants to re-compile the toolkit. Users who want to compile the toolkit should use the source archive that always exists.
Does anyone have any objections or additions?