Joss-reviews: [REVIEW]: fibergen: An introductory tool for FFT-based material homogenization

Created on 18 Oct 2018  Â·  130Comments  Â·  Source: openjournals/joss-reviews

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

status

Status badge code:

HTML: <a href="http://joss.theoj.org/papers/add4f02dcedfaae8f81da200000d64ee"><img src="http://joss.theoj.org/papers/add4f02dcedfaae8f81da200000d64ee/status.svg"></a>
Markdown: [![status](http://joss.theoj.org/papers/add4f02dcedfaae8f81da200000d64ee/status.svg)](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.)

Reviewer instructions & questions

@tisaac & @ctdegroot, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:

  1. Make sure you're logged in to your GitHub account
  2. Be sure to accept the invite at this URL: https://github.com/openjournals/joss-reviews/invitations

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 ✨

Review checklist for @tisaac

Conflict of interest

Code of Conduct

General checks

  • [x] Repository: Is the source code for this software available at the repository url?
  • [x] License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • [x] Version: v1.0
  • [x] Authorship: Has the submitting author (@fospald) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • [x] Installation: Does installation proceed as outlined in the documentation?
  • [x] Functionality: Have the functional claims of the software been confirmed?
  • [x] Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • [x] Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • [x] Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • [x] Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
  • [x] 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

Software paper

  • [x] Authors: Does the paper.md file include a list of authors with their affiliations?
  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?

Review checklist for @ctdegroot

Conflict of interest

Code of Conduct

General checks

  • [x] Repository: Is the source code for this software available at the repository url?
  • [x] License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • [x] Version: v1.0
  • [x] Authorship: Has the submitting author (@fospald) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • [x] Installation: Does installation proceed as outlined in the documentation?
  • [x] Functionality: Have the functional claims of the software been confirmed?
  • [x] Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • [x] Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • [x] Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • [x] Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
  • [x] 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

Software paper

  • [x] Authors: Does the paper.md file include a list of authors with their affiliations?
  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?
accepted published recommend-accept review

All 130 comments

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:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

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:incollect!'
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:infind_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:inrun'
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:indispatch'
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 from /app/vendor/bundle/ruby/2.4.0/bin/whedon:23: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):

  1. The software should be a significant contribution to the available open source software that either enables some new research challenges to be addressed or makes addressing research challenges significantly better (e.g., faster, easier, simpler)
  2. The software should be feature complete (no half-baked solutions) and designed for maintainable extension (not one-off modifications). Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable.

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

  • None
    ```

@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

  • https://doi.org/10.1016/s1387-1609(99)80001-2 may be missing for title: A fast numerical method for computing the linear and nonlinear mechanical properties of composites

INVALID DOIs

  • None
    ```

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

  • https://doi.org/10.1016/s1387-1609(99)80001-2 may be missing for title: A fast numerical method for computing the linear and nonlinear mechanical properties of composites

INVALID DOIs

  • None
    ```

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

  • https://doi.org/10.1016/s1387-1609(99)80001-2 may be missing for title: A fast numerical method for computing the linear and nonlinear mechanical properties of composites

INVALID DOIs

  • None
    ```

@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:

  1. Check final PDF and Crossref metadata that was deposited :point_right: https://github.com/openjournals/joss-papers/pull/477
  2. Wait a couple of minutes to verify that the paper DOI resolves https://doi.org/10.21105/joss.01027
  3. If everything looks good, then close this review issue.
  4. 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:
[![DOI](http://joss.theoj.org/papers/10.21105/joss.01027/status.svg)](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:

DOI

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.
joss

@jedbrown How to change the URL?

I can fix this.

OK, fixed.

Thanks!

Was this page helpful?
0 / 5 - 0 ratings