pyOpenSci / software-submission

Submit your package for review by pyOpenSci here! If you have questions please post them here: https://pyopensci.discourse.group/
94 stars 35 forks source link

Submission for AMS #174

Open jinningwang opened 7 months ago

jinningwang commented 7 months ago

Submitting Author: Jinning Wang (@jinningwang)
All current maintainers: @jinningwang Package Name: AMS One-Line Description of Package: Power system dispatch modeling and dispatch-dynamic co-simulation. Repository Link: https://github.com/CURENT/ams Version submitted: v0.9.6 EIC: @Batalex Editor: @NimaSarajpoor
Reviewer 1: Alireza Gholamzadeh Khoee @Alizak-Mech
Reviewer 2: Alireza Alamgir Tehrani @AlirezaAlamgir Reviewer 3: Kavian Mashayekhi @Kawians Archive: TBD JOSS DOI: TBD Version accepted: TBD Date accepted (month/day/year): TBD


Code of Conduct & Commitment to Maintain Package

Description

As part of CURENT Large-scale Testbed platform, AMS serves as power system production cost modeling. Our framework offers a modularized approach that seamlessly incorporates dynamics, enhancing traditional dispatch modeling methods. We create a versatile solution that bridges the gap between device-level and system-level models. The tool is developed to be extensible, scalable, compatible, and interoperable.

Scope

Domain Specific

Community Partnerships

If your package is associated with an existing community please check below:

[^1]: Please fill out a pre-submission inquiry before submitting a data visualization package.

Technical checks

For details about the pyOpenSci packaging requirements, see our packaging guide. Confirm each of the following by checking the box. This package:

Publication Options

JOSS Checks - [ ] The package has an **obvious research application** according to JOSS's definition in their [submission requirements][JossSubmissionRequirements]. Be aware that completing the pyOpenSci review process **does not** guarantee acceptance to JOSS. Be sure to read their submission requirements (linked above) if you are interested in submitting to JOSS. - [ ] The package is not a "minor utility" as defined by JOSS's [submission requirements][JossSubmissionRequirements]: "Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable." pyOpenSci welcomes these packages under "Data Retrieval", but JOSS has slightly different criteria. - [ ] The package contains a `paper.md` matching [JOSS's requirements][JossPaperRequirements] with a high-level description in the package root or in `inst/`. - [ ] The package is deposited in a long-term repository with the DOI: *Note: JOSS accepts our review as theirs. You will NOT need to go through another full review. JOSS will only review your paper.md file. Be sure to link to this pyOpenSci issue when a JOSS issue is opened for your package. Also be sure to tell the JOSS editor that this is a pyOpenSci reviewed package once you reach this step.*

Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?

This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.

Confirm each of the following by checking the box.

Please fill out our survey

P.S. Have feedback/comments about our review process? Leave a comment here

Editor and Review Templates

The editor template can be found here.

The review template can be found here.

Batalex commented 7 months ago

Editor in Chief checks

Hi there! Thank you for submitting your package for pyOpenSci review. Below are the basic checks that your package needs to pass to begin our review. If some of these are missing, we will ask you to work on them before the review process begins.

Please check our Python packaging guide for more information on the elements below.


jinningwang commented 7 months ago

Hi @Batalex,

Thanks for your response.

Just so you know, I was unable to import the package on OS X with the following error: symbol not found in flat namespace '_klu_l_analyze'. I'll report it properly later.

We run into it before and have addressed it, https://github.com/CURENT/andes/issues/508

Another possible solution is to add the used environment to path:

export PATH="/path/to/conda/envs/ams/bin:$PATH"
Batalex commented 5 months ago

Hey there @jinningwang! We have an editor 🙌

@NimaSarajpoor will take over this submission, and will most likely handle ANDES after that. Happy reviewing y'all

NimaSarajpoor commented 5 months ago

Editor response to review:


Editor comments

:wave: Hi (reviewer1 @Alizak-Mech and reviewer2 @AlirezaAlamgir) and reviewer3 @kawians. Thank you for volunteering to review for pyOpenSci!

[Note] Reviewer 1 and 2 (@Alizak-Mech and @AlirezaAlamgir) will collaborate together and submit one review from their side.

Please fill out our pre-review survey

Before beginning your review, please fill out our pre-review survey. This helps us improve all aspects of our review and better understand our community. No personal data will be shared from this survey - it will only be used in an aggregated format by our Executive Director to improve our processes and programs.

The following resources will help you complete your review:

  1. Here is the reviewers guide. This guide contains all of the steps and information needed to complete your review.
  2. Here is the review template that you will need to fill out and submit here as a comment, once your review is complete.

Please get in touch with any questions or concerns! Your review is due:

Reviewers: @Alizak-Mech @AlirezaAlamgir @kawians Due date: Regular deadline 2024-08-15 (see note below)

[Note] deadline extension Yellow deadline: 2024-08-30 Red deadline: 2024-09-07

NimaSarajpoor commented 4 months ago

@jinningwang Still looking for reviewers. Not easy to find people with domain knowledge interested in reviewing software. I found two reviewers who seem to have domain knowledge and experience in python programming. They, however, are looking for 4-6 weeks (rather than 3 weeks). It might make sense as it is summer.

I was wondering if you are okay with that?

jinningwang commented 4 months ago

@jinningwang Still looking for reviewers. Not easy to find people with domain knowledge interested in reviewing software. I found two reviewers who seem to have domain knowledge and experience in python programming. They, however, are looking for 4-6 weeks (rather than 3 weeks). It might make sense as it is summer.

I was wondering if you are okay with that?

Yes, it works for me. Thanks for your efforts, especially considering it is a small crowded domain-software.

NimaSarajpoor commented 4 months ago

Top comment and Editor's Response are updated.

NimaSarajpoor commented 4 months ago

@Alizak-Mech @AlirezaAlamgir @Kawians Please gives a thumbs up (👍) on this comment so that I know if anyone is missing.

lwasser commented 2 months ago

hi there editorial team! i'm checking in on reviews to see what the status is. I noticed that this review hasn't had any movement. Is there anything that i can do to support? Any questions that folks have?

NimaSarajpoor commented 1 month ago

@lwasser I got a response from one of the reviewers. Currently, I am doing my own review. Will provide both by end of this week.

lwasser commented 1 month ago

@NimaSarajpoor oh gosh - my intention wasn't to make you feel the need to do a review as editor. If i can support you in another way - maybe help find a second person please let me know? Thank you so much for the speedy reply!

NimaSarajpoor commented 1 month ago

Here is the review provided by one group of the reviewers, @Alizak-Mech @AlirezaAlamgir, that collaborated together. The reviewers (one mechanical engineer and one energy engineer) wanted to use AMS to simulate their case study that involves a smart [power distribution] grid with several Electrical Vehicle (EV) stations, where each station has its own energy storage system. To review, the reviewers decided to use AMS for their case study. I assume the reviewers have the mathematical form of the objective function, and the constraints, and wanted to use the AMS library to find the optimal solution for their problem.

The following challenges were reported:

(1) The authors did a good job in providing examples on how this library accepts different input / output formats. However, some technical details seem to be unclear, which makes it hard for [energy / mechanical] engineers who wants to use this library.

(2) The abbreviations seem to be a bit unclear and it is not easy to understand. If users need to know the naming conventions in this library, it might be a good idea to have a table to explain them, and maybe add a link to that in the README page. It is recommended, if possible, to improve naming for the sake of readability and ease of use.

(3) The reviewers cannot understand how they should define their objective function in AMS.

(4) To motivate users to use this library, the advantages need to be indicated.

@Alizak-Mech @AlirezaAlamgir Feel free to add/correct if needed.


Note1: My own review, using the review template with some extra notes, will be provided in my next comment.

Note2: Since the accuracy and running time depend (highly) on the "optimization solver", this editor believes the authors of library has focused on the "simplicity" by abstracting away some complex layers one may face in building a case study using other libraries. [More on this in my own, upcoming, comment]

NimaSarajpoor commented 1 month ago

To fill the gap, I decided to do a review myself. Kindly find my review below. If you notice something is off, please let me know. Before that, I first want to acknowledge the fact that the case studies in power system can become very complicated, and the author(s) of library did a great job in creating a software that can handle different kinds of studies (referred to as "routines" in the library IIUC).

The package review is provided below. The parts extra notes are my additional comments..

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide*

Documentation

The package includes all the following forms of documentation:

Extra notes:

Readme file requirements

The package meets the readme requirements below:

The README should include, from top to bottom:

NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)

Extra notes:

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:

Extra note:

Functionality

Extra note:

!conda install -q -c conda-forge cvxopt !conda install -q conda-forge::ltbams

import ams !git clone https://github.com/CURENT/ams.git !cd ams && python -m unittest ./tests/*



### For packages also submitting to JOSS

- [ ] The package has an **obvious research application** according to JOSS's definition in their [submission requirements](http://joss.theoj.org/about#submission_requirements).

*Note:* Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a `paper.md` matching [JOSS's requirements](http://joss.theoj.org/about#paper_structure) with:

- [ ] **A short summary** describing the high-level functionality of the software
- [ ] **Authors:** A list of authors with their affiliations
- [ ] **A statement of need** clearly stating problems the software is designed to solve and its target audience.
- [ ] **References:** With DOIs for all those that have one (e.g. papers, datasets, software).

### Final approval (post-review)

- [ ] **The author has responded to my review and made changes to my satisfaction. I recommend approving this package.**

Estimated hours spent reviewing: 
NimaSarajpoor commented 1 month ago

@lwasser

Maybe help find a second person please let me know? Sure! That should be very helpful!

[Just a suggestion] According to my experience with this library, I think the focus of the new person can be more on the documentation part.

jinningwang commented 1 month ago

Hello, the editorial team @NimaSarajpoor @lwasser, thanks for your efforts!

Feel free to drop me a message when I can start preparing revision and response.

NimaSarajpoor commented 1 month ago

@lwasser
Should we wait for another reviewer? What do you think?

lwasser commented 1 month ago

@NimaSarajpoor why don't you post in our editorial channel. Let's bring our eic @SimonMolinsky into this conversation . It's unclear to me where this review stands! Thank you!

SimonMolinsky commented 1 month ago

@NimaSarajpoor Let's discuss it on our Slack, I'll try to help you, and we will move the review forward :)

NimaSarajpoor commented 4 weeks ago

@Alizak-Mech @AlirezaAlamgir Are you able to use this template to reflect the review you conducted, and share it here?

@Kawians Did you review the package? If no, can you please use this template and share it here by 2024-Nov-10?

Kawians commented 3 weeks ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Peer Review Notes

Readme file requirements The package meets the readme requirements below:

The README should include, from top to bottom:

Peer Review Note:

NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)

Peer Review Notes:

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:

Peer Review Note:

Functionality

Peer Review Note:

For packages also submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

Kawians commented 3 weeks ago

@NimaSarajpoor Thanks for the reminder and sorry for being late in getting back to you on this. My review is ready and could be seen above.