Submitting author: @fospald (Felix Ospald)
Repository: https://github.com/fospald/fibergen
Version: v1.0
Editor: @jedbrown
Reviewer: @tisaac, @ctdegroot
Archive: 10.5281/zenodo.2556861
Status badge code:
HTML: <a href="http://joss.theoj.org/papers/add4f02dcedfaae8f81da200000d64ee"><img src="http://joss.theoj.org/papers/add4f02dcedfaae8f81da200000d64ee/status.svg"></a>
Markdown: [](http://joss.theoj.org/papers/add4f02dcedfaae8f81da200000d64ee)
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) 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.)
@tisaac & @ctdegroot, 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.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @jedbrown know.
✨ Please try and complete your review in the next two weeks ✨
paper.md
file include a list of authors with their affiliations?paper.md
file include a list of authors with their affiliations?Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @tisaac, it looks like you're currently assigned as the reviewer for 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
Attempting PDF compilation. Reticulating splines etc...
PDF failed to compile for issue #1027 with the following error:
/app/vendor/ruby-2.4.4/lib/ruby/2.4.0/find.rb:43:in block in find': No such file or directory - tmp/1027 (Errno::ENOENT)
from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/find.rb:43:in
collect!'
from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/find.rb:43:in find'
from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-626f701dd525/lib/whedon/processor.rb:57:in
find_paper_paths'
from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-626f701dd525/bin/whedon:32:in prepare'
from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/command.rb:27:in
run'
from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in invoke_command'
from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor.rb:387:in
dispatch'
from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/base.rb:466:in start'
from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-626f701dd525/bin/whedon:98:in
load'
from /app/vendor/bundle/ruby/2.4.0/bin/whedon:23:in
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@arfon Do you know why this review issue was created with the repository linked to https://fospald.github.io/fibergen/ instead of the repository from the pre-review issue #986? (I edited it before asking whedon to regenerate.)
@tisaac @ctdegroot Welcome! The comments from whedon above outline the review process. I'll be watching this thread if you have any questions. Thanks!
@jedbrown, is a github release version necessary (submission has no tagged releases)? I think it _should_ have a release, but as I understand it, the reviewed version will get a zenodo doi or similar which is what is actually important to identifying what was reviewed.
@tisaac A tag should be made after the review (which may include new commits to the software), as part of archiving (using Zenodo or similar). It isn't necessary at this stage.
I'm checking off "Does the full list of paper authors seem appropriate and complete?", but the second commit (fospald/fibergen@c6a91c98e) appears to be an import an existing project, so I'm relying on the honesty of the submitting author.
I'm the original author of every line of the code and all demos, etc.
I did not use github right from the beginning for the project. I'm adding the project because research and publications are done.
Hi, what to do next?
@ctdegroot How is your review going?
@jedbrown Working on the review. Hope to finish next week.
@fospald I am supposed to check "Does the release version given match the GitHub release (2018.1)?", but the GitHub repo shows no releases tagged. Can you clarify this for me?
@fospald I read the review above and can see that the release issue has already been discussed.
_Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems)._ I don't see any examples of how to use the code. If there are some, can you please tell me where they are and please put something in the README about these.
_Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support_ I don't see any guidelines for how third parties can contribute to the software. Can you add something to the README?
@fospald Where are the test cases located? To what extent do they cover the code?
I cannot find any documentation of the code API. It seems that all of the core code is stuffed into the 27,000 line fibergen.cpp. How would one go about understanding the code and potentially working with it, without the GUI? Maybe try Doxygen to at least give a basic bit of documentation?
@fospald I am supposed to check "Does the release version given match the GitHub release (2018.1)?", but the GitHub repo shows no releases tagged. Can you clarify this for me?
I will make only minor changes to the project and keep everything compatible. I don't want to maintain several branches. There will be no future releases with big changes.
_Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems)._ I don't see any examples of how to use the code. If there are some, can you please tell me where they are and please put something in the README about these.
You run the GUI and then you can select one of the demos (located in the demo directory).
See here
The editor gives help about the available settings in the project file.
See here
_Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support_ I don't see any guidelines for how third parties can contribute to the software. Can you add something to the README?
Ok. I added a "Contributing" section in the README.
@fospald Where are the test cases located? To what extent do they cover the code?
@ctdegroot The test cases are located in fibergen.cpp at line 23113 to 24194.
The tests cover core math operations, functions to compute geometric intersections, material laws (derivatives), solver operators for various methods.
I cannot find any documentation of the code API. It seems that all of the core code is stuffed into the 27,000 line fibergen.cpp. How would one go about understanding the code and potentially working with it, without the GUI? Maybe try Doxygen to at least give a basic bit of documentation?
@ctdegroot End users should use the GUI and should not do any coding.
But I understand the issue. I will try my best add some documentation with Doxygen and reply when I'm done. Also I know that the single file concept is not ideal. Limited time for the project...
@ctdegroot I added a Doxygen documentation. You have to
git pull
cd doc/doxygen
make (or just doxygen)
firefox html/index.html
(also added this to the README.md)
@fospald Where are the test cases located? To what extent do they cover the code?
@ctdegroot The test cases are located in fibergen.cpp at line 23113 to 24194.
The tests cover core math operations, functions to compute geometric intersections, material laws (derivatives), solver operators for various methods.
@fospald Can you pull the test cases out of this file? It would be a lot easier for users to learn the code from the test cases if they are easier to find.
@ctdegroot I added a Doxygen documentation. You have to
git pull
cd doc/doxygen
make (or just doxygen)
firefox html/index.html
(also added this to the README.md)
Ok, this helps. I don't think the code structure is ideal by any means. It would be much better to create different header files and source files for different purposes. It's acceptable for the review though. I won't insist on this.
@fospald I am getting an error "Could NOT find OpenMP_C (missing: OpenMP_C_FLAGS OpenMP_C_LIB_NAMES)", but OpenMP is not listed as a dependency.
@fospald I am getting an error "Could NOT find OpenMP_C (missing: OpenMP_C_FLAGS OpenMP_C_LIB_NAMES)", but OpenMP is not listed as a dependency.
@ctdegroot fixed that
@fospald Can you pull the test cases out of this file? It would be a lot easier for users to learn the code from the test cases if they are easier to find.
@ctdegroot Yes I can, but the test cases are pretty low level and the user should use only XML or Python for doing something. I don't think the test cases are helpful for anybody, except maybe developers.
I will try to also generate a documentation for the Python interface and a short tutorial/help for the GUI and XML files. Ok?
Yes I can, but the test cases are pretty low level and the user should use only XML or Python for doing something. I don't think the test cases are helpful for anybody, except maybe developers.
@fospald Ok. This review is a bit strange for me because normally the code is made accessible to developers as well as users. I suppose that is fine if the scope is made clear.
@jedbrown Can you help clarify the position of JOSS on GUI-only type software contributions? There's not much available here to understand the code, but the GUI is well documented.
I can solicit more specific input from the editorial board, but the policy states (among other points):
It doesn't really matter whether the interface is a GUI, a library, or something else, but it does matter that the software provide a good platform for research.
@jedbrown This package does seem to provide a platform for research. I was a bit unsure what to do because the code can’t really be understood without a lot of effort.
I’ll finish my review once the installation issues I’m having are solved.
It's fair to use your judgment about what a researcher would need and, for example, to ask for improved code documentation or pointers for researchers who wish to extend the package.
I’ll finish my review once the installation issues I’m having are solved.
@ctdegroot can I help you with the installation issues?
@fospald I submitted an issue on the repository; let's discuss there. I have OpenMP installed, but CMake isn't finding it. I'm not that familiar with CMake, so if the error message gives you any clues, please let me know.
@ctdegroot I added a tutorial and Python interface docstring to the documentation/source code.
@ctdegroot Do you need help with boost.python? Can you file an issue for that?
@ctdegroot Also have a look at
https://github.com/fospald/fibergen#troubleshooting
regarding boost-python. I will try, If I can somehow automate this better.
Created an issue about boost-python:
fospald/fibergen#6
Having an issue now about ITK:
fospald/fibergen#7
@ctdegroot ITK is optional. There must be another error message if it does not compile.
@jedbrown @ctdegroot How to continue here?
@fospald The ITK issue is solved but there is another package that needs to be installed on my system and my package manager doesn’t include it. I’ll have to install manually. I haven’t really had a chance to work on it this week (end of teaching semester) but I will get back to it as soon as I can.
@ctdegroot I can also just say that MacOS is not supported yet, if it is too time consuming.
@fospald I’ll try on Linux so that I can finish my review sooner
@ctdegroot I really appreciate that you test this on MacOS. You are the first. It would be really beneficial for other users as well. But it is your decision.
@fospald I can definitely help work out the issues on MacOS, since I bet this will be beneficial for your users. I'll do Linux as well so that I can at least verify everything works there first.
@fospald Seems like I have fixed all of the remaining cmake dependency issues. The last one was to install boost-numeric-bindings. I am now having the following error:
fatal error: 'boost/gil/extension/io/png_dynamic_io.hpp' file not found
Any idea where this comes from?
Also, I should note that I had to set the following in the file CMakeLists.txt
:
set (CMAKE_CXX_STANDARD 11)
Otherwise there were fatal errors due to templates not having a space between the angled brackets, i.e. (">>" vs "> >"). Seems the clang compiler is picky about this.
@fospald I also noted that there were errors because my host name had periods in it, so I added the following to CMakeLists.txt
:
STRING(REPLACE "." "_" HOST_NAME ${HOST_NAME})
fatal error: 'boost/gil/extension/io/png_dynamic_io.hpp' file not found
Any idea where this comes from?
@ctdegroot Looks like boost gill is missing an extension. Do you have libpng and zlib installend? Maybe there is some boost-gil-png-dev extension package? I will try to avoid inclusion of this header.
Do you have the "gil/extension/io/png_io.hpp" header?
@ctdegroot Looks like since Boost 1.68, Boost.GIL is a separate module.
https://github.com/boostorg
Not sure if this solves the issue, but then you maybe have to install this module separately with your installer. I'll update the CMake file.
@fospald Ok thanks for the updates. I do have libpng and zlib installed. I will look into installing Boost.GIL separately and hopefully that solves it.
@fospald I've just installed the headers for boost.gil but as you can see from the repo that you linked, the png_dynamic_io.hpp and png_io.hpp headers are not present in that version.
@ctdegroot In boost 1.68 they changed the GIL headers completely. I tried to fix this now.
If there is still an error let me know. It is probably line 7054 of fibergen.cpp. You can temporarily disable this line in this case until I have a fix.
Testing on Linux with boost-1.68 and python-3.7, I need the following (i.e., suggest eliminating the switch unless it's needed for some reason).
diff --git i/CMakeLists.txt w/CMakeLists.txt
index 665655d..bad9ce8 100644
--- i/CMakeLists.txt
+++ w/CMakeLists.txt
@@ -116,7 +116,7 @@ SET(Boost_USE_STATIC_RUNTIME OFF)
IF(APPLE)
SET(Boost_Python python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR})
ELSE()
- SET(Boost_Python python-py${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR})
+ SET(Boost_Python python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR})
ENDIF()
# TODO: Boost >= 1.68: also add gil component?
FIND_PACKAGE(Boost REQUIRED COMPONENTS system program_options thread ${Boost_Python} iostreams filesystem)
My build still fails (gcc-8.2.1).
/bin/c++ -DFFTWF_ENABLED -DFG_PYTHON_HEADER_NAME=\"/home/jed/joss/fibergen/build/joule/PythonModuleHeader_joule.h\" -DHOST_NAME=joule -DLIB_BUILD -DOPENMP_ENABLED -I/usr/include/python3.7m -
I/usr/lib/python3.7/site-packages/numpy/core/include -O3 -march=native -DNDBUG -Wall -Wno-unknown-pragmas -Wno-unused-variable -Wno-unused-local-typedefs -Wno-long-long -fopenmp -O3 -DNDEBUG
-std=gnu++11 -o CMakeFiles/fibergen_joule.dir/src/fibergen.cpp.o -c /home/jed/joss/fibergen/src/fibergen.cpp
/home/jed/joss/fibergen/src/fibergen.cpp: In member function ‘void FiberGenerator<T, DIM>::writeDistanceMap(const string&, const boost::numeric::ublas::c_vector<T, DIM>&, const boost::numeric
::ublas::c_vector<T, DIM>&, const boost::numeric::ublas::c_vector<T, DIM>&, std::size_t, std::size_t, T, T, T, bool, int) const’:
/home/jed/joss/fibergen/src/fibergen.cpp:7054:49: error: no matching function for call to ‘write_view(const string&, const const_view_t)’
gil::write_view(filename, gil::const_view(img));
^
In file included from /usr/include/boost/gil/extension/io/png/write.hpp:29,
from /usr/include/boost/gil/extension/io/png.hpp:23,
from /home/jed/joss/fibergen/src/fibergen.cpp:150:
/usr/include/boost/gil/io/write_view.hpp:40:6: note: candidate: ‘template<class Writer, class View> void boost::gil::write_view(Writer&, const View&, typename boost::enable_if<typename boost$
:mpl::and_<typename boost::gil::detail::is_writer<Writer>::type, typename boost::gil::is_format_tag<typename Reader::format_tag_t>::type, typename boost::gil::is_write_supported<typename boo$
t::gil::get_pixel_type<View>::type, typename Writer::format_tag_t>::type>::type>::type*)’
void write_view( Writer& writer
^~~~~~~~~~
/usr/include/boost/gil/io/write_view.hpp:40:6: note: template argument deduction/substitution failed:
/usr/include/boost/gil/io/write_view.hpp: In substitution of ‘template<class Writer, class View> void boost::gil::write_view(Writer&, const View&, typename boost::enable_if<typename boost::m$
l::and_<typename boost::gil::detail::is_writer<Writer>::type, typename boost::gil::is_format_tag<typename Reader::format_tag_t>::type, typename boost::gil::is_write_supported<typename boost:$
gil::get_pixel_type<View>::type, typename Writer::format_tag_t>::type>::type>::type*) [with Writer = const std::__cxx11::basic_string<char>; View = boost::gil::image_view<boost::gil::memory_$
ased_2d_locator<boost::gil::memory_based_step_iterator<const boost::gil::pixel<unsigned char, boost::gil::layout<boost::mpl::vector1<boost::gil::gray_color_t> > >*> > >]’:
/home/jed/joss/fibergen/src/fibergen.cpp:7054:49: required from here
(several screens of template-related errors follow). Commenting that line allows the build to complete (5 minutes to build that one source file).
@fospald Sorry for the delay since your latest update. The code does compile with line 7054 commented out.
@fospald When I run fibergen-gui
, I get the following error:
Traceback (most recent call last):
File "/Users/ctdegroot/GitRepos/fibregen/bin/../gui/main.py", line 4, in <module>
import fibergen_gui as fg_gui
File "/Users/ctdegroot/GitRepos/fibregen/lib/fibergen_gui.py", line 7, in <module>
import fibergen
File "/Users/ctdegroot/GitRepos/fibregen/lib/fibergen.py", line 12, in <module>
fibergen = __import__(libname)
ModuleNotFoundError: No module named 'fibergen_Christopher_DeGroots_Macbook_Pro'
The contents of lib
includes the shared object file fibergen_Christopher_DeGroots_Macbook_Pro_local.so
. Seems to be a naming issue here.
@ctdegroot @jedbrown I think I fixed the build and naming issues mentioned above. Can you please retry?
@fospald I get the following:
/Users/ctdegroot/GitRepos/fibregen/bin/fibergen-gui: line 13: 11684 Segmentation fault: 11 $PYTHON "${FIBERGEN_DIR}/../gui/main.py" "$@"
I should mention that Mac doesn't have ldd
so I replaced with otool -L
which should be equivalent.
@ctdegroot can you run:
fibergen demo/elasticity/hashin/project.xml
python3 -c "import fibergen; fg = fibergen.FG(); fg.run()"
without error?
@fospald First command results in:
dyld: Library not loaded: @rpath/libpython3.7m.dylib
Referenced from: /Users/ctdegroot/GitRepos/fibregen/bin/fibergen_cdg_mac01_eng_uwo_ca
Reason: image not found
/Users/ctdegroot/GitRepos/fibregen/bin/fibergen: line 6: 18485 Abort trap: 6 "${FIBERGEN_DIR}/fibergen_${HOST}" "$@"
Second command results in:
Segmentation fault: 11
Let me know if you want to keep trying on Mac. I can finish the review on Linux if you want.
@ctdegroot This seems to be an installation/search path issue for libpython3.
https://github.com/pre-commit/pre-commit/issues/618
You can finish the review on Linux if you want.
@ctdegroot there is only one item left in the checklist. Does it work on Linux?
@fospald Still not getting through the install on Linux. First there was a problem with naming of the boost.python library. Had to make the following change in CMakeLists.txt
# Try to find boost python
-SET(Boost_Python python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR})
+SET(Boost_Python python${PYTHON_VERSION_MAJOR})
I now have an error:
Could not find the following Boost libraries:
boost_iostreams
Still trying to figure that one out.
@ctdegroot Can you locate libboost_iostreams?
Which distribution and boost version are you using?
It might be possible that they simply removed the library and only the headers are required.
You can try to remove iostreams in the CMakeListst.txt
@fospald I am using boost version 1.60.0. I could find the library file in my installation. I've tried removing iostreams from the CMakeLists.txt file, however the build fails. It seems like this library is required. Looks like iostreams doesn't build unless libbz2 is installed first.
I have now managed to get it build but cannot import QtWebKitWidgets. I guess this is some component of PyQt5 that I don't have. Is there any way to automate the install of all these dependencies? Very tedious to install everything manually.
I got everything to compile now, but the GUI crashes immediately. I've created an issue fospald/fibergen#8.
@ctdegroot I updated the code. Can you try running with
fibergen-gui --disable-browser
This will disable all QTWebKit components. Then you have to open the demo files manually.
@fospald @jedbrown The software is working with the browser disabled. As such I was able to complete my review, and everything seems to be working fine. I would suggest that the installation procedure (mainly handling of dependencies) could be streamlined; however I give that as a future goal and won't let that hold up this review any further. I would suggest placing a note in the installation instructions that Mac is not fully supported, since we could not get this working.
@ctdegroot Thank you for testing. I updated the README with some more installation notes.
@ctdegroot @jedbrown Now I also added a fallback browser, when using "fibergen-gui --disable-browser", which at least provides the same functionality as the QtWebEngine browser but is a bit ugly.
@whedon check references
Attempting to check references...
```Reference check summary:
OK DOIs
MISSING DOIs
INVALID DOIs
@fospald Can you fix the citations that use inline style to use appropriate syntax the method of @bibkey
versus the method of [@bibkey]
? See https://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html#citation_syntax
Looks good to me otherwise.
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon check references
Attempting to check references...
```Reference check summary:
OK DOIs
MISSING DOIs
INVALID DOIs
PDF failed to compile for issue #1027 with the following error:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 17 0 17 0 0 31 0 --:--:-- --:--:-- --:--:-- 31
100 17 0 17 0 0 31 0 --:--:-- --:--:-- --:--:-- 31
sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory
pandoc: 10.21105.joss.01027.pdf: openBinaryFile: does not exist (No such file or directory)
Looks like we failed to compile the PDF
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@jedbrown I updated the citations (DOIs and titles) but there were no inline citations.
original method by [@MoulinecSuquet1994]
should be original method by @MoulinecSuquet1994
(it will place the parentheses differently). There are several other citations like this.
If it's a part of the sentence, then it's "inline". The alternative would be to write so the citations are parenthetical, as in `original method [@MoulinecSuquet1994] and more recent ... on rotated [@Willot2015] and staggered [@SchneiderOspaldKabel2015] grids."
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@jedbrown Understood. I updated the citations.
@fospald Thanks! Go ahead and tag a release (please use an annotated tag), then archive on Zenodo or similar, and report the DOI back in this thread.
@jedbrown The DOI is: 10.5281/zenodo.2556861
for the v1.0 release.
https://doi.org/10.5281/zenodo.2556861
Not sure, why it is not found (takes time to register?)
@fospald Can you please use an annotated tag?
No need to let that hold up acceptance. You can upgrade to an annotated tag on GitHub at your leisure, if you so desire. (It makes git describe
work and offers better provenance.)
@whedon set v1.0 as version
OK. v1.0 is the version.
@whedon set 10.5281/zenodo.2556861 as archive
OK. 10.5281/zenodo.2556861 is the archive.
@openjournals/joss-eics Over to you. Thanks, @tisaac and @ctdegroot for reviewing.
@jedbrown I annotated the tag.
If you want an annotated tag on the server, you'd have to delete it and re-push, something like
git push origin :refs/tags/v1.0
git push --tags origin
@jedbrown Now it should be fine.
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon check references
Attempting to check references...
```Reference check summary:
OK DOIs
MISSING DOIs
INVALID DOIs
It looks like that missing DOI is a fluke, so we can ignore that and proceed.
@whedon accept
Attempting dry run of processing paper acceptance...
Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/476
If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/476, then you can now move forward with accepting the submission by compiling again with the flag deposit=true
e.g.
@whedon accept deposit=true
```Reference check summary:
OK DOIs
MISSING DOIs
INVALID DOIs
@whedon accept deposit=true
Doing it live! Attempting automated processing of paper acceptance...
🚨🚨🚨 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...
@fospald congrats, your article is now published in JOSS! Thanks for submitting a solid article and piece of software.
@tisaac & @ctdegroot thank you for reviewing this submission, and thanks to @jedbrown for editing it.
: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.01027)
HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.01027">
<img src="http://joss.theoj.org/papers/10.21105/joss.01027/status.svg" alt="DOI badge" >
</a>
reStructuredText:
.. image:: http://joss.theoj.org/papers/10.21105/joss.01027/status.svg
:target: https://doi.org/10.21105/joss.01027
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:
@kyleniemeyer @jedbrown Looking at some published papers (including mine)
http://joss.theoj.org/papers/10.21105/joss.01027
http://joss.theoj.org/papers/10.21105/joss.01168
it seems in the section "Cite as:" (on the left) the first name is missing.
"Ospald, (2019)."
Can this be fixed?
@fospald I believe that is the intended formatting, but it's unusual that the accepted papers list shows a URL https://fospald.github.io/fibergen/
instead of the usual fospald / fibergen
. http://joss.theoj.org/papers/accepted
@jedbrown How to change the URL?
I don't know; might be a question for @arfon.
@jedbrown How to change the URL?
I can fix this.
OK, fixed.
Thanks!