- Document the more standard way of building Elvish with "go install".
- Document how to build a variant.
- Remove reference to Make targets in the README.
CONTRIBUTING.md still high-level reference to the Makefile. Users who need to
build Elvish are never required to use make, and contributors should be able
to read the Makefile.
This allows the build commands in Makefile and tools/buildall.sh to be
simplified.
Official reproducible builds are now handled as a build variant, and the command
in Makefile no longer tries to produce reproducible builds.
Instructions in PACKAGING.md have been completely rewritten.
- Use explict ./ for consistency when invoking the script
- Rename script to "prune-cover.sh"
- Build ignore pattern in temporary file, and use grep -f to read it
- Use grep -F for correctness (path can contain dots)
- Add comment in .codecov.yml
Running `make cover` includes code in its report that is explicitly
excluded from the https://codecov.io/gh/elves/elvish/ report. This change
causes both reports to include/exclude the same source files.
This makes the output of "make test" cleaner, and only show the command that
was actually run (instead of a shell if statement).
Also use the race detector on more supported platforms.
The mechanism is now documented in PACKAGING.md.
Also refactor tools/buildall.sh to make it easy to make reproducible builds, and
fix tools/cirrus-deploy.sh.
Now that the module path is "src.elv.sh", doing a "go get" will install the
Elvish binary as "src.elv.sh"; this is not what we want, so move the main
package into a package called "elvish".
Also update "go get" and "go build" commands accordingly.
The default behavior of `go test -cover` ignores coverage by integration
tests. That is, it ignores coverage by tests in a different package. This
penalizes Elvish since Elvish has a lot of integration tests that are
meant to indirectly, but explicitly, exercise code in other packages that
do not have explicit unit tests.
This change makes the test coverage more accurate for the purposes of
this project.
Resolves#1062Resolves#1187
Running "go test -race" on Windows requires GCC, and it appears not all GCC
builds are compatible. Since we can't reliably determine whether the environment
has a good GCC for running the race detector, just don't enable it.
This resolves#1108.
While working on issue #1062 I found myself wanting to generate coverage
reports on my local system. I wrote a trivial shell script to do that.
This simply converts that script into a `make` target.
The `test-race-works && go test -race || go test` formulation causes
tests to be run twice on platforms that support the `-race` option if
any test fails.
Fixes#1085