Releases: nsoperations/Carthage
Releases · nsoperations/Carthage
0.40.2
0.36.3+nsoperations
- Fixed bug where local binary caching would not work if CARTHAGE_CACHE_COMMAND environment variable was not present and the dependency was not a GitHub dependency.
- Fixed bug where non-existent dependencies supplied to carthage build would result in all dependencies being built.
0.36.2+nsoperations
- Fixed bug where build would fail for frameworks where the framework name differs from the dependency name.
0.36.1+nsoperations
- Fixed bug in determining the swift framework version if a non-default generated objective C header was configured for that framework.
- Fixed documentation for the
--no-use-binaries
build option. - Fixed issues with the resolver regarding the resolution of git references (branch dependencies)
- Enabled verbose resolver logging if
--verbose
option is active duringupdate
- Fixed bug where binary-only frameworks would cause
bootstrap
command to fail because the debug symbol mapper would fail on the sources not being there.
0.36.0+nsoperations
- Added support for local caching of built binaries (when
--no-use-binaries
is not present) - Added support for auto-discovery of frameworks to copy using the
--auto
option for the copy-frameworks command
Caching improvements and scheme filtering
- Added support for a Cartfile.schemes file to be able to limit the schemes considered by Carthage for building. Add the name of the scheme which carthage should consider, one per line.
- Added support for mapping of dSYM build paths to local source paths for debugging with externally built binaries.
- Ensured the internal binaries cache now honors the swift toolchain version and build configuration (Debug/Release).
- Implemented a plugable caching mechanism, supported for all build-related actions with the
--cache-command
option or the CARTHAGE_CACHE_COMMAND environment variable. See the help output (e.g.carthage help build
) for more details. - Ensure all build and archive operations are now also protected with locks to allow concurrent operations on the same Carthage/Checkouts dir or Carthage/Build dir and most importantly on any shared derived data directories.
Locking for concurrent checkout operations
- Ensured operations on the shared caches (binaries/git) are protected with file system locks to allow concurrent running of carthage update or carthage bootstrap jobs.
Fixed resolver and new diagnose command
Up-to-date with version 0.33.0 of the original Carthage. Additionally it contains the following functionality:
- Got rid of the original carthage resolver and the new resolver (flag --new-resolver) in favor of a completely re-written resolver which passes all (performance) test cases (a whole lot of test cases were added, based on json fixtures for problematic dependency trees)
- Added the carthage diagnose command to be able to create offline test fixtures for problematic dependency trees.
- Refactored some project internals, most prominently now use tabs instead of spaces for all indentations (because that's the Xcode default and works with swiftlint autoformat). Also removed quick as test implementation because it caused flaky test failures and prohibited running individual tests from the Xcode UI. Made sure that
make xcodeproj
will generate a script stage for copying the test resources (requires thexcodeproj
gem to be installed)