QuantumSavory / QuantumClifford.jl

Clifford circuits, graph states, and other quantum Stabilizer formalism tools.
MIT License
117 stars 46 forks source link

Improve static analysis tests with JET [$200] #307

Closed Krastanov closed 1 week ago

Krastanov commented 3 months ago
Bug bounty logistic details (click to expand) To claim exclusive time to work on this bounty either post a comment here or message [skrastanov@umass.edu](mailto:skrastanov@umass.edu) with: - your name - github username - **(optional)** a brief list of previous pertinent projects you have engaged in Currently the project is claimed by `no one` until `...`. If you want to, you can work on this project without making a claim, however claims are encouraged to give you and other contributors peace of mind. Whoever has made a claim takes precedence when solutions are considered. You can always propose your own funded project, if you would like to contribute something of value that is not yet covered by an official bounty.

Project: Improve static analysis tests with JET [$200]

We use JET for static analysis of the codebase. To claim this bounty, fix all of the reported warnings. Some of them are false positives that can be removed with extra type annotation. Some of them are due to dependencies, in which case you can simply blacklist the dependency (as already done). See the test_jet.jl test file and the JET CI run for the current state of affairs.

Required skills: General Julia and JET skills

Reviewer: Stefan Krastanov

Duration: 1 month

Payout procedure:

The Funding for these bounties comes from the National Science Foundation and from the NSF Center for Quantum Networks. The payouts are managed by the NumFOCUS foundation and processed in bulk once every two months. If you live in a country in which NumFOCUS can make payments, you can participate in this bounty program.

Click here for more details about the bug bounty program.

JoanArrow commented 2 months ago

I would like to claim this one!

Krastanov commented 2 months ago

Hi, @JoanArrow ! Sounds good, happy to reserve it. Let me know if you would like to proceed (we can talk more about it at the hackathon tonight).

lgoettgens commented 2 weeks ago

Hi @Krastanov, after already succeeding https://github.com/QuantumSavory/QuantumSavory.jl/issues/130 this issue seems like the logical next step to me. Is this bounty currently open or already reserved?

Krastanov commented 2 weeks ago

Hi, Lars! Thanks for checking! There were a bit of changes over the last few weeks by other contributors that might have changed the status of this bounty (a lot of unrelated improvements in the JET tests). I need to look into the current status of the tests before I can figure out whether we are still running this as a bounty. Apologies for the confusion, I had forgotten this one is still open. I will give you an answer later today.

Krastanov commented 2 weeks ago

Yup, this is still up for grabs. I will mark it as reserved. This one is a bit different than the previous -- it is for all JET warnings. Warning though, I am not even sure that is possible, as there might be valid warnings that require changes to Base, or rewriting of code in a much less legible or performant way, or upstreaming better analysis passes to JET itself -- basically, I want to state that I suspect we have the 80-20 rule here: these last "20%" of work might be the hardest.

If you succeed with it, please also add a run for the optimization warnings -- no need to fix any of them, but having the warnings printed would be a good way to set up future related bounties.

lgoettgens commented 2 weeks ago

If you succeed with it, please also add a run for the optimization warnings -- no need to fix any of them, but having the warnings printed would be a good way to set up future related bounties.

I looked through the JET documentation, and there doesn't seem to be an optimization report version for report_package. Instead, there is only @report_opt for this, but this needs a representative workload, which I don't see myself capable of putting together for this package due to a lack of understanding of the internals.