Submitting author: @samuelduchesne (Samuel Letellier-Duchesne)
Repository: https://github.com/samuelduchesne/archetypal
Version: v1.3
Editor: @kyleniemeyer
Reviewer: @brynpickering, @ThibaultMarzullo
Archive: 10.5281/zenodo.3885587
Status badge code:
HTML: <a href="https://joss.theoj.org/papers/54bf8f9bac246d1e5e9a60f43647af07"><img src="https://joss.theoj.org/papers/54bf8f9bac246d1e5e9a60f43647af07/status.svg"></a>
Markdown: [](https://joss.theoj.org/papers/54bf8f9bac246d1e5e9a60f43647af07)
Reviewers and authors:
Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)
@brynpickering & @ThibaultMarzullo, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @kyleniemeyer know.
β¨ Please try and complete your review in the next two weeks β¨
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @brynpickering, @ThibaultMarzullo it looks like you're currently assigned to review this paper :tada:.
:star: Important :star:
If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews πΏ
To fix this do the following two things:
For a list of things I can do to help you, just type:
@whedon commands
For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
π @samuelduchesne @brynpickering @ThibaultMarzullo the actual review takes place in here. Please see the instructions above. Thanks!
Hi @samuelduchesne, I'm going through the paper and the software now. It's an interesting idea and work.
Paper:
It would benefit from the addition of some context as well as a couple of clarifications, see this issue for more details.
Documentation:
Generally speaking it seems incomplete, the user is left to finding out on their own how to use _archetypal_ for any task other than converting models. See this issue for more details.
I'll get back to you as soon as I run the tests, the only issue is that I won't be able to test the TRNSYS model since I don't own a license.
Hey @samuelduchesne, just had a chance to go through this. A tool to help collate building archetypes and work on collections of models seems incredibly useful, but I've come across a few issues that would need addressing to make sure it is a sufficiently robust piece of software for general use. It looks like neither myself or @ThibaultMarzullo will be able to test the TRNSYS functionality, so some demonstration from your end might be necessary to convince us on that...?
see https://github.com/samuelduchesne/archetypal/issues/42 and https://github.com/samuelduchesne/archetypal/issues/45
I'm not sure this has actually been tested on MacOS. The installation instructions do cover it, but I have hit a few roadblocks along the way, and some of the inbuilt tests fail. I would consider a conda forge version of archetype, where you can do OS-specific testing, for a more robust package.
see https://github.com/samuelduchesne/archetypal/issues/43
Given that E+ is such an integral part of your software, it would be good to have a better handle on allowed E+ versions and dealing with a. IDF files without explicit versions and b. use of v.9.2.0 (current latest E+ version, currently fails).
see https://github.com/samuelduchesne/archetypal/issues/44
This is currently seriously lacking, with errors in the little example code that there is. There seems to be a lot of functionality in the software, but it is all lost due to lack of tutorial documentation, and limited API method documentation. Using e.g. in-built E+ example models / DOE benchmark models to show off loading in multiple files, comparing DataFrames, comparing solve times, etc. is really necessary to help users understand the software and its benefits. As is, I don't feel able to really play around with the software as I don't know what most of the possibilities are without delving into each function in the core code.
see https://github.com/samuelduchesne/archetypal/issues/46, https://github.com/samuelduchesne/archetypal/issues/43 and https://github.com/samuelduchesne/archetypal/issues/45
I think tests are currently lacking, since I've seemingly broken the software already on multiple occasions (some of which is MacOS-specific). In some instances, I would expect to see a much clearer error message (e.g. E+ version issues), which requires catching and processing some of the more likely strange ways a user could abuse the software. But in other cases, the package fails when following the documentation...
see https://github.com/samuelduchesne/archetypal/issues/47
I'm happy with the paper, I get a good grasp of what I could do with archetypal, and you cite sources for the methods which underpin what you do. It might be nice to see a table of performance metrics to compare running a new E+ model, cached E+ model, and 'shoeboxed' E+ model, to show the relevant benefits of key archetypal functionality.
Hi @brynpickering and @ThibaultMarzullo! Sorry for the late reply on my end. I have been quite busy with the submission of my thesis this week. Now it is done! so I can commit to this review process! πͺ
You have provided valuable comments and uncovered issues we weren't able to pick even with our CI integration. If you do not mind letting us some time to get over all the issues, we will try to address them as soon as possible.
For the issue of TRNSYS, how about we show a proof of use as a screencast video maybe? @louisleroy5, do you have some thoughts? Could be included in the documentation π€
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
Hi @samuelduchesne, just wanted to check in and see how your work was going.
Hi @kyleniemeyer, we are making good progress! We received valuable comments and are addressing them. Thanks for checking with us!
@whedon generate pdf from branch develop
Attempting PDF compilation from custom branch develop. Reticulating splines etc...
@whedon generate pdf from branch develop
Attempting PDF compilation from custom branch develop. Reticulating splines etc...
@samuelduchesne @kyleniemeyer β what is the next action on this submission?
@labarba β still a few things to address. With my thesis defense just last week, things were pretty hectic. Iβll finish the review right after the holidays. Sorry if it takes so long; I want this to be right.
π @samuelduchesne β Checking in again on this JOSS submission. What is your timeline now?
Hi! Working on this now. I will publish some changes this week and check-in with the reviewers. Should be able to finish up by the end of next week.
...It looks like neither myself or @ThibaultMarzullo will be able to test the TRNSYS functionality, so some demonstration from your end might be necessary to convince us on that...?
Hi @ThibaultMarzullo and @brynpickering, regarding the TRNSYS functionality, I recorded the archetypal convert
method that translates an IDF file to a TRNSYS model: https://youtu.be/jB5PhQ2YzKg.
The command has the --trnsidf_exe
option pointing to the path of the executable which was located in the docker folder (the executable itself is not pushed to GitHub since it is a proprietary software). The two other arguments are the IDF file path and the weather file path. The output folder is not provided (which defaults to the current directory).
@whedon generate pdf from branch develop
Attempting PDF compilation from custom branch develop. Reticulating splines etc...
PDF failed to compile for issue #1833 with the following error:
sh: 0: getcwd() failed: No such file or directory
pandoc: 10.21105.joss.01833.pdf: openBinaryFile: does not exist (No such file or directory)
Looks like we failed to compile the PDF
@whedon generate pdf from branch develop
Attempting PDF compilation from custom branch develop. Reticulating splines etc...
PDF failed to compile for issue #1833 with the following error:
sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory
pandoc: 10.21105.joss.01833.pdf: openBinaryFile: does not exist (No such file or directory)
Looks like we failed to compile the PDF
@whedon generate pdf from branch develop
Attempting PDF compilation from custom branch develop. Reticulating splines etc...
Hi @labarba @ThibaultMarzullo @brynpickering! What are the next steps here?
Hi @brynpickering and @ThibaultMarzullo, it looks like @samuelduchesne has done some work in response to your review comments. Can you take another look now?
Hi @samuelduchesne, thanks for taking the time to address our issues and update archetypal. It looks to have changed markedly since the first set of reviews.
I've checked off most of the items on my review checklist, here are the outstanding items that I'd like some clarification on:
I'd like to re-do this, since I had issues the first time around. But it would be best on a stable release, which there doesn't seem to have been since July last year. Do you have an idea of your release schedule?
You talk about speed gain possibilities (inc. from caching) in your paper, but I don't see anything in the paper or the documentation to back up this claim.
I've also created a minor issue on the paper on your repo.
Hi @brynpickering! Regarding the release schedule, I was thinking of scraping older releases and reissuing a version 1.0 once the review process is complete. I take it that the first public-ready version of a package is typically version 1.0.0. I could release the current state of the develop branch as version 0.9, which I would then upload to PyPI. Then you could try the install procedure using pip install archetypal
. Is that a good a plan?
As for the caching capabilities, archetypal caches the IDF file as well as simulation results. For the IDF file, this means that if you run an "older than 9.2" IDF file, archetypal will transition a copy of that file to version 9.2 (essentially making a copy beforehand) before running the simulation. The next time the run_eplus
or the load_idf
method is called, the cached (transitioned) file will be readily available and used; This helps to save some time with reproducible workflows as transitioning files can take quite some time.
As for simulation results. After run_eplus
is called, the EnergyPlus outputs (.csv, sqlite, .mtd, .mdd, etc.) are cached in a folder structure than is identified according to the simulation parameters; those parameters include the IDF file itself (if the file content has changed, new simulation is required), whether an annual or design day simulation is executed, and a bunch of other parameters. This means that if run_eplus
is called a second time (let us say after you reopen an old Jupyter Notebook), the run_eplus
will bypass the EnergyPlus executable and retrieved the cached simulation results instead. This has two advantages, the first one being a quicker workflow and the second one making sure that whatever run_eplus
returns fits the parameters used with the executable. Let me give you a real world example.
Let us say you are using a jupyter notebook, you would typically do the following:
import archetypal as ar
ar.config(use_cache=True, log_console=True)
ar.run_eplus(
eplus_file="/Applications/EnergyPlus-8-9-0/ExampleFiles/BasicsFiles/AdultEducationCenter.idf",
weather_file="/Applications/EnergyPlus-8-9-0/WeatherData/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw",
design_day=True,
return_files=True,
annual=False,
return_idf=True,
expandobjects=True,
prep_outputs=True,
)
Since the file is a version 8.0 IDF file, archetypal is going to transition the file to EnergyPlus 9.2 (or any other version specified with the ep_version
parameter) and execute EnergyPlus for the design_day only.
The above command yields a list of output files thanks to the return_files=True
parameter. These will be located in a cache folder specified by the settings.cache_folder variable (this folder can be changed in using the ar.config()
method).
[None,
<archetypal.idfclass.IDF at 0x10fb9f4a8>,
[Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4tbl.csv'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.end'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/AdultEducationCenter.idf'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.dxf'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.eso'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.mtd'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.bnd'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.sql'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.mdd'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4tbl.htm'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.shd'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.expidf'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.err'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/eplus_run_AdultEducationCenter.idf_2020_02_27.log'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.mtr'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/sqlite.err'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.audit'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.eio'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/d04795a50b4ff172da72fec54c6991e4/d04795a50b4ff172da72fec54c6991e4out.rdd')]]
Now, if I change the command above to annual=True
and set design_day=False
, then run_eplus should return the annual simulation results (which do not exist yet).
ar.run_eplus(
eplus_file="/Applications/EnergyPlus-8-9-0/ExampleFiles/BasicsFiles/AdultEducationCenter.idf",
weather_file="/Applications/EnergyPlus-8-9-0/WeatherData/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw",
design_day=False,
return_files=True,
annual=True,
return_idf=True,
expandobjects=True,
prep_outputs=True,
)
Now, since the original IDF file (the version 8.9 one) has not changed, archetypal is going to look for the transitioned file that resides in the cache folder and use that one instead of retransitioning the original file a second time. On the other hand, since the parameters of run_eplus
have changed (annual instead of design_day), it is going to execute EnergyPlus using the annual method and return the annual results (see that the second-level folder id has changed from d04795a50b4ff172da72fec54c6991e4
to 9efc05f6e6cde990685b8ef61e326d94
):
[None,
<archetypal.idfclass.IDF at 0x1a2c7e0128>,
[Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/AdultEducationCenter.idf'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.mdd'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.shd'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94tbl.htm'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.audit'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.mtr'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.err'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.rdd'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.expidf'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.eio'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.dxf'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.end'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94tbl.csv'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.eso'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.bnd'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.mtd'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/sqlite.err'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/9efc05f6e6cde990685b8ef61e326d94out.sql'),
Path('cache/e8f4fb7e50ecaaf2cf2c9d4e4d159605/9efc05f6e6cde990685b8ef61e326d94/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw')]]
If I were to rerun the first code block (annual simulation) then it returns the cached results very quickly:
Successfully parsed cached idf run in 0.00 seconds
Hopefully, this makes a little bit more sense!
EDIT: noticed that you started on v1.0, not v0.1, at start of your project, so updated comments on versioning accordingly.
RE versioning: there's no reason to be on version 1.0 once it's ready for a public release; Pandas only released their version 1.0 this year, having reached v0.25! There's a lot of advice online about versioning (e.g. here) and I'm only an anecdotal source of wisdom on it. First off, you shouldn't delete historical versions, as it could cause all sorts of downstream issues (e.g. if some other package depends on an existing version of archetypal, everything will break). As to how to version your next release, I would consider how much of your API has updated since July last year. If the API hasn't changed, then you could just increment a minor version following the publishing of the JOSS paper. If it has changed (i.e. the methods are different, require different arguments, or return different objects), then I'd opt for version 2.0.
For the time being I can also just install archetypal from a local clone of your repository, if you'd prefer to release your next version only after the completion of the JOSS review.
RE caching: it does make sense. I would even add your detailed response to your documentation, to communicate it with potential users. What I was hoping for for this paper was some quantification of the performance increase. I.e. what is the difference in run-time thanks to caching. This could be mentioned in the paper and tabulated in the documentation. It should just be a matter of running the real world example you give here and recording time/memory consumption at each step.
Dear authors and reviewers
We wanted to notify you that in light of the current COVID-19 pandemic, JOSS has decided to suspend submission of new manuscripts and to handle existing manuscripts (such as this one) on a "best efforts basis". We understand that you may need to attend to more pressing issues than completing a review or updating a repository in response to a review. If this is the case, a quick note indicating that you need to put a "pause" on your involvement with a review would be appreciated but is not required.
Thanks in advance for your understanding.
_Arfon Smith, Editor in Chief, on behalf of the JOSS editorial team._
:wave: all, just a friendly check-in to see how things are going with this review?
I believe we are ready to move forward with the publication of the code?
@samuelduchesne sorry to lose track of this a bitβI didn't see a response to @brynpickering's last comments.
Also, it looks like @ThibaultMarzullo also had some missing items in the checklist.
I've updated the checklist, I'm happy with this.
Would appreciate seeing an update to the paper / docs on cache performance, otherwise happy with everything π
Hi @samuelduchesne, looks like we just need a few edits to the paper. Please let me know when you've done that, and I'll do my final checks.
:wave: @samuelduchesne - JOSS is now open again for submissions and we're actively trying to wrap up existing reviews.
Do you think you might be able to complete these last few items soon?
Yes Iβll try to wrap things up by the end of the month. Happy to see JOSS is fully back online!
@brynpickering, I have addressed the caching in https://github.com/samuelduchesne/archetypal/pull/87
@whedon generate pdf
Hi @samuelduchesne, I think we're ready to wrap things up here.
Can you make these final small edits to the paper?
archetypal is a Python package that helps handling collections of such archetypes and to enabling the interoperability between these energy simulation platforms to accelerate the creation of reliable urban building energy models.
seems incorrect, because of the "and to enabling" (it's also a bit long and complicated). I think changing that to "to enable" helps fix it, but you might consider revising the sentence overall for clarify.
- in the paragraph about caching, I think API should be capitalized.
Once you've made those changes, please archive your repository on Zenodo and provide the DOI here.
Hi @kyleniemeyer, thanks for the feedback. Paper updated with https://github.com/samuelduchesne/archetypal/commit/e9232f26c83247249b7d12d228e53480bcf4cf19 and following DOI for zenodo files: 10.5281/zenodo.3885587
@whedon generate pdf
@whedon set 10.5281/zenodo.3885587 as archive
OK. 10.5281/zenodo.3885587 is the archive.
@whedon accept
Attempting dry run of processing paper acceptance...
Reference check summary:
OK DOIs
- 10.1016/j.enbuild.2017.01.030 is OK
- 10.1016/j.buildenv.2015.12.001 is OK
- 10.2172/90674 is OK
MISSING DOIs
- None
INVALID DOIs
- None
:wave: @openjournals/joss-eics, this paper is ready to be accepted and published.
Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/1471
If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/1471, then you can now move forward with accepting the submission by compiling again with the flag deposit=true
e.g.
@whedon accept deposit=true
@whedon accept deposit=true
Doing it live! Attempting automated processing of paper acceptance...
π¦π¦π¦ π Tweet for this paper π π¦π¦π¦
π¨π¨π¨ THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! π¨π¨π¨
Here's what you must now do:
Party like you just published a paper! πππ¦ππ»π€
Any issues? notify your editorial technical team...
πππ!
Congrats @samuelduchesne on your article's publication in JOSS!
Many thanks to @brynpickering and @ThibaultMarzullo for reviewing this submission.
:tada::tada::tada: Congratulations on your paper acceptance! :tada::tada::tada:
If you would like to include a link to your paper from your README use the following code snippets:
Markdown:
[](https://doi.org/10.21105/joss.01833)
HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.01833">
<img src="https://joss.theoj.org/papers/10.21105/joss.01833/status.svg" alt="DOI badge" >
</a>
reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.01833/status.svg
:target: https://doi.org/10.21105/joss.01833
This is how it will look in your documentation:
We need your help!
Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:
@samuelduchesne FYI, it looks like the PDF isn't yet showing up on the journalβthat should just be a temporary issue
It's there for me
Same here. Thank you everyone!
I signed up to become a reviewer π
Most helpful comment
I signed up to become a reviewer π