Releases: onflow/cadence
Releases Β· onflow/cadence
v1.0.0-M9
What's Changed
π₯ Language Breaking Changes
β Features
- Add support for
FunctionType.Purity
in CCF codec by @fxamacker in #3107 - Add support for Attachment and AttachmentType in CCF codec by @fxamacker in #3131
- Add more support for entitlements (
ReferenceType.Authorization
) to CCF codec by @fxamacker in #3139
π Improvements
- Improve update tool: Fix config, improve documentation by @turbolent in #3130
- Require added entitlements to be equal to migrated entitlements rather than supertypes by @dsainati1 in #3134
- Fix migrating values with empty intersection type by @turbolent in #3138
- Pass location-range to value-interface methods by @SupunS in #3140
π Bug Fixes
- Fix EntitlementSetAuthorization.Equal() by making it ignore order of elements by @fxamacker in #3137
- Migrate static types of arrays and dictionaries by @SupunS in #3141
π§ͺ Testing
Full Changelog: v1.0.0-M8...v1.0.0-M9
v1.0.0-M8
What's Changed
β Features
- Contract Update Validator by @dsainati1 in #3069
π Improvements
- Improve migration by @turbolent in #3110
- Improve update tool: Allow releasing a particular branch by @turbolent in #3124
- Improve Cadence-1.0 contract update checker by @SupunS in #3111
- Fix location collection in contract update validator by @SupunS in #3117
- Convert untyped path capability values to ID capability values by @turbolent in #3125
- Allow registering custom type updating rules in contract update validator by @SupunS in #3120
- Rewrite owned intersection types in migration by @turbolent in #3118
π§ͺ Testing
Other Changes
- Merge
release/v1.0.0-M7
tomaster
by @github-actions in #3106 - Dependencies got updated to onflow/flowkit/v2 by @turbolent in #3109
Full Changelog: v1.0.0-M7...v1.0.0-M8
v1.0.0-M7
What's Changed
π₯ Language Breaking Changes
- Unify the requirement for all interface types to have to occur in intersection types by @turbolent in #3090
π Improvements
- Add more information to analysis.Diagnostic by @jribbink in #3082
- Report a proper error for swapping a resource to itself by @SupunS in #3101
- Bring back support for decoding published path capabilities by @turbolent in #3103
- Allow analysis.Load to continue with parsing/checking errors by @jribbink in #3083
π Bug Fixes
- Consider inherited interfaces when checking for member clashes in intersection types by @turbolent in #3093
- Fix FunctionType.Equal() to check Purity equality by @fxamacker in #3105
Other Changes
- Merge
release/v1.0.0-M6
tomaster
by @github-actions in #3100 - Update configuration of downstream dependencies by @turbolent in #3095
Full Changelog: v1.0.0-M6...v1.0.0-M7
v1.0.0-M6
What's Changed
π Improvements
- Improve migrations by @turbolent in #3072
- Improve update script by @turbolent in #3070
- Add support for migrating path capability values in entitlements and static type migrations by @turbolent in #3073
- Replace existing tool to fetch network contracts with Flowdiver-based one by @turbolent in #3058
- Improve member resolvers by @turbolent in #3092
π Bug Fixes
- Remove reference to
destroy
from sema.UnknownSpecialFunctionError by @jribbink in #3074 - Port Validator fix to master by @dsainati1 in #3078
- Fix intersection type migration: also migrate interface types by @turbolent in #3084
- Make capability ID mapping thread-safe by @turbolent in #3085
- Allow contract interface types in intersection types by @turbolent in #3089
π Documentation
- Fixes links to new docs site by @joshuahannan in #3075
Other Changes
- Merge
release/v1.0.0-M5
tomaster
by @github-actions in #3067
Full Changelog: v1.0.0-M5...v1.0.0-M6
v0.42.9
What's Changed
π Bug Fixes
- Port fixes of v0.42.8-patch.4 by @turbolent in #3076
Full Changelog: v0.42.8...v0.42.9
v1.0.0-M5
What's Changed
β Features
- Allow reading from CSV and querying AST using (Go) JQ by @turbolent in #3051
π Improvements
- Add Unwrap method for ParentErrors by @peterargue in #3052
- Don't skip invalid entitlements when creating errors by @dsainati1 in #3056
- Gracefully handle runtime panics in migration by @SupunS in #3066
π Bug Fixes
- Handle optional storage references by @turbolent in #3064
- Fix entitlements migration by @turbolent in #3065
π§ͺ Testing
- Add tests for using keywords as field names by @SupunS in #3057
- Minor improvement in a
revertibleRandom
test by @tarakby in #3060
Full Changelog: v1.0.0-M4...v1.0.0-M5
v1.0.0-M4
What's Changed
π₯ Go API Breaking Chance
- Expose checker in analysis by @turbolent in #3042
β Features
- Use old parser for contract upgrades when legacy upgrade config option is set by @dsainati1 in #3043
π Bug Fixes
π§ͺ Testing
- Test usage of potentially broken types by @turbolent in #3030
Other Changes
- Merge
release/v1.0.0-M3
tomaster
by @github-actions in #3041
New Contributors
Full Changelog: v1.0.0-M3...v1.0.0-M4
v0.42.8
What's Changed
β Features
- Add getter for field count to composite value by @turbolent in #3003
- Allow parsing code in CSV and querying using (Go) JQ by @turbolent in #3022
π Improvements
- Add Unwrap method for ParentErrors - v0.42 backport by @peterargue in #3053
Full Changelog: v0.42.7...v0.42.8
v1.0.0-M3
What's Changed
π₯ Language Breaking Changes
- Reserve more keywords for future proofing by @turbolent in #3019
- Require explicit type annotation for arguments passed to authorized reference parameters by @turbolent in #3023
β Features
- Introduce
toConstantSized
toVariableSizedArray
type by @darkdrag00nv2 in #3028 - Add v0.42 parser package under old_parser by @dsainati1 in #3039
π Improvements
- Improve parsing for backward compatibility rules by @turbolent in #3021
- Fix the entitlements migration by @turbolent in #3026
- Use legacy hashing function for key removal by @SupunS in #3013
- Allow dereferencing references to containers of non-resources by @turbolent in #3034
- Generalize static type migrations by @SupunS in #3033
π Bug Fixes
- Fix
revertibleRandom
with module test by @turbolent in #3025 - Remove Insert-entitled access for toVariableSized by @turbolent in #3031
- Fix gaps in migrations by @turbolent in #3036
Other Changes
- Merge
release/v1.0.0-preview.2
tomaster
by @github-actions in #3024 - Upgrade
exp
package version by @tarakby in #3027
Full Changelog: v1.0.0-preview.2...v1.0.0-M3
v1.0.0-preview.2
What's Changed
π₯ Language Breaking Changes
- Eagerly normalize String and Character values at construction time by @turbolent in #2781
- Add required
mapping
keyword to entitlement mapping usages by @dsainati1 in #2883 - Restrict
capabilities.publish
to account's own capabilities by @turbolent in #2782 - Remove support for custom destructors by @dsainati1 in #2789
- Support for parsing default destroy events by @dsainati1 in #2799
- Type checking for default events by @dsainati1 in #2812
- Merge destructor removal into stable cadence by @dsainati1 in #2928
- throw error on the creation of a nested reference by @dsainati1 in #2965
- New Behavior for Attachments and Entitlements by @dsainati1 in #2921
- Merge Stable Cadence branch into master by @dsainati1 in #2971
- Update interface of
revertibleRandom
by @darkdrag00nv2 in #2976 - Static check to prevent nested references by @dsainati1 in #2970
- Remove deprecated domain separation tag from Crypto contract by @turbolent in #2984
- Implement modulo argument of
revertibleRandom
by @tarakby in #2986
π₯ Go API Breaking Changes
- Add support for injecting types into the environment by @turbolent in #2811
- Allow different base activations per location in checker and interpreter by @turbolent in #2887
β Features
- Add
tryUpdate
method toAccount.Contracts
by @SupunS in #2769 - Add an exists function, allows checking if capability exists/is published by @turbolent in #2778
- Introduce
String.join
function by @darkdrag00nv2 in #2762 - Introduce
String.split
function by @darkdrag00nv2 in #2791 - Check native function declarations by @turbolent in #2821
- Allow native functions to have type parameters by @turbolent in #2850
- Introduce
String.replaceAll
instance function by @darkdrag00nv2 in #2814 - Introduce
InclusiveRange<T: Integer>
type by @darkdrag00nv2 in #2523 - Allow specifying a mapping with source paths for locations in coverage reports by @m-Peter in #2859
- Add support iterating references to iterables by @SupunS in #2876
- Allow injection of functions into composite values, refactor PublicKey based on it by @turbolent in #2878
- add new
revertibleRandom
function by @tarakby in #2896 - Introduce
HashableStruct
type to represent Dictionary keys by @darkdrag00nv2 in #2872 - Allow
InclusiveRange<T>
in a for-in loop by @darkdrag00nv2 in #2892 - Add account type migration by @SupunS in #2923
- Add String normalizing migration by @SupunS in #2937
- Concretize the definition of Primitive type by @darkdrag00nv2 in #2975
- Capability controllers migration by @turbolent in #2912
- Add state migration for removing all values from private domain by @turbolent in #2974
- State migration for type values with two or more interfaces by @turbolent in #2981
- Add getter for field count to composite value by @turbolent in #3002
- Introduce dereference operator for references by @darkdrag00nv2 in #2982
- Add support for dereferencing optional references by @turbolent in #3008
- Merge range type feature by @turbolent in #3009
- Introduce
toVariableSized
to ConstantSizedArray type by @darkdrag00nv2 in #3016 - Allow issuing capability controllers using type values by @turbolent in #3018
- Entitlements Migration by @dsainati1 in #2951
π Improvements
- Replace
simpleTypeIDByType
with a bimap by @dsainati1 in #2775 - Use bimaps in the elaboration by @dsainati1 in #2779
- Refactor runtime test helpers into separate, reusable package by @turbolent in #2800
- Add helpers to get constructor and initializer function type for composite type by @turbolent in #2805
- Replace panic with nil return in
newInjectedCompositeFieldsHandler
by @m-Peter in #2808 - Extend type code generator by @turbolent in #2806
- Refine API of the testing framework by @m-Peter in #2783
- mjs build for cadence-parser by @nialexsan in #2851
- Improve test runtime interface by @turbolent in #2894
- Allow default functions to co-exist with empty function declarations by @SupunS in #2725
- Refactor resource-reference tracking by @SupunS in #2916
- Add types to parsed array and dictionary literals by @bluesign in #2924
- AST improvements by @turbolent in #2949
- Disallow InclusiveRange if T is a non-leaf integer by @darkdrag00nv2 in #2959
- Improve resource-reference tracking by @SupunS in #2958
- Generalize the migrations and make common codes re-usable by @SupunS in #2942
- Improve Account type migration by @SupunS in #2973
- Make entitlement set access incomparable by @turbolent in #2972
- Use IsPrimitiveType to check default destructor params by @dsainati1 in #2980
- Various improvements by @turbolent in #2979
- Report bespoke error for restricted types parsed as type arguments by @dsainati1 in #2985
- Use old hash/ID generation to remove keys by @SupunS in #2987
- Extend pragma expressions by @turbolent in #2993
- Improve error handling in migrations by @SupunS in #3001
- Improve type inference by @turbolent in #3004
- Add type assertion on values passed to
Test.assertEqual
by @m-Peter in #3014 - Improve code related to new InclusiveRange type by @turbolent in #3017
- Defensively check the dereferenced value is not a resource by @turbolent in #3010
π Bug Fixes
- Fix doc (pretty printing) for function declaration without function block by @turbolent in #2774
- Port internal #143 by @turbolent in #2793
- Properly check removed expression for resource loss by @dsainati1 in #2798
- Fix Test framework's TestAccount's type name by @SupunS in #2802
- Fix capability controller deletion by @turbolent in #2788
- meter and deduplicate included entitlement relations by @dsainati1 in #2810
- Use kr/pretty instead of go-test/deep to prevent empty diffs, remove gocap by @turbolent in #2819
- properly access-check optional chaining with entitlements by @dsainati1 in #2825
- Check
before
statements inview
contexts by @dsainati1 in #2835 - Skip adding malformed entitlement relations to maps by @dsainati1 in #2838
- Require full codomain of map when assigning to mapped field by @dsainati1 in #2840
- Port internal 141: Fix swapping in resource array by @turbolent in #2844
- Port internal 144: Fix swap statement evaluation by @turbolent in #2845
- Port internal fix 145: Prevent re-deploy in same transaction by @turbolent in #2846
- Properly set base on loaded attachments during attachment iteration by @dsainati1 in #2847
- Fix memory metering for loading stored values by @turbolent in #2509
- [stable-cadence] Fix field assignment via referen...