Closed editorialbot closed 5 months ago
Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.
For a list of things I can do to help you, just type:
@editorialbot commands
For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:
@editorialbot generate pdf
Software report:
github.com/AlDanial/cloc v 1.90 T=0.23 s (1083.0 files/s, 313349.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
HTML 86 9888 86 15254
JavaScript 13 2439 2514 9272
Python 33 2374 3718 5227
Jupyter Notebook 19 0 13819 2699
SVG 1 0 0 2671
CSS 4 190 40 779
reStructuredText 86 220 237 211
TeX 1 14 0 143
Markdown 2 38 0 103
YAML 2 6 20 28
DOS Batch 1 8 1 26
make 1 4 7 9
-------------------------------------------------------------------------------
SUM: 249 15181 20442 36422
-------------------------------------------------------------------------------
Commit count by author:
1222 Edson Porto da Silva
28 Adolfo Herbster
28 edsonportosilva
3 Sourcery AI
2 Carlos Daniel Fontes da Silva
1 daniel7fontes
Paper file info:
📄 Wordcount for paper.md
is 958
✅ The paper includes a Statement of need
section
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1109/50.622902 is OK
- 10.1109/JSTQE.2010.2044751 is OK
- 10.1109/JLT.2009.2039464 is OK
- 10.1109/JLT.2020.2996188 is OK
- 10.1109/JLT.2017.2786351 is OK
- 10.1109/JLT.2017.2662082 is OK
MISSING DOIs
- No DOI given, and none found for title: Fiber-Optic Communication Systems
- 10.1016/b978-1-78548-037-9.50001-6 may be a valid DOI for title: Digital Communications
- No DOI given, and none found for title: Robochameleon: A matlab coding framework and compo...
- No DOI given, and none found for title: OptiSystem
- No DOI given, and none found for title: VPItransmissionMaker™ Optical Systems
- No DOI given, and none found for title: Synopsys OptSim for Optical Communication
- No DOI given, and none found for title: Optilux, the optical simulatr toolbox.
- No DOI given, and none found for title: CuPy: A NumPy-Compatible Library for NVIDIA GPU Ca...
- No DOI given, and none found for title: CUDA, release: 10.2.89
INVALID DOIs
- None
License info:
🟡 License found: GNU General Public License v3.0
(Check here for OSI approval)
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@lucydot, @edsonportosilva below is my initial review. I realize that there is an examples folder, but is it expected to run everything or is there a notebook/script that gives an overview of the main features?
README.rst
file, and use that within your documentation (like this instead of creating a separate file so you don’t have to edit twice). I say this because I looked at the documentation for the installation steps; and python setup.py install
didn’t work for me, but pip install .
did (which was in your README)..gitignore
Thank you for your thoughtful review @ebezzam
I realize that there is an examples folder, but is it expected to run everything or is there a notebook/script that gives an overview of the main features?
With the immediate review process in mind, this seems like an important thing to address. Could you indicate which examples demonstrate the key software functionality @edsonportosilva? This could be useful for future users, so I suggest it is also included in the documentation.
Hello @lucydot @ebezzam,
Thanks for the review and the feedback! In the examples folder, we provide notebooks with simulation setups with various levels of complexity to help the user. The simplest simulation of optical transmission (kind of a 'textbook example') is provided in basic_OOK_transmission.ipynb. This notebook would be the starting point e.g. for undergrad students who are taking a first course in optical communications.
The notebook test_WDM_transmission.ipynb is a more advanced example that deals with coherent optical transmission and uses main features of OptiCommPy (coherent communications, advanced fiber optic modeling, and digital signal processing (DSP)). It is also the kind of simulation targeted by experienced users, such as researchers/engineers working with optical communications. This notebook also automatically calls for GPU processing, if a suitable GPU is available. Thus, by simply running it in e.g. Colab with and without a GPU accelerator, the user can estimate how fast a GPU speeds up the simulation (for this kind of simulation, the difference is quite significant, at least 10x faster I would expect).
The other notebooks are mostly simulation scenarios to "test" various features of the code. In particular, we have included the notebook test_metrics.ipynb where all relevant functions that calculate performance metrics are tested and the results compared with results from communications theory. We are working on setting up proper automated tests for the code in the repository, but it is working in progress.
@ebezzam @lucydot, I will proceed in fixing the issues listed in your preliminary review.
@edsonportosilva - thanks for the update.
As @ebezzam has already mentioned, it would be useful to have documentation to show / walk through the different features as it is difficult to know where to start with the examples folder. Often I see this as a (series of) notebooks displayed in ReadTheDocs. For example, a "Getting Started" code walkthrough showing the basic functionality. You could then link to the examples folder for the more advanced topics. This could also go some way to ensuring that the "Testing" JOSS criteria is met. We strongly encourage this would be a suite of automated tests, however the following can also be deemed acceptable:
Documented manual steps that can be followed to objectively check the expected functionality of the software (e.g., a sample input file to assert behaviour)
From here.
@lucydot @ebezzam
Sorry for the late reply, I was in leave. Below are my first comments.
Installation went without trouble, though I only tried through pip install .
Examples: some of the notebooks do not run (while I did not test them all, basic_EDFA.ipynb
seems to use an old package structure and does not run. I ran this first since I use an EDFA in the lab and it was the first example in the directory.
Performance: I agree with @ebezzam that benchmarks curves would be a welcome addition. This could maybe be one of the tests ?
GPU models / Performance: I don't know how much performance is critical, but modelsGPU.py
could benefit greatly from ad hoc kernels, especially for your split step scheme. See for instance the docs from Cupy or Numba. This will help you limit the number of kernels launched. While this may be not critical for 1D problems involved with fibers, this becomes critical in 2D (which might prove relevant depending on the number of modes involved).
Furthermore, you will gain at least a factor of 2 performance on your FFT's if you explicitely define and cache the FFT plans (see get_fft_plan
or directly through cupy.cuda.cufft
) instead of using the cupyx.scipy.fft
API.
Performance / FFT: I would advise switching to a more performant FFT library than Numpy's since most of you DSP will rely on it. There are a lot of potential candidates, pyFFTW could be a drop in replacement. In the same vein, a lot of operations could be parallelized and JIT compiled using Numba.
Overall it's a very nice project, while the examples need a bit of documentation work, they do seem to cover most of the functionalities of the package.
Best,
@lucydot @edsonportosilva
I have now completed my review. I tried to limit my comments to new ones that have not been covered in the reviews above.
In general, the package is interesting and contains a lot of features. The main issues are related to the tests and documentation, which lacks significant information (even missing whole modules).
fec
module is missing in the documentation.CONTRIBUTING.md
file, are missingtests/test_dsp.py
does not run with the unittest
packagesetup.py
) says that the nose
module is required for testing, but it is not actually required to run the unit tests in tests/
examples/test_*.py
can not be run with Python (ipython is required). However, this is not mentioned anywhere.examples/test_dsp_core_functions.ipynb
are not useful (just a blue box).ipython examples/test_clockRecovery.py
: ValueError: operands could not be broadcast together with shapes (44000,) (43968,)
(Line 121)ipython examples/test_fec.py
: ModuleNotFoundError: No module named 'optic.modulation'
(I think, it should be optic.comm.modulation
)optic.fec
module does not exist. I could not find any LDPC functionality in the documentation.examples/test_fec.py
also present in examples/test_fec.ipynb
ipython examples/test_NLC_withDBP_WDM_transmission.py
: ImportError: cannot import name 'phaseNoise' from 'optic.models.channels
examples/test_metrics.ipynb
for small SNRs. What is the reason behind this? (I have also increased the number of samples by a factor of 10, which did not yield any improvement.)examples/test_ofdm.py
examples/basic_EDFA.py
~
in "Fig.~3" is actually printed as a tilde.Hello @lucydot @ebezzam. Sorry for my late reply. I am currently overloaded with the end of semester tasks. @ebezzam, thanks again for the time reviewing this project. Here is the reply to your queries.
@lucydot, @edsonportosilva below is my initial review. I realize that there is an examples folder, but is it expected to run everything or is there a notebook/script that gives an overview of the main features?
Functionality
- Installation: I would recommend putting the same installation in your README and in the documentation. You can create a
README.rst
file, and use that within your documentation (like this instead of creating a separate file so you don’t have to edit twice). I say this because I looked at the documentation for the installation steps; andpython setup.py install
didn’t work for me, butpip install .
did (which was in your README).
python setup.py install
which is deprecated.
- Functionality: it would be useful to have a section or notebook to show the different features, as I’m not sure where I would start to try things out. I realize there’s an examples folder, but it is not clear where to start.
- Performance: it would be interesting to quantify the speed-up thanks to GPU acceleration, as mentioned in Lines 61-64 of the paper.
Documentation
- A statement of need: there is none in the documentation.
- Automated tests: there are none nor manual steps to verify functionality.
- Community guidelines: there is in the README, but as mentioned above for “Installation”, it could be nice to use the README in your documentation, as I didn’t see the contribution guidelines at first.
Fixed by 1.
Software paper
- A statement of need: The “Statement of need” starts great by giving the relevant context, but I feel like there’s a paragraph missing after Line 40 to explicitly say something like “OptiCommPy addresses this need by…” and who the target audience is (similar to what’s said in “Summary”).
Fixed
- Quality of writing: I think Lines 41 and onward should be in a separate section, e.g. with the title “OptiCommPy Code Structure”. And another section on what example scripts/code for the different features could be useful.
Miscellaneous
- Adding .ipynb_checkpoints and .pylint.d to your
.gitignore
@taladjidi, thanks for your time reviewing this project. Please, see below the replies to the points you listed.
@lucydot @ebezzam
Sorry for the late reply, I was in leave. Below are my first comments.
Functionality
- Installation went without trouble, though I only tried through
pip install .
- Examples: some of the notebooks do not run (while I did not test them all,
basic_EDFA.ipynb
seems to use an old package structure and does not run. I ran this first since I use an EDFA in the lab and it was the first example in the directory.
- Performance: I agree with @ebezzam that benchmarks curves would be a welcome addition. This could maybe be one of the tests ?
Furthermore, you will gain at least a factor of 2 performance on your FFT's if you explicitely define and cache the FFT plans (see
get_fft_plan
or directly throughcupy.cuda.cufft
) instead of using thecupyx.scipy.fft
API.
- Performance / FFT: I would advise switching to a more performant FFT library than Numpy's since most of you DSP will rely on it. There are a lot of potential candidates, pyFFTW could be a drop in replacement. In the same vein, a lot of operations could be parallelized and JIT compiled using Numba.
cupyx.scipy.fft
. If you have any particular insights on how to further optimize performance, I would be glad to hear more.Documentation
- Examples: Jupyter notebooks are a great way to introduce the various functionalities of your software. I found that the graphical outputs were very clear. Maybe it would be good to add Markdown blocks in between the code blocks to link the code with the physical models in use (how does one equation translate in terms of your package functionalities).
- Physical models: I would expect the docstrings of the models to cite some relevant paper (when needed) explaining the model more in detail, or one or two latex equations to succintly define the used conventions etc ...
- In the paper, you compare to commercial / proprietary solutions, maybe you could include a section of your Readme to explain what funcitonalities are supported, or some kind of migration guide ? In a similar fashion, maybe you could include some performance comparisons.
Software paper
- The manuscript overall is well written and has a very good introduction.
- It would be better to split the Statement of need and the functionalities that you introduce, in order to highlight the problem on one side and its solution on the other.
- The package structure is maybe superfluous in the paper, and maybe could be replaced with benchmarks / comparisons with proprietary software (if you have access to it) ?
Overall it's a very nice project, while the examples need a bit of documentation work, they do seem to cover most of the functionalities of the package.
Thanks! :)
Best,
Hello @lucydot @klb2 thanks for your time reviewing this project. Please, see below the replies to the points you listed.
@lucydot @edsonportosilva
I have now completed my review. I tried to limit my comments to new ones that have not been covered in the reviews above.
In general, the package is interesting and contains a lot of features. The main issues are related to the tests and documentation, which lacks significant information (even missing whole modules).
Documentation
- It would be nice to add a simple example after the installation instructions to verify that the installation worked.
1 . Fixed, partially. The content in the getting started notebook available in the documentation should run without issues.
- In general, the documentation does not show any usage examples.
- Required version of matplotlib in documentation (>=1.4.3) does not match that in requirements/setup file (>=3.7.0)
- Pandas is not stated as a dependency in documentation
- It should be mentioned which scripts need to be run to reproduce the figures from the paper.
- The documentation of the
fec
module is missing in the documentation.
- Community guidelines, e.g., a
CONTRIBUTING.md
file, are missing
Tests
tests/test_dsp.py
does not run with theunittest
package
- The setup script (
setup.py
) says that thenose
module is required for testing, but it is not actually required to run the unit tests intests/
examples/test_*.py
can not be run with Python (ipython is required). However, this is not mentioned anywhere.
- There only seems to be a small number of unit tests. The code coverage is very low.
- The eye diagrams in
examples/test_dsp_core_functions.ipynb
are not useful (just a blue box).
- Error when running
ipython examples/test_clockRecovery.py
:ValueError: operands could not be broadcast together with shapes (44000,) (43968,)
(Line 121)
- Error when running
ipython examples/test_fec.py
:ModuleNotFoundError: No module named 'optic.modulation'
(I think, it should beoptic.comm.modulation
)
- Also, the
optic.fec
module does not exist. I could not find any LDPC functionality in the documentation.
- Same issues of
examples/test_fec.py
also present inexamples/test_fec.ipynb
- Error when running
ipython examples/test_NLC_withDBP_WDM_transmission.py
:ImportError: cannot import name 'phaseNoise' from 'optic.models.channels
- Large deviations between theory and Monte Carlo in
examples/test_metrics.ipynb
for small SNRs. What is the reason behind this? (I have also increased the number of samples by a factor of 10, which did not yield any improvement.)
- ImportError in
examples/test_ofdm.py
Examples
- ImportError in
examples/basic_EDFA.py
Paper (Minor Stuff)
- Acronym DSP is defined twice
- Non-breaking space
~
in "Fig.~3" is actually printed as a tilde.
Thank you very much @ebezzam @taladjidi @klb2 for your thorough and timely reviews 🌟
And excellent that you have addressed so many points in a short timeframe @edsonportosilva
@ebezzam @taladjidi @klb2 - please re-visit your checklist when you get a chance, and see if there are any outstanding issues blocking acceptance. Reading discussion, there may be some uncertainty around testing criteria - in which case it would be great to hear your thoughts and I can feed in with editorial viewpoint. The other key aspect was documentation.
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Thank you for addressing my comments @edsonportosilva. I checked the code and documentation again and only some issues are remaining.
The file Image("./figures/BasicIMDD.png", width=600)
in the getting_started.ipynb
notebook does not exist.
I am still not sure about the correctness of the results in the test_metrics.ipynb
notebook.
I did not see this before, but it should be "Fig. 2" instead of "Fig. 3" in the paper (line 82 on page 3).
Regarding point 8 from the previous comments: In the original submission, it was not clear/documented that pytest would be required to run the unit tests. Only the unittest
module was imported in two out of the three files. But I saw that this is fixed now.
Hello @klb2, thanks again for the feedback,
Thank you for addressing my comments @edsonportosilva. I checked the code and documentation again and only some issues are remaining.
- The file
Image("./figures/BasicIMDD.png", width=600)
in thegetting_started.ipynb
notebook does not exist.
I am still not sure about the correctness of the results in the
test_metrics.ipynb
notebook.
- First, for low SNRs, the Monte Carlo simulation results systematically deviate from the theoretical results (Sections 1.1 and 1.2). This should not be the case, especially for small error rates with enough samples.
- Next, in Section 2.1 of the notebook, the 256 QAM theory curve breaks the Shannon limit. This appears to be wrong, especially since the Monte Carlo simulations again show the expected behavior, e.g., see Fig. 1(a) in D. S. Millar, T. Fehenberger, T. Koike-Akino, K. Kojima and K. Parsons, "Coded Modulation for Next-Generation Optical Communications," 2018 Optical Fiber Communications Conference and Exposition (OFC), 2018.
- I did not see this before, but it should be "Fig. 2" instead of "Fig. 3" in the paper (line 82 on page 3).
Regarding point 8 from the previous comments: In the original submission, it was not clear/documented that pytest would be required to run the unit tests. Only the
unittest
module was imported in two out of the three files. But I saw that this is fixed now.
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
I don't know the problem in this case, because for me the figure is displayed both in the repository and the documentation page. Does anyone else see the same issue?
It is displayed here: https://github.com/edsonportosilva/OptiCommPy/blob/main/examples/getting_started.ipynb. But when I look in the figures folder, it is true the image does not exist. So I think if you run locally, it will give the reported error. The notebook being displayed online must have been executed before the image was removed. In fact, the path to the figures folder also seems to have changed.
@ebezzam @taladjidi - a reminder to re-visit your checklist when you get a chance, and see if there are any outstanding issues blocking acceptance.
Hi @lucydot , on my side it looks good ! Thank you @ebezzam for the swift reply, I will try to draft a PR for the FFT / kernel performance stuff I identified.
@lucydot @klb2, thanks! Found the problem. All should be fine now with the notebook and the figure is uploaded here.
I don't know the problem in this case, because for me the figure is displayed both in the repository and the documentation page. Does anyone else see the same issue?
It is displayed here: https://github.com/edsonportosilva/OptiCommPy/blob/main/examples/getting_started.ipynb. But when I look in the figures folder, it is true the image does not exist. So I think if you run locally, it will give the reported error. The notebook being displayed online must have been executed before the image was removed. In fact, the path to the figures folder also seems to have changed.
@ebezzam @taladjidi - a reminder to re-visit your checklist when you get a chance, and see if there are any outstanding issues blocking acceptance.
Thanks for addressing my remaining comments @edsonportosilva.
One last suggestion is that you could add (and emphasize) on the main page of the documentation that the software is open-source.
However, I guess that is optional and I have completed my review @lucydot.
@edsonportosilva thank you for addressing my comments. The Getting started page with interleaved code and description looks very nice.
Just some minor stuff, but otherwise it looks good for me:
Notebook not found: Could not find JOSS_paper_example.ipynb in https://api.github.com/repos/edsonportosilva/OptiCommPy/contents/examples?
# Examples
In the documentation, one can find [an example](https://opticommpy.readthedocs.io/en/latest/getting_started.html) that demonstrates core features of OptiCommPy. A collection of examples to build several different simulation setups, including advanced setups with non-linear fiber propagation models, WDM transmission, and coherent detection can be found in the repository's [examples](https://github.com/edsonportosilva/OptiCommPy/tree/main/examples) folder. [Benchmarks](https://github.com/edsonportosilva/OptiCommPy/blob/main/examples/benchmarck_GPU_processing.ipynb) quantifying the speedup achieved by using GPU acceleration are also provided.
which renders as
In the documentation, one can find an example that demonstrates core features of OptiCommPy. A collection of examples to build several different simulation setups, including advanced setups with non-linear fiber propagation models, WDM transmission, and coherent detection can be found in the repository's examples folder. Benchmarks quantifying the speedup achieved by using GPU acceleration are also provided.
Great work @ebezzam @taladjidi @klb2 - thanks for your thoughtful and timely reviews.
@edsonportosilva it looks like there are a few relatively minor points to address above, and then we can progress to next stage (final check throughs by editor and author).
Thanks for the feedback, @ebezzam @lucydot!
@edsonportosilva thank you for addressing my comments. The Getting started page with interleaved code and description looks very nice.
Thanks :)
Just some minor stuff, but otherwise it looks good for me:
- The "Open in Colab" button doesn't work for me. From ReadTheDocs, it is not clickable and from GitHub I get the error
Notebook not found: Could not find JOSS_paper_example.ipynb in https://api.github.com/repos/edsonportosilva/OptiCommPy/contents/examples?
- In your paper, it could be nice to have an "Examples" section with links, e.g. adapting lines 83-87 as:
# Examples In the documentation, one can find [an example](https://opticommpy.readthedocs.io/en/latest/getting_started.html) that demonstrates core features of OptiCommPy. A collection of examples to build several different simulation setups, including advanced setups with non-linear fiber propagation models, WDM transmission, and coherent detection can be found in the repository's [examples](https://github.com/edsonportosilva/OptiCommPy/tree/main/examples) folder. [Benchmarks](https://github.com/edsonportosilva/OptiCommPy/blob/main/examples/benchmarck_GPU_processing.ipynb) quantifying the speedup achieved by using GPU acceleration are also provided.
which renders as
Examples
In the documentation, one can find an example that demonstrates core features of OptiCommPy. A collection of examples to build several different simulation setups, including advanced setups with non-linear fiber propagation models, WDM transmission, and coherent detection can be found in the repository's examples folder. Benchmarks quantifying the speedup achieved by using GPU acceleration are also provided.
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Wonderful! We're onto the last steps @edsonportosilva.
Thank you for your reviews @ebezzam @taladjidi @klb2 ✨
I'll ask editorialbot to generate the post-review checklist; let me know when each author item is done.
@editorialbot generate post-review checklist
@editorialbot set <DOI here> as archive
@editorialbot set <version here> as version
@editorialbot generate pdf
@editorialbot check references
and ask author(s) to update as needed@editorialbot recommend-accept
@edsonportosilva, please adjust the paper so that when you have multiple citations are contained in the same bracket. This can be done using semi-colons to separate items (see here). After you have adjusted the paper, please re-compile using @editorialbot generate pdf
to check all are formatted as expected.
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Post-Review Checklist for Editor and Authors
Additional Author Tasks After Review is Complete
Hello, @lucydot! Sorry for the late reply, last two weeks I have been unable to proceed with the final steps of the review. Here it is:
- Double check authors and affiliations (including ORCIDs)
- Make a release of the software with the latest changes from the review and post the version number here. This is the version that will be used in the JOSS paper.
- Archive the release on Zenodo/figshare/etc and post the DOI here.
- Make sure that the title and author list (including ORCIDs) in the archive match those in the JOSS paper.
- Make sure that the license listed for the archive is the same as the software license.
@edsonportosilva, please adjust the paper so that when you have multiple citations are contained in the same bracket. This can be done using semi-colons to separate items (see here). After you have adjusted the paper, please re-compile using
@editorialbot generate pdf
to check all are formatted as expected.
Done
@editorialbot set 10.5281/zenodo.11450597 as archive
Done! archive is now 10.5281/zenodo.11450597
@editorialbot set v0.9.0-alpha as version
Done! version is now v0.9.0-alpha
@editorialbot check references
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1109/50.622902 is OK
- 10.1109/JSTQE.2010.2044751 is OK
- 10.1109/JLT.2009.2039464 is OK
- 10.1109/JLT.2020.2996188 is OK
- 10.1109/JLT.2017.2786351 is OK
- 10.1109/JLT.2017.2662082 is OK
MISSING DOIs
- No DOI given, and none found for title: Fiber-Optic Communication Systems
- No DOI given, and none found for title: Digital Communications
- No DOI given, and none found for title: Robochameleon: A matlab coding framework and compo...
- No DOI given, and none found for title: OptiSystem
- No DOI given, and none found for title: VPItransmissionMaker™ Optical Systems
- No DOI given, and none found for title: Synopsys OptSim for Optical Communication
- No DOI given, and none found for title: Optilux, the optical simulatr toolbox.
- No DOI given, and none found for title: CuPy: A NumPy-Compatible Library for NVIDIA GPU Ca...
- No DOI given, and none found for title: CUDA, release: 10.2.89
INVALID DOIs
- None
Hi @edsonportosilva, can you check and confirm that there are no DOIs available for the references above? I can see they are either software or book references, so less likely to be available than for journal references.
After that I will recommend acceptance to the track editors 🥳
Hi @lucydot,
Hi @edsonportosilva, can you check and confirm that there are no DOIs available for the references above? I can see they are either software or book references, so less likely to be available than for journal references.
I have checked and there is no DOI available for those references, mostly because they are either software or physical books, as you noted.
After that I will recommend acceptance to the track editors 🥳
Great to hear that and thank you for your guidance during this peer review process 😊
Submitting author: !--author-handle-->@edsonportosilva<!--end-author-handle-- (Edson Porto da Silva) Repository: https://github.com/edsonportosilva/OptiCommPy/ Branch with paper.md (empty if default branch): add-paper Version: v0.9.0-alpha Editor: !--editor-->@lucydot<!--end-editor-- Reviewers: @klb2, @ebezzam, @taladjidi Archive: 10.5281/zenodo.11450597
Status
Status badge code:
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.)
Reviewer instructions & questions
@klb2 & @ebezzam & @taladjidi, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review. First of all you need to run this command in a separate comment to create the checklist:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @lucydot know.
✨ Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest ✨
Checklists
📝 Checklist for @klb2
📝 Checklist for @taladjidi
📝 Checklist for @ebezzam