Comments (13)
I'm not sure where the need for a completely empty project came from, tbh - but isn't what you are asking for already covered by the basic python project? The only thing beyond what you have in your list is essentially a blank requirements.txt
file.
from renku-project-template.
I think @jachro also is talking about not cluttering up the template with stuff the user might not use, so less than what the basic python project has -- getting rid of the requirements.txt
, environment.yml
, removing or commenting out the lines in the Dockerfile
that check thoes files, and maybe removing the extra dirs.
from renku-project-template.
I see - yes I suppose we could do that (though there are still a number of python dependencies installed because of jupyter)
from renku-project-template.
So, yes, I wanted to have something very minimal without files which I don't need and don't understand for my data science project in bash :) Actually, now I think, that if our Empty template provides something like that, then we can advertise it as something you should use if you want to do your project in any language other than R or Python. We can say smth like this: Bring your Scala project to Renku!
As @rokroskar said, I suppose we need some files to make the whole Renku machinery working fine but at least for now I was able to convince Renku not to complain and work with this files structure:
.access-token
.dockerignore
.git
.gitattributes
.gitignore
.gitlab-ci.yml
.renku
datasets
metadata.yml
refs
workflow
.renku.lock
Dockerfile
README.md
data
file
src
Of course, there are some scripts under src
and datasets under data
but I guess it's irrelevant from the issue point of view.
For the reference, the project I'm talking about renku-qa/kubas-datascience-in-bash
can be found on the DEV (stable).
from renku-project-template.
The goals:
- Create the most minimal template, just enough to be able to (a) launch a jupyterlab or rstudio session from renkulab & (b) run renku commands.
- Add documentation that explains what this template is & how to use it (which will include "best practices for merge conflicts"; and calling "git diff" to show users what gets added to their repos)
- Make it more clear how the files (& content within the files) are used in a renku project so the users know what they can delete or modify without worrying about breaking renku
Why to use this template:
- you have a project you're happy with (i.e. you're not starting from scratch) and you want to share it/make a template out of it (e.g. for a workshop or course) & continue working on it/letting others fork it from renkulab.
- AND/OR you're interested in the idea of annotating your datasets & running workflows with the renku cli.
# for building of docker images
.gitlab-ci.yml
Dockerfile
# for keeping renku metadata
.renku
# for git ignoring stuff
.gitignore # minimal case, should just have the renku pieces; {.renku.lock, .renku/tmp, .renku/cache}
# for docker ignoring stuff
.dockerignore # minimal case, just exclude .renku and .git dirs
btw these are the current template docs: https://renku.readthedocs.io/en/latest/user/templates.html
.git
.gitignore
.renku
.renku.lock
README.md
notebooks
data
.gitlab-ci.yml
.dockerignore
Dockerfile
requirements.txt
environment.yml
from renku-project-template.
So apart from the requirements.txt
and environment.yml
, this is the same as python-minimal
is it not? Do we really need a second template then?
from renku-project-template.
also README
, notebooks
, data
=> that's 5 files to take out
plus docs to add for how to merge the ones that are existing / why they're needed
Do we really need a second template then?
yes?
from renku-project-template.
oh - do you mean do we need a separate template for python on top of this new minimal? i'll defer answering that for now and suggest that we could make a "research object" template.
i think we should just keep requirements.txt
in the minimal python since it's a simple text file & easy to explain to beginners, and conda's environment.yml
isn't and we can doc how to add conda env stuff instead (or whatever else people want to use).
from renku-project-template.
The majority of merge conflicts will come from the .gitignore
- there we could probably do some clever path merging if an existing file already exists. In the case that they don't want python, should we launch the environment with VSCode inside instead and default to showing a terminal? Just dreaming here... but to me it would be weird to drop into a jupyterlab session if I expressly didn't want a python project. If I want JupyterLab I'll just make a minimal python project.
from renku-project-template.
The majority of merge conflicts will come from the .gitignore
that's because our .gitignore is really long (?); do we really need to include all of that stuff; can we not just append the few things we want to exclude for renku to the user's .gitignore? and we can let them check the changes before doing the commit.
In the case that they don't want python, should we launch the environment with VSCode inside instead and default to showing a terminal?
I haven't tried vscode via renkulab, do you have a project you can link? :D
-- also, i think it's not just about merge conflicts, it's about having random extra files cluttering your repo, which in the case of the requirements.txt
& environment.yml
files, if you delete them your image doesn't build because of the current Dockerfile template
from renku-project-template.
I don't have a VSCode example at the moment but I'd like to try to put one together. @ciyer opened SwissDataScienceCenter/renkulab-docker#83 a while back.
from renku-project-template.
cool!
imo that would be in round two of updates, since jupyterlab comes with a terminal and the ability to edit files in the gui & we include vim & people can install emacs or whatever they want.
i still think we should start with the minimal files for round one.
from renku-project-template.
yeah absolutely - as I said, I was just dreaming out loud :)
from renku-project-template.
Related Issues (20)
- minimal r project fails on environment launch
- make the renku-python version templateable HOT 3
- Update Julia template to latest image HOT 1
- templatise plug-ins/add-ins in project creation HOT 1
- Change variables in the manifest file from dictionaries to objects
- support new git sha versions of renku-python in images
- chore: update docker files to v0.7.6 HOT 2
- New template for batch execution HOT 1
- Remove "description" from base templates
- Python version out of date
- Add VNC to the standard Renku Project Template Slack HOT 1
- Set automated_template_update and immutable_template_files according to each templates' needs
- Update `renku.ini`
- Update READMEs and references to 'environment'
- Invalid patterns in `.renkulfsignore`
- Address all warnings when validating the template repository
- Add template Workflow File
- refactor the block that installs renku into a script
- add CI stub for building multiarch images
- RStudio session timeout shorter than Renku session timeout
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from renku-project-template.