linkml / linkml-project-cookiecutter

A cookiecutter for linkml projects. An equivalent of `linkml-ws new project-name`.
Creative Commons Zero v1.0 Universal
14 stars 16 forks source link

remove project.Makefile #97

Closed noelmcloughlin closed 5 months ago

noelmcloughlin commented 5 months ago

I think project.Makefile (included by Makefile) could be removed. I suspect most users ignore it, and removal helps cleanup workspace.

matentzn commented 5 months ago

I personally do not agree - we use it in SSSOM for example for test file validation, and there we plan to use it also for things like generating documentation pages eg https://github.com/monarch-initiative/monarch-documentation/blob/main/project.Makefile#L15

noelmcloughlin commented 5 months ago

Wow, did not realize some users are very technical to use the feature.

I'll update https://github.com/linkml/linkml-project-cookiecutter/issues/57#issuecomment-1921305376 with your link to say needs consideration. thanks.

matentzn commented 5 months ago

Thanks @noelmcloughlin - I have to admit that I am using Makefiles a lot, and this specific pattern, having a root Makefile that is managed by the project template and a project.Makefile that is used to extend the content of the Makefile (and, in some cases, overwriting it, we use a lot in frameworks like the Ontology Development Kit, see, eg. here:

https://github.com/obophenotype/human-phenotype-ontology/blob/3a4062111bc683b9c9d1e126eb62a6ed5e44ad28/src/ontology/Makefile#L840

So we inherit all variables, all goals etc, and overwrite or extend what is necessary. Sometimes, if we see the same code being extended in many different projects (multi language support is an example from the ontology world, or the use of design patterns) we extend the Makefile to supply this feature to everyone.