Hello,
I am working with nbdev for the first time (what an incredible project!) and have run into a dilemma versioning exploratory notebooks. In my project I have found myself creating two categories of notebooks, the nbdev style notebooks that are used to generate the project python package and exploratory notebooks. My exploratory notebooks are something like a lab journal, organized chronologically, where I’m trying to answer a question using the project package as I’m developing it; these notebooks typically have sanity checks or examples that motivate the direction the project is moving and some thoughts in markdown.
The confusion I’m facing is that I’m not sure how to pin these notebooks to a specific tag or version of the project package generated through nbdev. I’m considering my exploratory notebooks to be one-off documents that do not need to be maintained/refactored as the project develops. Say I created a notebook with v0.0.1 of my project. Later, after I release v0.0.2, how would I document or pin my old notebook to v0.0.1 of the code, so that the results can be reproduced later if need be? So far the best idea I’ve had is to add a note at the top of the notebook, but that places the burden on my future-self to read the note and checkout an old version of my project if I ever wanted to re-run this notebook. This feels wonky to me and I suspect there is a widely used organizational pattern out there that I’m unaware of that addresses this issue (I suppose my exploratory notebooks could be considered a blog, but I didn’t see how fastpages tracks/manages notebook requirements).
I’d like to keep these exploratory notebooks in the repository as a record of my thinking during the development of my project. I suppose I could refactor each notebook to make sure they each run with the latest version of the project package, but I feel like this would undermine the intent of the notebooks, which I’m creating to journal my thinking regarding the direction of the project at a specific moment in time and state of code.
I’m looking for advice or links to examples of projects that set good examples for this type of notebook organization. Please let me know if I my aims are not clearly communicated above. Thank you in advance for any help and guidance!