Commit graph

1707 commits

Author SHA1 Message Date
Roy Ivy III
e493ad1f26 refactor/uucore_procs ~ revise 'Cargo.toml' towards repo norms 2020-11-08 20:53:18 -06:00
Roy Ivy III
688db0d4a2 refactor/uucore ~ revise 'Cargo.toml' towards repo norms 2020-11-08 20:53:18 -06:00
Roy Ivy III
2b4b31a9ee uucore/refactor ~ fix cargo clippy complaints (*allow* temporary_cstring_as_ptr; added FixME note)
* otherwise, unsure how to fix this; the following change

```rust
let res = unsafe { utmpxname(CString::new(f).unwrap().as_ptr()) };
```

to

```rust
let string_ptr = CString::new(f).unwrap().as_ptr();
let res = unsafe { utmpxname(string_ptr) };
```

causes three `who` tests (test_who::test_all, test_who::test_boot, and test_who::test_login)
to fail by generating no output.
2020-11-08 20:53:18 -06:00
Roy Ivy III
3dc9f76c7f uucore/refactor ~ fix cargo clippy complaints (*allow* type_complexity) 2020-11-08 20:53:18 -06:00
Roy Ivy III
66dfd73ffe uucore/refactor ~ fix cargo clippy complaints (iter_nth_zero) 2020-11-08 20:53:18 -06:00
Roy Ivy III
9473abf3ba uucore/polish ~ fix cargo clippy complaints (missing_safety_doc; with ToDO for safety note) 2020-11-08 20:53:18 -06:00
Roy Ivy III
3941d3f18c uucore/refactor ~ fix cargo clippy complaints (len_zero) 2020-11-08 20:53:18 -06:00
Roy Ivy III
bc1084a9f5 uucore/refactor ~ fix cargo clippy complaints (or_fun_call) 2020-11-08 20:53:18 -06:00
Roy Ivy III
6539b8c6b9 maint/deps ~ change version specification for dependencies between sub-packages
- refactor internal version specifications to be ">=M.m.p" (where M.m.p is *already published*)

## [why]

Loosening internal version dependencies decreases the coupling between packages such
that packages can be published in a looser order. It allows the packages to be version
updated and published in tandem (ie, by using `cargo workspace ...`). Once published,
the internal versions can then be updated (again, to an *already published* package
version), as needed.
2020-11-08 20:26:46 -06:00
Roy Ivy III
c17307c757 fix ~ update workspace pointers to 'uucore' and 'uucore_procs' 2020-11-08 20:26:46 -06:00
Roy Ivy III
e15df35e87 Merge 'uucore' repository source code back into 'coreutils' 2020-11-08 19:58:25 -06:00
Roy Ivy III
aed6f296cf change ~ prepare 'uucore' for grafting/re-merge into 'coreutils' 2020-11-08 19:57:28 -06:00
Alex Lyon
46e2c14f07 Formatting 2020-11-08 19:56:57 -06:00
Alex Lyon
e8dcca1872 Use OsString for arguments rather than String 2020-11-08 19:56:57 -06:00
Sylvestre Ledru
121ab6d847 build/deps ~ relax/update the wild dep
Co-authored-by: Roy Ivy III <rivy.dev@gmail.com>
2020-11-08 19:56:57 -06:00
Roy Ivy III
00779a1fb5 refactor macro variable names (fixes spell-checker/unknown word warnings) 2020-11-08 19:56:57 -06:00
Roy Ivy III
7aa0c92cf8 docs/spell ~ configure VSCode cSpell 2020-11-08 19:56:57 -06:00
Roy Ivy III
d52fb5c484 docs/spell ~ spell-check and addition of exceptions 2020-11-08 19:56:57 -06:00
Roy Ivy III
88e5631fa4 docs/polish ~ polish/update commentary and copyrights 2020-11-08 19:56:57 -06:00
Roy Ivy III
70871edac9 docs/polish ~ remove outdated commentary 2020-11-08 19:56:57 -06:00
Roy Ivy III
b9642a0253 0.0.4 2020-11-08 19:56:57 -06:00
Roy Ivy III
16d367a418 fix 'edition=2018' module import errors 2020-11-08 19:56:56 -06:00
Roy Ivy III
c57a933412 change ~ use crate configuration 'edition=2018' 2020-11-08 19:56:56 -06:00
Roy Ivy III
2f840eedef docs ~ update meta information 2020-11-08 19:56:56 -06:00
Roy Ivy III
fc6370e160 change/API! ~ new_coreopts!() => app!() 2020-11-08 19:56:56 -06:00
Roy Ivy III
0c4d314544 change/API! ~ disp_err!() => show_usage_error!() 2020-11-08 19:56:56 -06:00
Roy Ivy III
d6b1052f3f 0.0.3 2020-11-08 19:56:56 -06:00
Roy Ivy III
1013b760c4 fix cargo clippy warning (no_effect) 2020-11-08 19:56:56 -06:00
Roy Ivy III
b8c22496bb change/uucore_procs ~ add work-around for attribute/macro name collision during testing
- proc_macro "main" collides with attribute "#[main]" during testing (for rust < v1.38.0; fixed in v1.38.0+)
- ref: GH:rust-lang/rust#62127
2020-11-08 19:56:56 -06:00
Roy Ivy III
e35bd4b79c update deps (Cargo.toml); MinSRV == v1.31.0 2020-11-08 19:56:56 -06:00
Roy Ivy III
18b13ed4b4 build/uucore_procs ~ fix proc_dbg!() for MinSRV of v1.31.0 2020-11-08 19:56:56 -06:00
Roy Ivy III
14df9d2df3 docs/build ~ polish crate meta-information (uucore_procs) 2020-11-08 19:56:56 -06:00
Roy Ivy III
246e4427e4 docs/build ~ polish descriptions and crate meta-information in Cargo.toml 2020-11-08 19:56:56 -06:00
Roy Ivy III
ad30781c0c build/uucore_procs ~ add debugging statements 2020-11-08 19:56:56 -06:00
Roy Ivy III
a352657e1f build/uucore_procs ~ add/improve debug infrastructure
- add proc_dbg! macro
- use debug feature to trigger debug traits for the syn crate
2020-11-08 19:56:56 -06:00
Roy Ivy III
cf2fcd8dc1 docs/uucore_macros ~ improve commentary/documentation 2020-11-08 19:56:56 -06:00
Roy Ivy III
c32ff9e8bb change ~ use updated SIGPIPE in procs 2020-11-08 19:56:56 -06:00
Roy Ivy III
0432063479 change ~ add proc-macros module (uucore_procs) with uucore_procs::main()
- `uucore_procs::main!(UUTIL_NAME)` allows simple, consistent instantiation of `main()` for uutils
2020-11-08 19:56:55 -06:00
Roy Ivy III
503cc53014 change ~ improve naming and documentation of default SIGPIPE handling 2020-11-08 19:56:55 -06:00
Roy Ivy III
b0d02e7f43 change ~ reorganize code layout/structure 2020-11-08 19:56:55 -06:00
Roy Ivy III
6a8a677e8b refactor/polish ~ cargo fmt 2020-11-08 19:56:55 -06:00
Roy Ivy III
099b0a2074 0.0.2 2020-11-08 19:56:55 -06:00
Roy Ivy III
5b2c2bdfca maint/CICD ~ fix FreeBSD build on Cirrus CI 2020-11-08 19:56:55 -06:00
Roy Ivy III
16157f57eb maint/build ~ refactor (reorganize) and improve comments within 'Cargo.toml' 2020-11-08 19:56:55 -06:00
Roy Ivy III
ceee0ec09e fix build failure caused by imprecise libc version specification
- more precisely describe permissable libc versions

.# [why]

- libc >= v0.2.15 is needed for utmp support.
- libc <= v0.2.66 is required to avoid build errors for MinSRV == 1.31.0.

Intermittant build failures were being caused by `cargo` using early libc versions.
2020-11-08 19:56:55 -06:00
Roy Ivy III
c08674da28 fix build failure caused by data-encoding v2.2.0
- hold data-encoding to known working "<= 2.1.2"

.# [why]

data-encoding v2.2.0 causes a build error for '1.31.0-i686-pc-windows-msvc'.

```
cargo +1.31.0-i686-pc-windows-msvc build --target=i686-pc-windows-msvc --all-features
...
error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130)
   --> C:\Users\appveyor\.cargo\registry\src\github.com-1ecc6299db9ec823\data-encoding-2.2.0\src\lib.rs:194:5
    |
187 | / mod prelude {
188 | |     pub use std::borrow::Cow;
189 | | }
    | |_- not an extern crate passed with `--extern`
...
194 |   use prelude::*;
    |       ^^^^^^^
    |
...
```
2020-11-08 19:56:55 -06:00
Roy Ivy III
96a92b3533 refactor ~ pin all crate versions < v1.0.0
. #[why]

Technically, by semver rules, projects with versions < v1.0.0 may make breaking
changes with *any* version change. So, for some protection, pin all crates with
version < v1.0.0 to a specific version.

* ref: <https://semver.org> @@ <https://archive.is/LTGHB>
2020-11-08 19:56:55 -06:00
Roy Ivy III
84d8473e1a fix forced MinSRV increase (using pinned 'backtrace' version)
- hotfix transitive bug in 'failure' forcing MinSRV increase to rust v1.33.0 by pinning 'backtrace' to <= 0.3.31
- [rustlang/nursery#340](https://github.com/rust-lang-nursery/failure/issues/340) is now open on 'failure' to address this issue

.# [why]

'failure' was using 'backtrace' `version = "0.3.3"`, which by semantic version
auto-upgrade was pulling in 'backtrace' > v0.3.30 (specifically, v0.3.40 most
recently). 'backtrace' v0.3.31 introduces use of `#[cfg(target_vendor = ...)]`
which requires rust v1.33.0. So, 'backtrace' is forcing an upgrade of MinSRV
to rust v1.33.0 with the change from backtrace v0.3.30 to backtrace v0.3.31.

Technically, by being less than v1.0.0, 'backtrace' has no semantic version
requirement. And there is debate about whether increasing MinSRV is a semantic
change. But, in my strong opinion, breaking our MinSRV statement is definitely
a semantic change.

* ref: <https://github.com/rust-lang/rust/blob/master/RELEASES.md>
2020-11-08 19:56:55 -06:00
Roy Ivy III
667ed39ece fix uucore::fs for windows
- standardize the return value of `std::env::current_dir()` by using `canonicalize()`

.# [why]

`std::env::current_dir()` will, in some situations on windows hosts, return
"short"-type paths (eg, "C:\Progra~1\..."). Using `canonicalize()` transforms
the path in a standard long form but may also require removing a leading
"\\?\" prefix.
2020-11-08 19:56:55 -06:00
Roy Ivy III
2792d85865 fix ~ 'musl' environment doesn't support utmpx 2020-11-08 19:56:55 -06:00