A Multiplatform GUI for Hashing, written in Compose for Desktop

Overview

HashHash

A Multiplatform GUI for Hashing, written in Compose for Desktop

Report Bug . Request Feature

Contributors Issues License

About The Project

HashHash is a Multiplatform Graphical User Interface for hashing files, written in JetBrains Compose for Desktop. It was created with the purpose of providing a clean UI that can hash files whilst remaining multiplatform. By nature of Jetpack Compose for Desktop, it supports Windows, Linux and MacOS.

Supporting algorithms

Name
MD2
MD5
SHA-1
SHA-224
SHA-256
SHA-384
SHA-512
SHA3-224
SHA3-256
SHA3-384
SHA3-512

Built With

Getting Started

HashHash is currently in its early stages. All base features are implemented, however these likely contain bugs. Despite this, this project is stable enough to be used by anyone. No installers are currently provided, however they will be once the project is sufficiently stable. Until then, you are free to compile the project yourself.

Prerequisites

To build HashHash, you will need OpenJDK 17 as this project is targets the JVM. Personally, I use Temurin but any other would work. In addition to this, you will require the IntelliJ IDEA IDE.

  1. Install a JDK of your choice.

  2. Install IntelliJ IDEA

Installation

  1. Clone the repo

  2. Run the project in IntelliJ IDEA. The Compose-JB GitHub documentation provides a more detailed explanation on how to do this.

Usage

Once HashHash has been ran, you can select your hashing algorithm of choice and then input a file from your operating system's file manager. The file will begin hashing straight away and output the result.

Roadmap

  • Add all main hashes
  • Improve UI
  • Package installers for each targeted platform
  • Add further hashes

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  • If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
  • Please make sure you check your spelling and grammar.
  • Create individual PR for each suggestion.
  • Please also read through the Code Of Conduct before posting your first idea as well.

Creating A Pull Request

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

GNU GPLv3 Logo

HashHash is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Authors

Comments
  • Bump jvm from 1.6.10 to 1.6.20

    Bump jvm from 1.6.10 to 1.6.20

    Bumps jvm from 1.6.10 to 1.6.20.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once CI passes on it, as requested by @russellbanks.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 4
  • With no file selected, the Calculate button can still be pressed

    With no file selected, the Calculate button can still be pressed

    Dear Russell Banks,

    Unfortunately, when you have lately opened this program & thus have no file chosen, the Calculate button still registers press events.

    Convention would be to:

    • Disable the button until all required inputs are given and therefore the hash is ready to be calculated, or
    • Produce a suitable error message explaining the user's blunder, requesting they provide a file

    Please find a detailed example below:

    untitled

    As is distinctly visible, no file has been opened & the button click event has been called, wrongly causing Windows to set forth an alternate loading cursor.

    Whilst I am obviously aware of the minute complexity of this bug compared to your assumed over decorated schedule, it is nevertheless, naturally, something I would greatly appreciate seeing patched in an upcoming release.

    Thank you for taking the time to read & address this issue, I wish you the best of luck in the future!

    Yours Sincerely,

    Mr. Jack William Devey

    opened by jackdevey 2
  • Bump aurora_version from 1.0.1 to 1.1.0

    Bump aurora_version from 1.0.1 to 1.1.0

    Bumps aurora_version from 1.0.1 to 1.1.0. Updates aurora-window from 1.0.1 to 1.1.0

    Release notes

    Sourced from aurora-window's releases.

    Release 1.1.0

    💔 marks an incompatible API / binary change 🎁 marks new features 🔧 marks bug fixes and general improvements

    Dependencies for core libraries

    • Compose Desktop: 1.0.0 ➡ 1.1.0
    • Kotlin: 1.5.31 ➡ 1.6.10
    • Gradle: 7.3 ➡ 7.4

    Release notes

    • 🎁 More interaction granularity for command button actions
      • Auto-repeat action. Enabled with autoRepeatAction boolean, initial delay configured by autoRepeatActionInterval, subsequent delays configured by autoRepeatSubsequentInterval
      • Fire action trigger, configured with actionFireTrigger and the new ActionFireTrigger enum that has three values:
        • OnRollover to fire action on rollover
        • OnPressed to fire action on press
        • OnPressReleased to fire action on press release (the default)
    • 🎁 Add a breadcrumb bar composable for quick navigation of multi-level hierarchies, such as file systems, XML documents or abstract syntax trees. See documentation.
    • 🎁 Support shader-based fill painters.
    • 💔 Revisit the signature of shader-based decoration painters for API consistency.
    • 💔 Convert command button panel to use lazy loading. Major performance improvements for panels with thousands+ elements.
    • 🔧 Fix incorrect alignment of command button panel content when the content fits without the need to kick in scrolling.
    • 🔧 Eliminate flash of color artifacts on opening popup windows.
    • 🔧 Use bold font weight on decorated window titles.
    • 🔧 Fix text overflow in command button panels with really long text on individual commands.
    • 🔧 Fixexceptions when window is made smaller than the original size and starts to cut off some of the content.
    • 🔧 Fix the display name in Cerulean skin definition.
    Commits

    Updates aurora-component from 1.0.1 to 1.1.0

    Release notes

    Sourced from aurora-component's releases.

    Release 1.1.0

    💔 marks an incompatible API / binary change 🎁 marks new features 🔧 marks bug fixes and general improvements

    Dependencies for core libraries

    • Compose Desktop: 1.0.0 ➡ 1.1.0
    • Kotlin: 1.5.31 ➡ 1.6.10
    • Gradle: 7.3 ➡ 7.4

    Release notes

    • 🎁 More interaction granularity for command button actions
      • Auto-repeat action. Enabled with autoRepeatAction boolean, initial delay configured by autoRepeatActionInterval, subsequent delays configured by autoRepeatSubsequentInterval
      • Fire action trigger, configured with actionFireTrigger and the new ActionFireTrigger enum that has three values:
        • OnRollover to fire action on rollover
        • OnPressed to fire action on press
        • OnPressReleased to fire action on press release (the default)
    • 🎁 Add a breadcrumb bar composable for quick navigation of multi-level hierarchies, such as file systems, XML documents or abstract syntax trees. See documentation.
    • 🎁 Support shader-based fill painters.
    • 💔 Revisit the signature of shader-based decoration painters for API consistency.
    • 💔 Convert command button panel to use lazy loading. Major performance improvements for panels with thousands+ elements.
    • 🔧 Fix incorrect alignment of command button panel content when the content fits without the need to kick in scrolling.
    • 🔧 Eliminate flash of color artifacts on opening popup windows.
    • 🔧 Use bold font weight on decorated window titles.
    • 🔧 Fix text overflow in command button panels with really long text on individual commands.
    • 🔧 Fixexceptions when window is made smaller than the original size and starts to cut off some of the content.
    • 🔧 Fix the display name in Cerulean skin definition.
    Commits

    Updates aurora-theming from 1.0.1 to 1.1.0

    Release notes

    Sourced from aurora-theming's releases.

    Release 1.1.0

    💔 marks an incompatible API / binary change 🎁 marks new features 🔧 marks bug fixes and general improvements

    Dependencies for core libraries

    • Compose Desktop: 1.0.0 ➡ 1.1.0
    • Kotlin: 1.5.31 ➡ 1.6.10
    • Gradle: 7.3 ➡ 7.4

    Release notes

    • 🎁 More interaction granularity for command button actions
      • Auto-repeat action. Enabled with autoRepeatAction boolean, initial delay configured by autoRepeatActionInterval, subsequent delays configured by autoRepeatSubsequentInterval
      • Fire action trigger, configured with actionFireTrigger and the new ActionFireTrigger enum that has three values:
        • OnRollover to fire action on rollover
        • OnPressed to fire action on press
        • OnPressReleased to fire action on press release (the default)
    • 🎁 Add a breadcrumb bar composable for quick navigation of multi-level hierarchies, such as file systems, XML documents or abstract syntax trees. See documentation.
    • 🎁 Support shader-based fill painters.
    • 💔 Revisit the signature of shader-based decoration painters for API consistency.
    • 💔 Convert command button panel to use lazy loading. Major performance improvements for panels with thousands+ elements.
    • 🔧 Fix incorrect alignment of command button panel content when the content fits without the need to kick in scrolling.
    • 🔧 Eliminate flash of color artifacts on opening popup windows.
    • 🔧 Use bold font weight on decorated window titles.
    • 🔧 Fix text overflow in command button panels with really long text on individual commands.
    • 🔧 Fixexceptions when window is made smaller than the original size and starts to cut off some of the content.
    • 🔧 Fix the display name in Cerulean skin definition.
    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Update dependency io.insert-koin:koin-core to v3.3.0

    Update dependency io.insert-koin:koin-core to v3.3.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | io.insert-koin:koin-core (source) | 3.2.2 -> 3.3.0 | age | adoption | passing | confidence |


    Release Notes

    InsertKoinIO/koin

    v3.3.0

    [koin-core]

    • [UPDATED] - lib update - Kotlin 1.7.21
    • [FIXED] - #​1306 #​1016 - Add native Module extensions to allow add defintions without inlined type
    • [FIXED] - #​834 - ensure onClose is called when unloading module or closing Koin
    • [FIXED] - #​1353 - parameters stack is now secured with call synchronization
    • [UPDATED] - #​1359 - constructor DSL udpate to take until 22 parameters into account
    • [FIXED] - #​1463 - Fix to allow binding of same type in the current module
    • [UPDATED] - Documentation update - #​1469 #​1438
    • [UPDATED] - Logger API inlined and cleand out - #​1271
    • [FIXED] - Engine resolution race condition #​1465
    • [UPDATED] - Use of KoinDsl marker to protect the Koin DSL

    [koin-test]

    • [NEW] - verify() on a Module to verify all constructors injection with current Koin configuration (static verification). This comes as a replacement proposal for checkModules, as a more convenient way to verify a configuration with static verification, more than sandbox running with mocks

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Make macOS icon fit Apple Human Interface Guidelines

    Make macOS icon fit Apple Human Interface Guidelines

    The previous icon I created in #44 doesn't follow the correct standards for macOS icons

    Before, the icon would fill the entire space available, making it appear much larger than others

    Now, the icon fits the icon grid bounding box in the template below

    I just used the svg icon provided, there is no added gradients or 3D tools (as you can see in the template)

    Screenshot 2022-07-30 at 20 18 54
    opened by jackdevey 1
  • Update dependency org.jetbrains.kotlinx:kotlinx-datetime to v0.3.3

    Update dependency org.jetbrains.kotlinx:kotlinx-datetime to v0.3.3

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jetbrains.kotlinx:kotlinx-datetime | 0.3.2 -> 0.3.3 | age | adoption | passing | confidence |


    Release Notes

    Kotlin/kotlinx-datetime

    v0.3.3

    • Just updated Kotlin dependency to 1.7.0-Beta and kotlinx.serialization to 1.3.2

    Configuration

    📅 Schedule: At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Update plugin org.jetbrains.kotlin.jvm to v1.6.21 - autoclosed

    Update plugin org.jetbrains.kotlin.jvm to v1.6.21 - autoclosed

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jetbrains.kotlin.jvm (source) | 1.6.10 -> 1.6.21 | age | adoption | passing | confidence |


    Release Notes

    JetBrains/kotlin

    v1.6.21

    Changelog

    Compiler
    • KT-51979 "AssertionError: No modifier list, but modifier has been found by the analyzer" exception on incorrect Java interface override
    • KT-51893 Duplicated [OVERRIDE_DEPRECATION] on overridden properties
    • KT-51927 Native: The symbol of unexpected type encountered during IR deserialization error when multiple libraries have non-conflicting declarations with the same name
    • KT-51843 Functional interface constructor references are incorrectly allowed in 1.6.20 without any compiler flags
    • KT-51672 JVM IR: Inline class mangling issue in interface default methods split across multiple modules
    • KT-51711 Compiler warning is displayed in case there is 'if' else branch used with elvis
    • KT-49317 "IllegalStateException: Parent of this declaration is not a class: FUN LOCAL_FUNCTION_FOR_LAMBDA" with parameter of suspend type with the default parameter
    IDE. Native
    • KTIJ-20819 Native debugging support: "Debug is impossible without lldb binaries required by Kotlin/Native" on "Attach to process"
    JavaScript
    • KT-52010 K/JS IR: both flows execute when using elvis operator
    • KT-51973 KJS / IR overridden properties of inherited interface missing
    • KT-50504 KJS / IR: Transpiled JS incorrectly uses the unscrambled names of internal fields
    Tools. Gradle
    • KT-51837 kotlin-gradle-plugin:1.6.20 fails xray scan on shadowed Gson 2.8.6.
    Tools. Gradle. Multiplatform
    • KT-51810 MPP / Gradle: Dependency locking fails with 1.6.20
    • KT-51765 com.android.lint in multiplatform project without android target should not trigger warning

    Checksums

    | File | Sha256 | | --- | --- | | kotlin-compiler-1.6.21.zip | 632166fed89f3f430482f5aa07f2e20b923b72ef688c8f5a7df3aa1502c6d8ba | | kotlin-native-linux-x86_64-1.6.21.tar.gz | af51f6ae244bb19979fbae6dc3afdca7bae42568d6a33f0fa331edd665a611fa | | kotlin-native-macos-x86_64-1.6.21.tar.gz | ce74cc3bc874a42e9b912515626c563dee075503d0c3f55c24cd75724986f020 | | kotlin-native-macos-aarch64-1.6.21.tar.gz | 92426f943b4ad18fb37a1b7ef5f2d7d872f67f228e232a34a9890993edf9b4c5 | | kotlin-native-windows-x86_64-1.6.21.zip | ac520bf2f66197fec1ff6c666432cb908bf49e39b9266dd6979fa6e2c0294206 |

    v1.6.20

    Compiler
    New Features
    • KT-48217 Add an annotation JvmDefaultWithCompatibility to allow generating DefaultImpls classes if -Xjvm-default=all option is used
    • KT-49929 [FIR] Support programmatic creation of annotation class instances
    • KT-49276 Warn about potential overload resolution change if Range/Progression starts implementing Collection
    • KT-47902 Do not propagate method deprecation through overrides
    • KT-49857 Require Xcode 13 for building Kotlin/Native compiler
    • KT-47701 Support instantiation of annotation classes on Native
    • KT-46085 Support experimental parallel compilation of a single module in the JVM backend
    • KT-46603 Generate SAM-conversions to Java interfaces extending 'java.io.Serializable' as serializable using java.lang.invoke.LambdaMetafactory
    Performance Improvements
    • KT-50156 HMPP: Slow frontend/ide performance in OKIO (ExpectActualDeclarationChecker)
    • KT-50073 Performance regression in adapted function references
    • KT-50076 Performance regression in super call to an interface member in $DefaultImpls
    • KT-50080 Performance regression in string template with generic property with primitive upper bound
    • KT-50084 Performance regression in concatenation with 'String?'
    • KT-50078 Performance regression in for-in-array loop
    • KT-50039 Performance regression in inner class constructor call with default parameters
    • KT-48784 An anonymous class has fields for variables that are only used in the constructor
    • KT-42010 Generate IINC instruction for postfix increment in JVM_IR
    • KT-48433 JVM_IR don't generate null check on 'this$0' parameter of inner class constructor
    • KT-48435 JVM_IR ConstForLoopBenchmark performance regression
    • KT-48507 JVM_IR ForLoopBenchmark regressions
    • KT-48640 Performance regression in 'longDownToLoop' benchmarks
    • KT-29822 Generate specialized bytecode for loops withIndex over unsigned arrays
    • KT-48669 Generate optimizable counter loop for loops over indices of unsigned arrays
    • KT-49444 Possible performance degradation with UInt downTo loop
    • KT-48944 Possible performance regression with comparison of local KFunctions
    • KT-17111 Eliminate redundant store/load instructions when the value stored is simple
    • KT-36837 Generate more compact code for for-in-range loop in JVM_IR
    • KT-48947 JVM / IR Possible performance regression with string templates
    • KT-48931 JVM / IR: Performance degradation with string concatenation
    • KT-36654 Generate more compact bytecode for safe call in JVM_IR
    Fixes
    • KT-24643 Prohibit using a type parameter declared for an extension property inside delegate
    • KT-51747 Make KtCallableDeclaration.getContextReceivers default to preserve compatibility
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-43493 NI: @​BuilderInference prevents compilation error of "Operator '==' cannot be applied to 'Long' and 'Int'"
    • KT-51649 Kotlin/Native: reduce binary size of watchosArm32 and iosArm32 targets by limiting inlining of runtime functions
    • KT-48626 JVM IR: incorrect behavior for captured for-loop parameter since 1.6.20-dev-723
    • KT-51036 JVM / IR: "NullPointerException: Parameter specified as non-null is null" with synchronized and companion object
    • KT-51471 Native: incorrect debug information when inheriting suspend fun invoke implementation
    • KT-51352 "ClassCastException: class ScopeCoroutine cannot be cast to class Iterable" caused by coroutines and context receivers
    • KT-51271 "ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3" with inlining of context function
    • KT-47084 JVM IR: "AssertionError: inconsistent parent function for CLASS LAMBDA_IMPL" with tailrec function default parameter nested inline lambda
    • KT-30616 Script: "Don't know how to generate outer expression" for top-level variable reference from static context (companion object, enum)
    • KT-50520 "NPE: containingDeclaration.ac…lDeclarationType.REGULAR) must not be null" with implicit type on self-referencing lambda in a builder
    • KT-51353 IncompatibleClassChangeError: Expected non-static field com.soywiz.korim.color.Colors.BLACK
    • KT-48945 JVM IR: special bridge for get is not generated in a Map subclass
    • KT-48499 Interface call with an inline/value parameter generates AbstractMethodError after rebuilding the module, but NOT the file.
    • KT-49998 JVM: missing default value for annotation parameter of an unsigned type
    • KT-49793 JVM: IncompatibleClassChangeError: Expected non-static field when property delegation uses receiver of another delegated property
    • KT-51302 Kotlin/Native 1.6.20-M1 compiler fails because of assertion in NativeAnnotationImplementationTransformer
    • KT-51148 "AssertionError: At this stage there should be no remaining variables with proper constraints" caused by two type parameters
    • KT-50970 Kotlin/Native: use arm instruction set instead of thumb-2 for iosArm32 and watchosArm32 targets
    • KT-50843 Kotlin/Native: LLVM constant merge pass does not work for Kotlin constants
    • KT-51157 JVM / IR: "IndexOutOfBoundsException: Index: 1, Size: 1" caused by interface hierarchy and UInt method parameter
    • KT-50498 Exception after analysing an erroneous lambda
    • KT-50258 equals() returns false on the same enum instances if we check it for the second time in when
    • KT-51062 Progressions resolve changing warning isn't reported for Java methods
    • KT-48544 JVM / IR: "UnsupportedOperationException: Unknown structure of ADAPTER_FOR_CALLABLE_REFERENCE" with callable reference ::arrayOf
    • KT-50978 [Native] Error while building static cache: NoSuchElementException at IrTypeInlineClassesSupport.getInlinedClassUnderlyingType(InlineClasses.kt:341)
    • KT-50977 [Native] Error while building static cache: IllegalStateException: Class CLASS ENUM_ENTRY is not found at KonanIrlinkerKt.findClass(KonanIrlinker.kt:229)
    • KT-50976 [Native] Error while building static cache: IllegalStateException: No descriptor found at DescriptorByIdSignatureFinder.findDescriptorForPublicSignature(DescriptorByIdSignatureFinder.kt:157)
    • KT-51040 Type inference fails on 1.6: "Cannot use 'CapturedType(*)' as reified type parameter" with EnumSet and elvis operator
    • KT-51080 Line number in mapping for the first instruction is lost
    • KT-49526 JVM IR: Function reference with non-denotable intersection type argument is not inlined and is incorrectly approximated
    • KT-50399 Error: unexpected variance in super type argument: out @​0
    • KT-50649 JVM IR: ClassCastException when returning Result as generic type
    • KT-50617 JVM IR: java.lang.IndexOutOfBoundsException "Empty list doesn't contain element at index 0" when class and interface have the same name and extension function is used
    • KT-50856 SAM conversion generates invalid bytecode for generics
    • KT-45693 False negative INCOMPATIBLE_TYPES with when with generic subject
    • KT-49903 JVM IR: InlineOnly optimization leads to behavior change for println with mutating System.out
    • KT-51022 Fix error messages for resolution ambiguity with stub types
    • KT-51035 PSI2IR: "org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtCallExpression:" caused by recursive call of java function
    • KT-50797 Implement fix for false negative UPPER_BOUND_VIOLATED with generic typealias using not all type parameters as arguments for underlying type
    • KT-50878 Usage of contextual declarations from third-party library is allowed without -Xcontext-receivers
    • KT-49829 Wrong "cast can never succeed" diagnostic with builder inference
    • KT-49828 Improve builder inference diagnostics with overload resolution ambiguity
    • KT-50989 CCE cause by EmptySubstitutor in ResolutionWithStubTypesChecker
    • KT-49729 Implement deprecation warning for private constructors of sealed classes
    • KT-49349 Implement deprecation for invalid if as expression in rhs of elvis
    • KT-46285 [SEALED_SUPERTYPE_IN_LOCAL_CLASS] Error message isn't adopted to local objects and sealed interfaces
    • KT-49002 Allow OptIn marker on override if base class has the same marker
    • KT-48899 Report warnings on overrides with wrong types nullability
    • KT-49461 Implement prohibitation of access to members of companion of enum class from initializers of entries of this enum
    • KT-49754 Kotlin/JS: @​JsExport on enum class reports NON_EXPORTABLE_TYPE warning
    • KT-49598 Misleading error message "Using @​JvmRecord is only allowed with -jvm-target 15 and -Xjvm-enable-preview flag enabled"
    • KT-44133 Inline classes: class literal in annotation arguments uses underlying type
    • KT-47703 ClassCastException: Programmatically created annotation can't hold Array<KClass<*>>
    • KT-47549 JVM / IR: Null argument in ExpressionCodegen for parameter VALUE_PARAMETER CONTINUATION_CLASS caused by suspend function inside "fun interface" in another file
    • KT-50120 HMPP: False positive [NO_VALUE_FOR_PARAMETER] for expect function usages
    • KT-49864 JVM IR: NoSuchMethodError calling default interface method with inline class return type in -Xjvm-default=all mode
    • KT-49812 JVM / IR: "java.lang.VerifyError: Bad return type" when using Result type attribute + extension function with same name
    • KT-49936 Extension property in a data class with the same name as the constructor parameter leads to incorrect component function being resolved and generated
    • KT-48181 "ISE: Null argument in ExpressionCodegen for parameter VALUE_PARAMETER" on creating instance of kotlin.Metadata
    • KT-50215 VerifyError caused by missing cast after is check in when
    • KT-49977 "Parameter specified as non-null is null" when inline class implements interface method with default parameters
    • KT-50385 DUPLICATE_LABEL_IN_WHEN is reported on incorrect branches
    • KT-49092 JVM: ArrayIndexOutOfBoundsException on compiling call with if expression and TODO() arguments
    • KT-48987 JVM / IR: Smartcast, which never succeed, crashes the compiler
    • KT-50277 Invalid bytecode generated for inline lambda in suspend function
    • KT-50219 FIR DFA/CFA: no smart cast after null check and assignment
    • KT-44561 FIR DFA: extract non-null info from comparison against variable with initial constant value
    • KT-44560 FIR DFA: propagate non-null info to original variables in not-null assertion or cast expression
    • KT-50278 FIR: accidental resolve to inaccessible value parameter
    • KT-47483 JVM IR: "NoSuchElementException: Sequence contains no element matching the predicate" on compiling Array instantiation with TODO
    • KT-50304 EXC_BAD_ACCESS at IntrinsicsNative.kt starting coroutine on object with suspend fun as supertype
    • KT-49765 JVM: ClassCastException when trying to add object to EmptyList
    • KT-46879 "AssertionError: Stack should be spilled before suspension call" with Flow and reified type
    • KT-50172 "AssertionError: Not a callable reflection type" on local function reference with the same name as local variable
    • KT-49443 JVM IR, Script: "IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" with constructor call of class that has a top-level extension function call
    • KT-50193 Garbage collection is not working the same way after jvm-ir-backend change
    • KT-19424 Compilation exception for script with property delegate calling operator invoke on an object
    • KT-43995 Script: "IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" if companion object initializer calls method on list
    • KT-47000 Allow graceful migration to -Xjvm-default=all-compatibility by allowing to inherit from interfaces even in the old (-Xjvm-default=disable) mode
    • KT-50180 FIR: not enough information to infer type variable for definitely not null type
    • KT-50163 FIR: ISE unsupported compile-time value BLOCK on complex annotations
    • KT-50171 JVM IR: "UninitializedPropertyAccessException: Parent not initialized: IrVariableImpl" on SAM-converted property setter reference with Double parameter inside lambda
    • KT-50140 Internal error on explicit string concatenation of generic type value with 'String' upper bound
    • KT-49992 Anonymous object should not have access to private members from supertypes
    • KT-49973 Check existing of default error message for all diagnostics
    • KT-50019 Property delegated to callable reference: "ISE: Local class should have its name computed in InventNamesForLocalClasses" with -Xno-optimized-callable-references
    • KT-49645 JVM / IR: "IllegalStateException: Local class should have its name computed" caused by default suspend function in interface and value class
    • KT-50028 Incorrect implicit casts from Unit
    • KT-49615 JVM / IR: "Exception during IR lowering" with list of value classes with non-trivial constructor inside suspend lambda
    • KT-49127 FIR: smart cast is not performed after comparison
    • KT-48708 Incorrect cast from Unit to Int
    • KT-48376 FIR: False positive UNITIALIZED_VARIABLE after try/finally with return from try
    • KT-48113 FIR: (false) positive EQUALITY_NOT_APPLICABLE for intersection with platform type
    • KT-48305 FIR: incorrect raw type cast
    • KT-48378 FIR: synthetic accessor lowering should not attempt to modify other files
    • KT-48634 FIR: false property-setter-function resolve cycle
    • KT-48621 FIR: SyntheticAccessorLowering should not attempt to modify other files for protected JvmField
    • KT-48381 Invalid LLVM module: verification failure of createInlineClassInArgumentPosition.kt
    • KT-48527 Native: top-level properties in files with @​Test functions are initialized eagerly even if lazy initialization is enabled
    • KT-48559 IllegalArgumentException: Unexpected super type argument: * @​ 0 during IR lowering
    • KT-48687 IR dump mismatch after deep copy with symbols in IR text test
    • KT-44811 [FIR] Exception in body resolve of new contracts
    • KT-48363 FIR behaves differently in case of resolution between classifier and top-level property
    • KT-48801 "AssertionError: Stack should be spilled before suspension call" with Flow and crossinline
    • KT-46389 JVM / IR: "ClassCastException: class IrGetValueImpl cannot be cast to class IrConst" with inheritance of supertypes member functions with similar signatures
    • KT-47797 Regression during migration to 1.6 in compiler
    • KT-47987 Can't infer a postponed type variable based on callable reference receiver type
    • KT-48446 "IllegalStateException: IrErrorType (getErasedUpperBound)" caused by suspend function reference
    • KT-48651 Collect intermediate annotations during type expanding
    • KT-48754 JVM IR: in EnclosingMethod leads to IncompatibleClassChangeError on Android 5.0
    • KT-45034 Use the new type inference for top-level callable references
    • KT-49001 OptIn marker should spread from class to its members, taking into account real dispatch receiver type
    • KT-49038 Generics are discriminated during callable references resolution (false negative)
    • KT-48954 JVM IR: IllegalAccessError when using Java method reference in constructor
    • KT-48284 JVM / IR: "IllegalStateException: Function has no body: FUN STATIC_INLINE_CLASS_REPLACEMENT" caused by inline member toString of value class and string interpolation
    • KT-49053 JVM / IR: "AssertionError: Unbound symbols not allowed" on inheriting a protected Java method that returns a package private class from a differently-named file
    • KT-49106 JVM: infinite recursion with overridden default suspend interface method where override calls super
    • KT-45345 FIR DFA: FirDataFlowAnalyzer seems to add wrong type constraints for type parameters
    • KT-44513 FIR DFA: extract non-null info from x?.y!!
    • KT-44559 FIR DFA: propagate non-null info from not-null assertion (!!)
    • KT-49073 FIR: REDUNDANT_MODIFIER and DEPRECATED_MODIFIER_PAIR should be warnings
    • KT-46371 FIR: Investigate FunctionType -> ExtensionFunctionType coercion
    • KT-49078 FIR: false positive TYPE_VARIANCE_CONFLICT
    • KT-47135 FIR: local class references does not compile
    • KT-48600 NON_TAIL_RECURSIVE_CALL missing for calls inside lambda
    • KT-48602 NON_TAIL_RECURSIVE_CALL missing for calls with explicit dispatch receiver to a singleton
    • KT-48982 JVM / IR: KotlinNothingValueException caused by function with local object
    • KT-49087 FIR: false positive REPEATED_ANNOTATION
    • KT-48648 JVM IR: "AssertionError: Should be primitive or nullable primitive type" with @​JvmField generic property with Number upper bound
    • KT-49069 FIR: False positive INAPPLICABLE_JVM_NAME on getter
    • KT-49203 JVM IR: "AssertionError: Unbound symbols not allowed" with lateinit var and plusAssign operator convention call
    • KT-48993 JVM / IR: "IllegalStateException: Validation failed in file <multi-file facade ...>" using @​JvmMultifileClass and one of the symbols in the file exposes a @​JvmInline value class
    • KT-48938 FIR: Investigate how priorities should work in case SAM-conversion + type parameters
    • KT-49129 FIR: false positive of INNER_CLASS_OF_GENERIC_THROWABLE_SUBCLASS
    • KT-49076 FIR: false positive "An annotation argument must be compile-time constant" on array of imports
    • KT-49222 FIR: StackOverflow in MethodSignatureMapper
    • KT-49083 FIR erroneously requires default value parameters for override calls when imported from object
    • KT-49135 FIR: ambiguity between type alias and function
    • KT-49134 FIR makes no difference between lambda with empty parameter list and without explicit parameter list
    • KT-49301 FIR: Unresolved reference: for object inherited from inner class
    • KT-49070 FIR: ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED with type parameter / class conflict
    • KT-49133 FIR: protected java.lang.Throwable constructor is not available
    • KT-49407 JVM / IR: "java.lang.VerifyError: Bad local variable type" with "Int.mod" inside "Long.mod" and non-trivial argument
    • KT-44975 SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC: confusing error message
    • KT-38698 MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED error message: interface is called a "class"
    • KT-45001 Confusing warning message "This class can only be used with the compiler argument" for @​OptIn annotation
    • KT-49411 JVM / IR: NullPointerException during IR lowering with @​JvmField property in loop range
    • KT-49260 FIR: make FirBasedSymbol hierarchy to correspond FirDeclaration hierarchy
    • KT-49289 FIR: false positive "return required" for if/else with inlined return in branch
    • KT-49316 JVM / IR: "AssertionError: SyntheticAccessorLowering should not attempt to modify other files!" caused by unreachable code which try to modify val from the other package
    • KT-45915 NoDescriptorForDeclarationException: Descriptor wasn't found for declaration FUN with circular module dependencies in JPS
    • KT-49288 FIR2IR: consider generating all fake override calls properly
    • KT-42784 FIR2IR: first create fake overrides, then bind overridden to them
    • KT-48816 Kotlin/Native Symbol for public platform.darwin/NSObject|null[100] is unbound
    • KT-49372 JVM / IR: Incorrect work of the loop optimization for mutable variable
    • KT-49356 Native: UnsupportedOperationException: RETURNABLE_BLOCK caused by nested return with boxing and inline
    • KT-49659 JVM IR: Missing value class mangling in SAM wrappers for fun interfaces from different modules
    • KT-47101 Incorrect scope for supertypes in companion objects
    • KT-49360 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"
    • KT-48430 JVM: ClassCastException with inline class as generic argument for type parameter used in a function type
    • KT-49575 IllegalArgumentException: Unhandled intrinsic in ExpressionCodegen with circular module dependencies in JPS
    • KT-47669 IR inliner doesn't handle inner class functions referring outer this
    • KT-48668 JVM IR: "ISE: Value at CLASS must not be null for CLASS" for modules with a dependency cycle
    • KT-49370 JVM / IR: "java.lang.VerifyError: Bad local variable type" with "fun Long.mod" and non-trivial argument
    • KT-46744 Memory Leaks in Kotlin daemon
    • KT-48806 False-negative USED_AS_EXPRESSION for unreachable catch clauses
    • KT-45972 FIR: type is incorrectly resolved to private
    • KT-46968 Remove FirCompositeScope from type resolve
    • KT-49072 FIR: accidental resolve to private-in-file type
    • KT-34822 FIR scopes: deal with nested / inner classes and type parameter priority
    • KT-49702 Exception from RENDER_WHEN_MISSING_CASES diagnostic on malformed sealed class inheritor
    • KT-49860 [FIR] Add smartcast expression to synthetic subj access
    • KT-49836 Inference fails on lambda and adjacent function expressions with receiver
    • KT-49832 Inference fails on lambda for function types with extension parameter
    • KT-44022 Excessive diagnostics range for DECLARATION_CANT_BE_INLINED
    • KT-48690 VERSION_REQUIREMENT_DEPRECATION_ERROR message: use current compiler version instead of language version
    • KT-49609 Incorrect grammar in DATA_CLASS_NOT_PROPERTY_PARAMETER error message
    • KT-49600 Misspelled error message for non-constructor properties with backing fields in @​JvmRecord class
    • KT-49339 Warn about synchronizing on value classes
    • KT-49950 Compilation failed: An operation is not implemented: IrBasedTypeParameterDescriptor
    • KT-43604 Problem with initialization order
    • KT-23890 Default arguments are not transferred from expect generic member functions
    • KT-48811 Expect/actual class with default constructor argument values can not be instantiated from a shared source set without passing arguments (with HMPP enabled)
    • KT-48106 FIR: incorrect type inference in provideDelegate receiver
    • KT-48325 Safe call operator prevents object from being garbage collected before leaving function
    • KT-50004 Linking kotlinx.serialization crashes on Native and JS IR backends
    • KT-49311 Missing FIR checker for unresolved references in import statement
    • KT-48104 FIR does not see NotNull/Nullable annotations on type arguments
    • KT-46812 [FIR] Make FIR diagnostics not related to Diagnostics from FE 1.0
    • KT-37374 [FIR] Add CheckInfixModifier resolution stage
    • KT-38351 FIR: Support CheckOperatorModifier resolution stage
    • KT-39614 [FIR] Fix building CFG for different candidates of plus assign call
    • KT-40197 [FIR] Strange Behaviour of Type Arguments
    • KT-40362 [FIR] Match type arguments with type parameters of corresponding qualifier
    • KT-40375 FIR: No transformation implicit type -> error type for function value parameters
    • KT-40585 [FIR] Incorrect type for 1/1.0
    • KT-42525 [FIR] Incorrect IR produced for java.lang.Byte.MAX_VALUE
    • KT-43359 FIR: Check applicability type for callable reference with unbound receiver
    • KT-43378 FIR: Support or prohibit via call checker callable references to member extensions
    • KT-43289 FIR: Correctly load irrelevant override for special built-ins
    • KT-44558 Annotation arguments const expr support is missing in FIR
    • KT-45223 [FIR] Ambiguity between explicit and synthetic removeAt
    • KT-42215 FIR: callable reference resolution with type constraints at call-sites
    • KT-45520 FIR: NONE_APPLICABLE for unsafe call to function with overloads instead of UNSAFE_CALL
    • KT-46410 [FIR] Transform of FirAugmentedArraySetCall leaves erroneous nodes in control flow graph
    • KT-46421 FIR: Investigate builder-inference cases
    • KT-43948 FIR: hidden unresolved callable reference
    • KT-46558 FIR DFA: run once contract is not considered when analyzing lambda
    • KT-47125 FIR: Do not avoid trivial constraints if they aren't from upper bounds
    • KT-43691 FIR: false positive VARIABLE_INITIALIZER_IS_REDUNDANT with usage in try...finally
    • KT-37311 [FIR] Support inference of callable references with type variable as expected type
    • KT-31972 Error type encountered: org.jetbrains.kotlin.types.ErrorUtils$UninferredParameterTypeConstructor@1f5b38c (ErrorType).
    • KT-48761 Report NO_TAIL_CALLS_FOUND on 'tailrec' modifier, not on the whole function header
    • KT-47647 NI: Function reference to Java static method can't compile if passed directly as KFunction1 parameter
    • KT-46995 Fix setters implicit types only resolved on full body resolve
    • KT-46359 Kotlin 1.5 lambda is not Java-serializable by default
    • KT-49282 FIR: suspend conversion does not work inside suspend lambda
    • KT-48953 FIR: implement diagnostic DELEGATE_USES_EXTENSION_PROPERTY_TYPE_PARAMETER
    • KT-38813 FIR: Report INSTANCE_ACCESS_BEFORE_SUPER_CALL diagnostic on receiver usages in secondary constructors headers
    • KT-49657 FIR: accidental override with get:JvmName
    • KT-49655 FIR: smart cast is not performed after update of var to not-null value in branch
    Docs & Examples
    • KT-51086 [Docs] [Build Tools] Allow to configure additional jvm arguments for 'KaptWithoutKotlincTask`
    • KT-50563 [Docs] [Build Tools] Deprecate kotlin.experimental.coroutines Gradle DSL option and kotlin.coroutines property
    • KT-50580 [Docs] [Kotlin/Native] Support instantiation of annotation classes on Native
    • KT-50874 [Docs] [Language] Add ability to specify generic type parameters as not-null
    • KT-50564 [Docs] [K/JS] Ensure that @​AfterTest is invoked after the @​Test function completes for asynchronous tests
    IDE
    New Features
    • KTIJ-20169 Link to What's new in a notification about new Kotlin version
    Performance Improvements
    • KTIJ-20568 Optimize SubpackagesIndexService#hasSubpackages
    Fixes
    • KTIJ-13020 New compiler settings are applied only after the project is reloaded
    • KTIJ-21154 StackOverflowError on Companion.extractPotentiallyFixableTypesForExpectedType that causes "Syntax highlighting has been temporarily turned off"
    • KTIJ-20129 Load "@​NotNull T" types from libraries as definitely non-nullable if any module in project loads such types as definitely non-nullable
    • KTIJ-9793 UAST: KotlinAbstractUElement.equals fails for psi-less elements
    • KTIJ-16203 UAST: Annotating assignment expression sometimes leads to UnknownKotlinExpression
    • KTIJ-18720 UAST: @​Deprecated(level=DeprecationLevel.HIDDEN) makes method visibility be dropped
    • KTIJ-18039 @​Deprecated(level=HIDDEN) elements return false for isDeprecated()
    • KTIJ-18716 KotlinUMethodWithFakeLightDelegate.hasAnnotation() doesn't find annotations
    • KTIJ-20220 Kotlin plugin crashes very often
    • KTIJ-20308 Syntax highlighting is temporary suspended for file ... due to internal error
    • KTIJ-6085 Exception Incorrect CachedValue... with KtUltraLightMethodForSourceDeclaration
    • KTIJ-18977 Do not show warning Outdated bundled kotlin compiler if there are no compatible plugin with newer compiler
    • KTIJ-20253 Consider supporting special highlighting for definitely non-null types
    • KT-42194 OOME: Java heap space from incremental compilation
    • KTIJ-13019 "Add '-Xopt-in=kotlin.io.path.ExperimentalPathApi' to module untitled1 compiler arguments" only works until the project is reloaded
    IDE. Completion
    • KTIJ-20095 Optimize FilterOutKotlinSourceFilesScope#contains
    • KTIJ-16250 Completion of override with return type annotated with TYPE_USE-targeted annotation suggests two duplicate entries
    IDE. Debugger
    • KTIJ-20716 JVM Debugger in common code can't get JVM-specific view on common code and fails
    • KTIJ-18562 JVM debugger: coroutineContext.job causes "Failed to generate expression: KtNameReferenceExpression"
    • KTIJ-20019 MPP Debugger: NSFE “Field not found” on accessing property with explicit getter from common code in Evaluate expression/Watcher
    • KTIJ-19990 MPP Debugger: Evaluate expression for some stdlib in common source set fails with Method threw 'java.lang.ClassNotFoundException' exception.
    • KTIJ-20929 MPP Debugger: in a project with single JVM target evaluation of expect function fails with 'NoSuchMethodError' exception in common context
    • KTIJ-20956 Debugger: coroutine debugger fails to load sometimes
    • KTIJ-20775 MPP Debugger: Evaluate expression for actual typealiases in jvm source set fails with Method threw 'java.lang.ClassNotFoundException' exception.
    • KTIJ-20712 MPP Debugger: evaluator fails when evaluating expect function
    • KTIJ-19344 K/N debugger shows all types as ObjHeader in variable view.
    IDE. Gradle Integration
    • KTIJ-20097 HMPP+Android Project that depends on pure Android Lib fails to import in IDEA
    • KTIJ-20756 MPP targeting Android and JVM reports 'The feature "multi platform projects" is experimental and should be enabled explicitly'
    • KTIJ-20745 Gradle: NSEE “Key main is missing in the map.” on project import in AS 212 + Kotlin 1.6.20
    • KT-47570 MPP, IDE: kotlin-test-common leaks into dependencies of platform-specific source sets
    • KTIJ-19541 IDE: Kotlin Facets aren't created for Gradle projects added via includeBuild
    • KT-48882 MPP IDE import: Failing cinterop Gradle tasks shall not fail import
    • KTIJ-18135 MPP, IDE: False positive "No value passed for parameter" in CommonTest when expect declaration has default value and actual does not
    IDE. Inspections and Intentions
    New Features
    • KTIJ-12437 Add inspection to detect redundant (obsolete, unused) @​OptIn annotations
    • KTIJ-15780 Add quickfix for migration of Experimental -> RequiresOptIn
    • KTIJ-18865 Provide quick fixes for OptIn markers on forbidden targets
    • KTIJ-18439 Make suggestions for applying opt-in quickfixes more distinct
    • KTIJ-19985 Provide quickfix for SAFE_CALL_WILL_CHANGE_NULLABILITY diagnostic
    Fixes
    • KTIJ-20550 False positives in "Unnecessary '@​OptIn' annotation" inspection
    • KTIJ-20993 Quick-fix for NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS leads to unreachable code
    • KTIJ-20557 Quick fix to add Any as an upper bound for type parameter to make it non-nullable
    • KTIJ-20827 Process type mismatch compiler warnings to provide a corresponding quick fix
    • KTIJ-12578 "Make abstract" quick fix for missing abstract members implementations could warn of potentially broken inheritance
    • KTIJ-20425 Quick fix to replace @NotNull parameter type T with a definitely non-nullable type T & Any
    • KTIJ-19997 Inspection "Possibly blocking call in non-blocking context could lead to thread starvation" suggests "Wrap call in 'withContext'" resulting in red code
    • KTIJ-18291 Quickfix "Add @​OptIn() annotation" adds the annotation to primary constructor when invoked on primary constructor parameter
    • KTIJ-19512 Implement IDE support for new rules of deprecation inheritance
    • KTIJ-20156 Exception when applying 'Convert to with'
    • KTIJ-20290 Forbid "move to constructor" intention if class contains secondary constructor
    • KTIJ-20288 Forbid "move to constructor" intention for actual classes with actual constructor
    • KT-49736 Introduce import alias fails when qualifier is unresolved
    • KTIJ-18743 "Redundant nullable return type" applied on actual method doesn't change the signature of expect
    • KTIJ-12343 Inspection "Sealed sub-class has no state and no overridden equals" is applied incorrectly to expect/actual declarations of sealed classes with nested subclasses
    • KTIJ-19406 The "Add @​OptIn(...)" quick fix does not shorten the annotation when adding an argument to the existing annotation
    • KTIJ-12351 generate equals & hashCode() by identity intention generates incompilable code for multiplatform project modules
    • KTIJ-13227 Forbid "move property to constructor" for actual classes with actual constructor having at least one parameter already
    • KTIJ-11328 No quick fixes are suggested for annotation from experimental API used with file target
    • KTIJ-14427 Meta-annotation value isn't updated for all the corresponding parts of a multiplatform annotation
    • KTIJ-19735 NSME org.jetbrains.kotlin.idea.quickfix.KotlinSingleIntentionActionFactory org.jetbrains.kotlin.idea.quickfix.RemoveModifierFix on IJ212 + Kotlin master
    IDE. Navigation
    IDE. Refactorings. Extract Function
    • KTIJ-10026 Refactor / Extract function: Adds unnecessary nullability annotations for parameters coming from NotNull or Nullable Java methods
    • KTIJ-15823 Refactor / Extract Function: resulted declaration gets no @​OptIn from original function when necessary
    IDE. Refactorings. Move
    • KTIJ-5661 [Tests] MoveRefactoring: Fix ignored incorrect tests of crossmodule declaration moving
    IDE. Wizards
    • KTIJ-19232 New project wizard: delete MPP Mobile-Library and Application templates
    • KTIJ-20878 Unable to create project with Kotlin Project Wizard when JDK 17 is used.
    • KTIJ-20244 Compose MPP project from wizard requires minCompileSdk=31
    • KTIJ-20781 Update kotlin-wrappers version in wizard
    JS. Tools
    • KT-47387 KJS: Support Apple Silicon for node distrib download
    JavaScript
    New Features
    • KT-44494 KJS / IR: Allow enum classes to be exported
    • KT-43224 KJS: Allow using inline classes in external types
    • KT-35100 Make Char inline class in K/JS
    • KT-42936 KJS IR: Support js-code test directives similar to legacy
    • KT-47525 KJS / IR: Support protected members in d.ts generation
    • KT-50110 KJS / IR: Enable properties lazy initialization by default
    Performance Improvements
    • KT-46443 KJS / IR: Improve CharArray and Char performance
    • KT-45665 KJS / IR: equals on inline value classes is boxed
    • KT-43644 KJS / IR: Avoid creating lambda classes
    Fixes
    • KT-51685 KJS / IR: TypeError: collection.iterator_jk1svi_k$ regression in Kotlin 1.6.20-RC2
    • KT-51523 KJS IR: "Uncaught TypeError: a._get_length__2347802853_w7ahp7_k$ is not a function"
    • KT-51700 KJS / IR: Compiler uses wrong function with List
    • KT-51222 KJS / IR: "RangeError: Maximum call stack size exceeded": Default function overloads marked with @​JsExport are broken
    • KT-45054 KJS: Export secondary constructors as class static methods
    • KT-37916 KJS: .d.ts generation not working for enum classes
    • KT-48199 KJS / IR: Improve error message for linkage problems
    • KT-51030 KJS / IR: internal class that implements public interface is missing getters
    • KT-45434 KJS: "WRONG_EXPORTED_DECLARATION" when using JsExport on interfaces
    • KT-50934 KJS / IR: Re-export all JS-exports from the main module for the multi-module mode
    • KT-45620 KJS / IR: Remainder of division of Int.MIN_VALUE by -1 is negative zero (-0)
    • KT-44981 KJS / IR crashes on kotlin.js.js calls with complex constexpr
    • KT-41964 KJS IR: Reference to local variable and parameter from js fun could be broken unexpectedly
    • KT-50682 Kotlin/JS: IR + IC: TypeError "Cannot read properties of undefined" when properties from different sources refer one another in initializers
    • KT-50175 Kotlin/JS, IR: with incremental compilation top level properties initialization is not lazy
    • KT-40236 KJS: IR. Invalid override for external field with @​JsName
    • KT-46525 KJS / IR: Generate context-dependent names for lambdas and object expressions
    • KT-49779 KJS / IR: Exported abstract class implementing interface not export interfaces member in d.ts
    • KT-49773 KJS / IR: Exported enum implementing interface
    • KT-41912 KJS / IR: generates invalid defineProperty methods for class hierarchies
    • KT-46225 KJS IR: tailrec function with capturing lambda in default parameter value leads to UninitializedPropertyAccessException at compile time
    • KT-50528 Kotlin/JS: IR + IC: TypeError: "combined.get_icpjjy_k$ is not a function" for code calling GlobalScope.launch {}
    • KT-50512 KJS / IR: IC

    Configuration

    📅 Schedule: At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [x] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Bump jvm from 1.6.10 to 1.6.21

    Bump jvm from 1.6.10 to 1.6.21

    Bumps jvm from 1.6.10 to 1.6.21.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump org.jetbrains.compose from 1.1.0 to 1.1.1

    Bump org.jetbrains.compose from 1.1.0 to 1.1.1

    Bumps org.jetbrains.compose from 1.1.0 to 1.1.1.

    Release notes

    Sourced from org.jetbrains.compose's releases.

    v1.1.1

    Desktop

    Fixes

    API changes

    If you use Dispatchers.Swing or Dispatchers.Main in your code, add this dependency into build.gradle.kts:

    dependencies {
        implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:$coroutinesVersion")
    }
    

    Also, usage of Dispatchers.Swing or Dispatchers.Main inside internals of Compose is implementation details, and can be changed in the future. If you need to avoid race conditions with Compose UI, you can obtain appropriate coroutine scope via rememberCoroutineScope:

    import androidx.compose.runtime.DisposableEffect
    import androidx.compose.runtime.remember
    import androidx.compose.runtime.rememberCoroutineScope
    import androidx.compose.ui.ExperimentalComposeUiApi
    import androidx.compose.ui.window.application
    

    @​OptIn(ExperimentalComposeUiApi::class, androidx.compose.foundation.ExperimentalFoundationApi::class) fun main() = application { val scope = rememberCoroutineScope() val someApplicationObject = remember(scope) { SomeApplicationObject(scope) }

    DisposableEffect(Unit) {
        SomeGlobalObject.init(scope)
        onDispose {  }
    }
    

    }

    Changelog

    Sourced from org.jetbrains.compose's changelog.

    1.1.1 (Mar 2022)

    Desktop

    Fixes

    API changes

    If you use Dispatchers.Swing or Dispatchers.Main in your code, add this dependency into build.gradle.kts:

    dependencies {
        implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:$coroutinesVersion")
    }
    

    Also, usage of Dispatchers.Swing or Dispatchers.Main inside internals of Compose is implementation details, and can be changed in the future. If you need to avoid race conditions with Compose UI, you can obtain appropriate coroutine scope via rememberCoroutineScope:

    import androidx.compose.runtime.DisposableEffect
    import androidx.compose.runtime.remember
    import androidx.compose.runtime.rememberCoroutineScope
    import androidx.compose.ui.ExperimentalComposeUiApi
    import androidx.compose.ui.window.application
    

    @​OptIn(ExperimentalComposeUiApi::class, androidx.compose.foundation.ExperimentalFoundationApi::class) fun main() = application { val scope = rememberCoroutineScope() val someApplicationObject = remember(scope) { SomeApplicationObject(scope) }

    DisposableEffect(Unit) {
        SomeGlobalObject.init(scope)
        onDispose {  }
    }
    

    }

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once CI passes on it, as requested by @russellbanks.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump org.jetbrains.compose from 1.1.0-alpha05 to 1.2.0-alpha01-dev620

    Bump org.jetbrains.compose from 1.1.0-alpha05 to 1.2.0-alpha01-dev620

    Bumps org.jetbrains.compose from 1.1.0-alpha05 to 1.2.0-alpha01-dev620.

    Commits
    • a636ff9 move compose
    • 5b496eb web: update TagElement with tagName: String (#1827)
    • 4fb2659 switching to the latest compose with skiko 0.7.9
    • 1e71abb Support org.jetbrains.kotlin.js plugin (#1851)
    • 4fb11bc remove a condition (based on .jbWebExistsMarker file) for js tests tasks (#1848)
    • ad2f889 Reset timebomb
    • c59aef5 Fix wrong word used: transient -> transitive (#1839)
    • bccf783 web: make canvasAttributeTest independent of attributes order
    • 7a9776c web: make applyAttrs in the second overloaded TagElement nullable to be c...
    • a528838 Web: Add Canvas element (#1823)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump org.jetbrains.compose from 1.1.0-alpha05 to 1.2.0-alpha01-dev620

    Bump org.jetbrains.compose from 1.1.0-alpha05 to 1.2.0-alpha01-dev620

    Bumps org.jetbrains.compose from 1.1.0-alpha05 to 1.2.0-alpha01-dev620.

    Commits
    • a636ff9 move compose
    • 5b496eb web: update TagElement with tagName: String (#1827)
    • 4fb2659 switching to the latest compose with skiko 0.7.9
    • 1e71abb Support org.jetbrains.kotlin.js plugin (#1851)
    • 4fb11bc remove a condition (based on .jbWebExistsMarker file) for js tests tasks (#1848)
    • ad2f889 Reset timebomb
    • c59aef5 Fix wrong word used: transient -> transitive (#1839)
    • bccf783 web: make canvasAttributeTest independent of attributes order
    • 7a9776c web: make applyAttrs in the second overloaded TagElement nullable to be c...
    • a528838 Web: Add Canvas element (#1823)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update kotlin to v1.8.0

    Update kotlin to v1.8.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jetbrains.kotlin.plugin.serialization | 1.7.20 -> 1.8.0 | age | adoption | passing | confidence | | org.jetbrains.kotlin.jvm | 1.7.20 -> 1.8.0 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Update dependency com.google.devtools.ksp to v1.8.0-1.0.8

    Update dependency com.google.devtools.ksp to v1.8.0-1.0.8

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.google.devtools.ksp (source) | 1.7.20-1.0.8 -> 1.8.0-1.0.8 | age | adoption | passing | confidence |


    Release Notes

    google/ksp

    v1.8.0-1.0.8

    Compare Source

    KSP 1.0.8 for Kotlin 1.8.0.

    v1.7.22-1.0.8

    Compare Source

    KSP 1.0.8 for Kotlin 1.7.22

    v1.7.21-1.0.8

    Compare Source

    KSP 1.0.8 for Kotlin 1.7.21


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Open

    These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

    Detected dependencies

    github-actions
    .github/workflows/desktop.yml
    • actions/checkout v3
    • actions/setup-java v3
    • gradle/gradle-build-action v2
    .github/workflows/gradle-wrapper-validation.yml
    • actions/checkout v3
    • gradle/wrapper-validation-action v1
    .github/workflows/release.yml
    • actions/checkout v3
    • actions/setup-java v3
    • gradle/gradle-build-action v2
    • softprops/action-gh-release v1
    • vedantmgoyal2009/winget-releaser v1
    • crazy-max/ghaction-virustotal v3
    gradle
    gradle.properties
    libs.versions.toml
    • ca.gosyer:accompanist-flowlayout 0.25.2
    • org.pushing-pixels:aurora-component 1.3.0
    • org.pushing-pixels:aurora-theming 1.3.0
    • org.pushing-pixels:aurora-window 1.3.0
    • org.jetbrains.kotlinx:kotlinx-coroutines-core 1.6.4
    • com.appmattus.crypto:cryptohash 0.10.1
    • com.arkivanov.decompose:decompose 0.8.0
    • com.arkivanov.decompose:extensions-compose-jetbrains 0.8.0
    • io.gitlab.arturbosch.detekt:detekt-formatting 1.22.0
    • io.github.hoc081098:FlowExt 0.5.0
    • net.java.dev.jna:jna 5.12.1
    • net.java.dev.jna:jna-platform 5.12.1
    • com.github.Dansoftowner:jSystemThemeDetector 3.8
    • com.alialbaali.kamel:kamel-image 0.4.1
    • io.klogging:klogging-jvm 0.4.9
    • io.klogging:slf4j-klogging 0.3.0
    • io.insert-koin:koin-core 3.3.2
    • io.insert-koin:koin-annotations 1.1.0
    • io.insert-koin:koin-ksp-compiler 1.1.0
    • org.jetbrains.kotlinx:kotlinx-datetime 0.4.0
    • org.jetbrains.kotlinx:kotlinx-serialization-json 1.4.1
    • com.github.doyaaaaaken:kotlin-csv 1.7.0
    • io.ktor:ktor-client-cio 2.2.2
    • io.ktor:ktor-client-content-negotiation 2.2.2
    • io.ktor:ktor-client-core 2.2.2
    • io.ktor:ktor-client-logging 2.2.2
    • io.ktor:ktor-serialization-kotlinx-json 2.2.2
    • org.lwjgl:lwjgl 3.3.1
    • org.lwjgl:lwjgl-tinyfd 3.3.1
    • com.mayakapps.compose:window-styler 0.3.2
    • org.jetbrains.compose 1.2.2
    • com.github.gmazzo.buildconfig 3.1.0
    • io.gitlab.arturbosch.detekt 1.22.0
    • org.jetbrains.kotlin.jvm 1.7.20
    • org.jetbrains.kotlin.plugin.serialization 1.7.20
    • com.google.devtools.ksp 1.7.20-1.0.8
    settings.gradle.kts
    build.gradle.kts
    gradle-wrapper
    gradle/wrapper/gradle-wrapper.properties
    • gradle 7.6

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
  • v1.9.0(Jul 5, 2022)

    What's Changed

    • The icon for an file will show as an image if it is readable as an image (isn't reliant on file type)
    • Add "Copied to Clipboard" Snackbar
    • Add toolbar
    • Redesign Settings Dialogs with navigation and give all other dialogs a new header
    • A small info icon is shown in the toolbar if there is a new update. Clicking it will open a dialog with a link to the new release page
    • UI and design changes have been made for each screen, to make it look better and scale more pleasantly on different screens

    Fixes

    • Fix crash when trying to hash a deleted file
    • Fix text screen not showing if a hash matches
    • Fix drag and drop not clearing hash results

    JMRXhVOC3l

    Full Changelog: https://github.com/russellbanks/HashHash/compare/v1.8.0...v1.9.0

    Source code(tar.gz)
    Source code(zip)
    hashhash-1.9.0-1.x86_64.rpm(65.39 MB)
    HashHash-1.9.0.dmg(63.69 MB)
    HashHash-1.9.0.exe(61.97 MB)
    HashHash-1.9.0.msi(61.43 MB)
    HashHash-Linux-standalone.zip(64.56 MB)
    HashHash-linux-x64-1.9.0.jar(41.19 MB)
    HashHash-macOS-standalone.zip(58.80 MB)
    HashHash-macos-x64-1.9.0.jar(38.14 MB)
    HashHash-Windows-standalone.zip(59.67 MB)
    HashHash-windows-x64-1.9.0.jar(39.64 MB)
    hashhash_1.9.0_amd64.deb(53.05 MB)
  • v1.8.0(Jun 27, 2022)

    What's Changed

    • Add .icns file for macOS by @jackdevey in https://github.com/russellbanks/HashHash/pull/44
    • The File info icon uses the system file type icon rather than custom file type icons
      • If the file is an image, it will show the image, rather than a file type icon
    • Fixed several dialogs able to be open at once
    • Make window title blank (Looks cleaner and avoids showing the black background of the text in Windows 11 on native mode)
    • The compare files screen now remembers previous hashes

    Full Changelog: https://github.com/russellbanks/HashHash/compare/v1.7.0...v1.8.0

    Source code(tar.gz)
    Source code(zip)
    hashhash-1.8.0-1.x86_64.rpm(65.30 MB)
    HashHash-1.8.0.dmg(63.60 MB)
    HashHash-1.8.0.exe(61.87 MB)
    HashHash-1.8.0.msi(61.33 MB)
    HashHash-Linux-standalone.zip(64.47 MB)
    HashHash-linux-x64-1.8.0.jar(41.09 MB)
    HashHash-macOS-standalone.zip(58.71 MB)
    HashHash-macos-x64-1.8.0.jar(38.04 MB)
    HashHash-Windows-standalone.zip(59.58 MB)
    HashHash-windows-x64-1.8.0.jar(39.53 MB)
    hashhash_1.8.0_amd64.deb(52.96 MB)
  • v1.7.0(Jun 22, 2022)

  • v1.6.0(Jun 22, 2022)

    What's Changed

    • All calculated hashes for a given file are remembered so they do not have to be recalculated when switching between hash types
    • Added improved elapsed time
    • Added horizontal lines between major components on the file screen
    • Rename mode to list
    • Various bug fixes and efficiency improvements
    • Added jSystemThemeDetector so that HashHash's theme will change when the system's theme is changed (when HashHash is set to System default)
    • Added Compose Window Styler for a more modern, native window on Windows 11
    • Added the ability to change the corners of the window on Windows 11
      • Default
      • Not Rounded
      • Rounded
      • Small Rounded

    java_if032yeSu9

    Full Changelog: https://github.com/russellbanks/HashHash/compare/v1.5.1...v1.6.0

    Source code(tar.gz)
    Source code(zip)
    hashhash-1.6.0-1.x86_64.rpm(64.93 MB)
    HashHash-1.6.0.dmg(63.47 MB)
    HashHash-1.6.0.exe(61.51 MB)
    HashHash-1.6.0.msi(60.97 MB)
    HashHash-Linux-standalone.zip(64.11 MB)
    HashHash-linux-x64-1.6.0.jar(40.70 MB)
    HashHash-macOS-standalone.zip(58.57 MB)
    HashHash-macos-x64-1.6.0.jar(37.65 MB)
    HashHash-Windows-standalone.zip(59.21 MB)
    HashHash-windows-x64-1.6.0.jar(39.14 MB)
    hashhash_1.6.0_amd64.deb(52.60 MB)
  • v1.5.0(Jun 1, 2022)

    What's Changed

    • Add Ktor to check for updates and retrieve GitHub release data
    • Redesign About dialog with "Check for updates" button
    • Add Klogging for logging
    • Migrate to Decompose for navigation (potential memory and performance improvements)
    • Change direction of select buttons on compare files screen to be horizontal rather than vertical
    • Add new icon for switching cases of text fields (will show differently based on case)

    Full Changelog: https://github.com/russellbanks/HashHash/compare/v1.4.0...v1.5.0

    Source code(tar.gz)
    Source code(zip)
    hashhash-1.5.0-1.x86_64.rpm(60.85 MB)
    HashHash-1.5.0.dmg(59.34 MB)
    HashHash-1.5.0.exe(57.41 MB)
    HashHash-1.5.0.msi(56.88 MB)
    HashHash-Linux-standalone.zip(60.00 MB)
    HashHash-linux-x64-1.5.0.jar(36.27 MB)
    HashHash-macOS-standalone.zip(54.47 MB)
    HashHash-macos-x64-1.5.0.jar(33.22 MB)
    HashHash-Windows-standalone.zip(55.11 MB)
    HashHash-windows-x64-1.5.0.jar(34.72 MB)
    hashhash_1.5.0_amd64.deb(48.54 MB)
  • v1.4.0(May 21, 2022)

    What's Changed

    • Added text hashing page
    • Added compare files page
    • Added tabs to switch between pages
    • Fixed F11 making the app fullscreen and floating in one press
    • Make text fields remember cases (if you selected uppercase previously, it will stay in uppercase and vice versa)

    Full Changelog: https://github.com/russellbanks/HashHash/compare/v1.3.0...v1.4.0

    Source code(tar.gz)
    Source code(zip)
    hashhash-1.4.0-1.x86_64.rpm(53.93 MB)
    HashHash-1.4.0.dmg(52.32 MB)
    HashHash-1.4.0.exe(50.47 MB)
    HashHash-1.4.0.msi(49.94 MB)
    HashHash-Linux-standalone.zip(53.07 MB)
    HashHash-linux-x64-1.4.0.jar(29.09 MB)
    HashHash-macOS-standalone.zip(47.54 MB)
    HashHash-macos-x64-1.4.0.jar(26.04 MB)
    HashHash-Windows-standalone.zip(48.19 MB)
    HashHash-windows-x64-1.4.0.jar(27.54 MB)
    hashhash_1.4.0_amd64.deb(41.85 MB)
  • v1.3.0(May 16, 2022)

    What's changed

    • Added drag and drop functionality for files
    • Pasted text now no longer includes whitespace
    • Reduce default window size slightly
    • New dropdown icon and rotation
    • File info text is now spaced evenly
    • Various minor bug fixes

    Full Changelog: https://github.com/russellbanks/HashHash/compare/v1.2.0...v1.3.0

    Source code(tar.gz)
    Source code(zip)
    hashhash-1.3.0-1.x86_64.rpm(53.74 MB)
    HashHash-1.3.0.dmg(52.14 MB)
    HashHash-1.3.0.exe(50.27 MB)
    HashHash-1.3.0.msi(49.73 MB)
    HashHash-Linux-standalone.zip(52.89 MB)
    HashHash-linux-x64-1.3.0.jar(28.89 MB)
    HashHash-macOS-standalone.zip(47.35 MB)
    HashHash-macos-x64-1.3.0.jar(25.84 MB)
    HashHash-Windows-standalone.zip(48.00 MB)
    HashHash-windows-x64-1.3.0.jar(27.33 MB)
    hashhash_1.3.0_amd64.deb(41.65 MB)
  • v1.1.1(May 6, 2022)

    What's Changed

    • Add new custom icons, as vectors (much better quality).
    • Remove attribution and decompose (no longer needed).
    • Add java.prefs as a module (could have caused bugs not including it)
    • Fixed bug where file extensions that contained capitals did not show a file type icon.
    • Revert back to using runtime-rendered svgs over compile-time svgs.
    • Add a console launcher to Windows distribution.

    Full Changelog: https://github.com/russellbanks/HashHash/compare/v1.1.0...v1.1.1

    Source code(tar.gz)
    Source code(zip)
    hashhash-1.1.1-1.x86_64.rpm(53.66 MB)
    HashHash-1.1.1.dmg(52.04 MB)
    HashHash-1.1.1.exe(50.16 MB)
    HashHash-1.1.1.msi(49.62 MB)
    HashHash-Linux-standalone.zip(52.80 MB)
    HashHash-linux-x64-1.1.1.jar(28.80 MB)
    HashHash-macOS-standalone.zip(47.27 MB)
    HashHash-macos-x64-1.1.1.jar(25.76 MB)
    HashHash-Windows-standalone.zip(47.90 MB)
    HashHash-windows-x64-1.1.1.jar(27.23 MB)
    hashhash_1.1.1_amd64.deb(41.58 MB)
  • v1.1.0(May 3, 2022)

    What's Changed

    • Added a new light and dark mode! (Follow system by default)
    • Added an option to choose whether you would like a native title bar style or a custom one. (Custom is default)
    • Added a progress bar for hashing.
    • Bug fixes

    Full Changelog: https://github.com/russellbanks/HashHash/compare/v1.0.0...v1.1.0

    Source code(tar.gz)
    Source code(zip)
    hashhash-1.1.0-1.x86_64.rpm(53.42 MB)
    HashHash-1.1.0.dmg(51.81 MB)
    HashHash-1.1.0.exe(49.94 MB)
    HashHash-1.1.0.msi(49.40 MB)
    HashHash-Linux-standalone.zip(52.57 MB)
    HashHash-linux-x64-1.1.0.jar(28.55 MB)
    HashHash-macOS-standalone.zip(47.03 MB)
    HashHash-macos-x64-1.1.0.jar(25.51 MB)
    HashHash-Windows-standalone.zip(47.67 MB)
    HashHash-windows-x64-1.1.0.jar(26.98 MB)
    hashhash_1.1.0_amd64.deb(41.33 MB)
  • Owner
    BanDev
    BanDev is a collaborative group of developers. We create software that is entirely Free, Libre and Open Source.
    BanDev
    A Sudoku game for Android & Desktop written with Jetpack Compose Multiplatform

    ?? Compose Arcade A sample Kotlin Multiplatform Compose Sudoku app for Android & Desktop. Most code is shared between Android & Desktop using Kotlin M

    Aaron Oertel 42 Dec 30, 2022
    Test-compose-for-desktop - Hello World in Compose for Desktop

    Testing Run from command line: ./gradlew run Regular build: ./gradlew packageUb

    Sebastian 3 Sep 20, 2022
    Snake-compose-for-desktop - Snake Game - implemented using Compose for Desktop

    A Snake game, built with Compose for Desktop snake-compose-for-desktop is my imp

    gnu 5 Feb 17, 2022
    A desktop code editor app using Jetpack Compose for Desktop and IntelliJ Platform

    Compose Code Editor A desktop code editor app using Jetpack Compose for Desktop and IntelliJ Platform. Project Structure The code is contained in the

    Alex 73 Dec 19, 2022
    💻 A cross-platform desktop application to identify libraries used inside an android application. Made possible by Compose Desktop ⚡

    ?? stackzy A desktop app to analyse APK. Built using Compose desktop ✨ Demo Watch demo ??️ Usage Show usage ?? Install Platform Download Status Linux

    theapache64 876 Dec 24, 2022
    A project generator using Compose by JetBrains with a GUI

    GradleProjectGenerator A project generator using Compose by JetBrains with a GUI

    Francisco Solis 0 Dec 19, 2021
    Odyssey it's a declarative multiplatform navigation library for Multiplatform Compose

    Odyssey Odyssey it's a declarative multiplatform navigation library for Multiplatform Compose ?? WARNING! It's an early preview, so you use it with yo

    Alex 168 Jan 5, 2023
    Jetpack Compose Boids | Flocking Insect 🐜. bird or Fish simulation using Jetpack Compose Desktop 🚀, using Canvas API 🎨

    ?? ?? ?? Compose flocking Ants(boids) ?? ?? ?? Jetpack compose Boids | Flocking Insect. bird or Fish simulation using Jetpack Compose Desktop ?? , usi

    Chetan Gupta 38 Sep 25, 2022
    Exercising Compose for Desktop and Compose for Web (Canvas)

    Compose Counting Grid A simple application to check Compose for Desktop and Compose for Web (Canvas) drawing speeds when drawing grids (or tables) wit

    null 6 Nov 11, 2022
    ⌨️ A tool that gives you a massive head start when building Compose Desktop apps. It saves you from time-consuming setup and configuration

    ?? create-compose-app A tool that gives you a massive head start when building Compose based apps. It saves you from time-consuming setup and configur

    theapache64 466 Dec 21, 2022
    Welcome Fruit Ninja 🥝 on Jetpack Compose Desktop 🚀, using Canvas API 🎨

    Compose-Fruit-Ninja ?? Welcome Fruit Ninja on Jetpack Compose Desktop ?? , using Canvas API ?? Featured on jetc-dev How to Run From gradle tab from ri

    Chetan Gupta 54 Nov 2, 2022
    Alien invasion 👾 gane is back! this time specially on Jetpack Compose Desktop 🚀, using Canvas API 🎨

    Compose Space-Invaders ?? Alien invasion ?? is back! this time specially on Jetpack Compose Desktop ?? , using Canvas API ?? Featured on Compose Diges

    Chetan Gupta 58 Aug 6, 2022
    💻 A Compose Desktop project template with MVVM, Dagger, Decompose, tests, and more...

    compose-desktop-template A compose desktop project template with MVVM, Dagger, Decompose and more ✨ Demo What's included? Architecture (MVVM) with And

    theapache64 73 Dec 21, 2022
    A simple Snake application to demonstrate the use of Compose for Desktop platform with Kotlin

    Snake App using Compose for Desktop A simple Snake desktop application to demonstrate the use of Compose UI toolkit for Desktop platform with Kotlin.

    Serge Nino Martin Villasica 12 Nov 18, 2022
    🔖 A Quotes Application built to Demonstrate the Compose for Desktop UI

    ?? JetQuotes A Quotes Application built to Demonstrate the use of Jetpack Compose for building declarative UI in Desktop. Made with love ❤️ by Spikeys

    Sanju S 60 Sep 9, 2022
    ⌨️ A tool that gives you a massive head start when building Compose Desktop apps. It saves you from time-consuming setup and configuration

    ?? create-compose-app A tool that gives you a massive head start when building Compose based apps. It saves you from time-consuming setup and configur

    theapache64 468 Dec 30, 2022
    🎮 An attempt to create Super Mario Bros using Compose for Desktop

    ?? compose-mario An attempt to create Super Mario Bros using Compose for Desktop ??️ Under Active Development THIS PROJECT IS UNDER ACTIVE DEVELOPMENT

    theapache64 22 Nov 11, 2022
    Simple space game, built with Compose for Desktop!

    Asteroids, built with Compose for Desktop Want to learn how I built it? Read the two-part article in which I describe the most interesting parts of th

    Sebastian Aigner 69 Nov 28, 2022
    A simple Snake game implemented using Compose for Desktop

    CompoSnake A simple Snake game implemented using Compose for Desktop. Run: ./gradlew run Author Twitter: @arkann1985 If you like this project you can

    Arkadii Ivanov 58 Dec 27, 2022