Skip to content

Commit bdc9fbb

Browse files
authored
Add changelog and .github issue templates (arkworks-rs#39)
* Add changelog and .github issue templates
1 parent 2432ff4 commit bdc9fbb

File tree

5 files changed

+180
-0
lines changed

5 files changed

+180
-0
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
name: Bug Report
3+
about: Create a report to help us squash bugs!
4+
5+
---
6+
7+
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
8+
v ✰ Thanks for opening an issue! ✰
9+
v Before smashing the submit button please review the template.
10+
v Please also ensure that this is not a duplicate issue :)
11+
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -->
12+
13+
## Summary of Bug
14+
15+
<!-- Concisely describe the issue -->
16+
17+
## Version
18+
19+
<!-- git commit hash or tagged version -->
20+
21+
## Steps to Reproduce
22+
23+
<!-- Also please note what feature flags the library was compiled with? -->
24+
<!-- If this is a build issue, also indicate your OS and compiler versions (clang --version) -->
25+
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
name: Feature Request
3+
about: Create a proposal to request a feature
4+
5+
---
6+
7+
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
8+
v ✰ Thanks for opening an issue! ✰
9+
v Before smashing the submit button please review the template.
10+
v Word of caution: poorly thought-out proposals may be rejected
11+
v without deliberation
12+
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -->
13+
14+
## Summary
15+
16+
<!-- Short, concise description of the proposed feature -->
17+
18+
## Problem Definition
19+
20+
<!-- Why do we need this feature?
21+
What problems may be addressed by introducing this feature?
22+
Are there any disadvantages of including this feature? -->
23+
24+
## Proposal
25+
26+
<!-- Detailed description of requirements of implementation -->
27+
28+
____
29+
30+
#### For Admin Use
31+
32+
- [ ] Not duplicate issue
33+
- [ ] Appropriate labels applied
34+
- [ ] Appropriate contributors tagged
35+
- [ ] Contributor assigned/self-assigned

.github/PULL_REQUEST_TEMPLATE.md

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
2+
v ✰ Thanks for creating a PR! ✰
3+
v Before hitting that submit button please review the checkboxes.
4+
v If a checkbox is n/a - please still include it but + a little note why
5+
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -->
6+
7+
## Description
8+
9+
<!-- Add a description of the changes that this PR introduces and the files that
10+
are the most critical to review.
11+
-->
12+
13+
closes: #XXXX
14+
15+
---
16+
17+
Before we can merge this PR, please make sure that all the following items have been
18+
checked off. If any of the checklist items are not applicable, please leave them but
19+
write a little note why.
20+
21+
- [ ] Targeted PR against correct branch (main)
22+
- [ ] Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
23+
- [ ] Wrote unit tests
24+
- [ ] Updated relevant documentation in the code
25+
- [ ] Added a relevant changelog entry to the `Pending` section in `CHANGELOG.md`
26+
- [ ] Re-reviewed `Files changed` in the Github PR explorer

CHANGELOG.md

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## Pending
2+
3+
### Breaking changes
4+
- #12 Make FpVar's ToBitsGadget output constant length bit vectors.
5+
6+
### Features
7+
8+
9+
### Improvements
10+
- #5 Speedup BLS-12 pairing
11+
- #13 Add ToConstraintFieldGadget to ProjectiveVar
12+
- #15, #16 Allow cs to be none when converting a montgomery point into a twisted edwards point
13+
- #20 Add conditional select gadget to Uints
14+
- #21 Add Uint128
15+
- #22 Reduce density of `three_bit_cond_neg_lookup`
16+
- #23 Reduce allocations in Uints
17+
- #33 Speedup scalar multiplication by a constant
18+
- #35 Construct a FpVar from bits
19+
- #36 ImplementToConstraintFieldGadget for `Vec<Uint8>`
20+
21+
### Bug fixes
22+
- #8 Fix bug in three_bit_cond_neg_lookup when using a constant lookup bit
23+
- #9 Fix bug in short weierstrass projective curve point's to_affine method
24+
- #29 Fix `to_non_unique_bytes` for `BLS12::G1Prepared`
25+
- #34 Fix `mul_by_inverse` for constants
26+
27+
## v0.1.0
28+
29+
Initial release

CONTRIBUTING.md

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Contributing
2+
3+
Thank you for considering making contributions to `arkworks-rs/r1cs-std`!
4+
5+
Contributing to this repo can be done in several forms, such as participating in discussion or proposing code changes.
6+
To ensure a smooth workflow for all contributors, the following general procedure for contributing has been established:
7+
8+
1) Either open or find an issue you'd like to help with
9+
2) Participate in thoughtful discussion on that issue
10+
3) If you would like to contribute:
11+
* If the issue is a feature proposal, ensure that the proposal has been accepted
12+
* Ensure that nobody else has already begun working on this issue.
13+
If they have, please try to contact them to collaborate
14+
* If nobody has been assigned for the issue and you would like to work on it, make a comment on the issue to inform the community of your intentions to begin work. (So we can avoid duplication of efforts)
15+
* We suggest using standard Github best practices for contributing: fork the repo, branch from the HEAD of `main`, make some commits on your branch, and submit a PR from the branch to `main`.
16+
More detail on this is below
17+
* Be sure to include a relevant change log entry in the Pending section of CHANGELOG.md (see file for log format)
18+
* If the change is breaking, we may add migration instructions.
19+
20+
Note that for very small or clear problems (such as typos), or well isolated improvements, it is not required to an open issue to submit a PR.
21+
But be aware that for more complex problems/features touching multiple parts of the codebase, if a PR is opened before an adequate design discussion has taken place in a github issue, that PR runs a larger likelihood of being rejected.
22+
23+
Looking for a good place to start contributing? How about checking out some good first issues
24+
25+
## Branch Structure
26+
27+
`r1cs-std` has its default branch as `main`, which is where PRs are merged into. Releases will be periodically made, on no set schedule.
28+
All other branches should be assumed to be miscellaneous feature development branches.
29+
30+
All downstream users of the library should be using tagged versions of the library pulled from cargo.
31+
32+
## How to work on a fork
33+
Please skip this section if you're familiar with contributing to opensource github projects.
34+
35+
First fork the repo from the github UI, and clone it locally.
36+
Then in the repo, you want to add the repo you forked from as a new remote. You do this as:
37+
```bash
38+
git remote add upstream [email protected]:arkworks-rs/r1cs-std.git
39+
```
40+
41+
Then the way you make code contributions is to first think of a branch name that describes your change.
42+
Then do the following:
43+
```bash
44+
git checkout main
45+
git pull upstream main
46+
git checkout -b $NEW_BRANCH_NAME
47+
```
48+
and then work as normal on that branch, and pull request to upstream master when you're done =)
49+
50+
## Updating documentation
51+
52+
All PRs should aim to leave the code more documented than it started with.
53+
Please don't assume that its easy to infer what the code is doing,
54+
as that is almost always not the case for these complex protocols.
55+
(Even when you understand the paper!)
56+
57+
Its often very useful to describe what is the high level view of what a code block is doing,
58+
and either refer to the relevant section of a paper or include a short proof/argument for why it makes sense before the actual logic.
59+
60+
## Performance improvements
61+
62+
All performance improvements should be accompanied with benchmarks improving, or otherwise have it be clear that things have improved.
63+
For some areas of the codebase, performance roughly follows the number of field multiplications, but there are also many areas where
64+
hard to predict low level system effects such as cache locality and superscalar operations become important for performance.
65+
Thus performance can often become very non-intuitive / diverge from minimizing the number of arithmetic operations.

0 commit comments

Comments
 (0)