mirror of
https://github.com/bspeice/dtparse
synced 2024-12-21 20:08:10 -05:00
Remove fuzzing, add CONTRIBUTING/CONTRIBUTORS
This commit is contained in:
parent
848f1b9249
commit
0d18eb524b
44
CONTRIBUTING.md
Normal file
44
CONTRIBUTING.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
The `dtparse` crate is better for the contributions made by members of the open source community,
|
||||||
|
and seeks to make it easy to contribute back to the community it comes from. The goals are
|
||||||
|
fairly straight-forward, but here are the ways that would be most beneficial:
|
||||||
|
|
||||||
|
## Bug Reports
|
||||||
|
|
||||||
|
The testing suite for `dtparse` is built using tests derived from the [`dateutil`](https://github.com/dateutil/dateutil)
|
||||||
|
package in Python. Some Rust-specific behavior may show up though, for example in how
|
||||||
|
Rust handles nanoseconds where Python's standard library will only go to microseconds.
|
||||||
|
|
||||||
|
If you believe that behavior is improper, you are encouraged to file an issue; there are no dumb
|
||||||
|
issues or suggestions, and the world is a better place for having your input.
|
||||||
|
|
||||||
|
## Testing/Fuzzing
|
||||||
|
|
||||||
|
`dtparse`'s history as a port of Python software has led to some behavior being shown in Rust
|
||||||
|
that would not otherwise be an issue in Python. Testing for these issues to prevent panics
|
||||||
|
is greatly appreciated, and some great work has already happened surrounding fuzzing.
|
||||||
|
|
||||||
|
New test cases built either by fuzzers or humans are welcome.
|
||||||
|
|
||||||
|
## Feature Requests
|
||||||
|
|
||||||
|
Handling weird date formats and quirks is the name of the game. Any ideas on how to improve that
|
||||||
|
or utilities useful in handling the mapping of human time to computers is appreciated.
|
||||||
|
|
||||||
|
Writing code to implement the feature is never mandatory (though always appreciated); if there's
|
||||||
|
something you believe `dtparse` should do that it doesn't currently support, let's make that happen.
|
||||||
|
|
||||||
|
# Development Setup
|
||||||
|
|
||||||
|
The setup requirements for `dtparse` should be fairly straightforward - the project can be built
|
||||||
|
and deployed using only the `cargo` tool in Rust.
|
||||||
|
|
||||||
|
Much of the test coee is generated from Python code, and then the generated versions are stored
|
||||||
|
in version control. Thi is to ensure that all users can run the tests even without
|
||||||
|
installing Python or the other necessary packages.
|
||||||
|
|
||||||
|
To regenerate the tests, please use Python 3.6 with the `dateutil` package installed, and run:
|
||||||
|
|
||||||
|
- `python build_pycompat.py`
|
||||||
|
- `python build_pycompat_tokenizer.py`
|
6
CONTRIBUTORS.md
Normal file
6
CONTRIBUTORS.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
This project benefits from the Rust and open source communities, but most specifically from these people:
|
||||||
|
|
||||||
|
# Contributors:
|
||||||
|
|
||||||
|
- [@messense](https://github.com/messense)
|
||||||
|
- [@mjmeehan](https://github.com/mjmeehan)
|
5
fuzz/.gitignore
vendored
5
fuzz/.gitignore
vendored
@ -1,5 +0,0 @@
|
|||||||
|
|
||||||
target
|
|
||||||
libfuzzer
|
|
||||||
corpus
|
|
||||||
artifacts
|
|
@ -1,22 +0,0 @@
|
|||||||
|
|
||||||
[package]
|
|
||||||
name = "dtparse-fuzz"
|
|
||||||
version = "0.0.1"
|
|
||||||
authors = ["Automatically generated"]
|
|
||||||
publish = false
|
|
||||||
|
|
||||||
[package.metadata]
|
|
||||||
cargo-fuzz = true
|
|
||||||
|
|
||||||
[dependencies.dtparse]
|
|
||||||
path = ".."
|
|
||||||
[dependencies.libfuzzer-sys]
|
|
||||||
git = "https://github.com/rust-fuzz/libfuzzer-sys.git"
|
|
||||||
|
|
||||||
# Prevent this from interfering with workspaces
|
|
||||||
[workspace]
|
|
||||||
members = ["."]
|
|
||||||
|
|
||||||
[[bin]]
|
|
||||||
name = "fuzzer_script_1"
|
|
||||||
path = "fuzzers/fuzzer_script_1.rs"
|
|
@ -1,10 +0,0 @@
|
|||||||
#![no_main]
|
|
||||||
extern crate libfuzzer_sys;
|
|
||||||
extern crate dtparse;
|
|
||||||
use dtparse::parse;
|
|
||||||
#[export_name="rust_fuzzer_test_input"]
|
|
||||||
pub extern fn go(data: &[u8]) {
|
|
||||||
if let Ok(s) = std::str::from_utf8(data) {
|
|
||||||
parse(s);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user