Skip to content

Latest commit

 

History

History
87 lines (66 loc) · 4.2 KB

developer.md

File metadata and controls

87 lines (66 loc) · 4.2 KB

Freerouting

Freerouting

Freerouting is an advanced autorouter for all PCB programs that support the standard Specctra or Electra DSN interface.


Information for developers

How to build it from source

Requirements

  • Java >= 21 (Adoptium Temurin 21 JRE)
  • Gradle 6.x
  • Internet connection (dependencies are downloaded automatically)
  • For IDE integration: Gradle extension (not necessary for command line usage)

IDE

Open the freerouting Gradle project in your favourite IDE (NB, IntelliJ, Eclipse etc. with Gradle Plugin) and build it by calling the assemble task.

Command Line

Navigate to the Gradle project (e.g., path/to/freerouting) and enter the following command

Bash (Linux/OS X/Cygwin/other Unix-like shell)

./gradlew assemble

Windows (CMD)

gradlew assemble

image

Generated Executables

All four .jar files will be generated in the build\libs subfolder. You would typically run the freerouting-executable.jar file.

How to create a new release

Creating a release takes about half an hour if everything goes according to the plan. Usually it doesn't, so free up ~3 hours for this.

Let's suppose that the new version is 2.3.4. You need to complete these steps:

  • Check if there are updated translations on Crowdin and merge them if needed

  • Check if there are any outstanding pull requests and merge them as well

  • Change ext.publishing.versionId in \gradle\project-info.gradle to 2.3.4

  • Push it to GitHub

  • Check if it was built successfully on GitHub Actions

  • Create a new draft release

  • Run gradlew.bat assemble -> this will generate the files in \build\libs\freerouting*.jar

  • Rename to freerouting-executable.jar to freerouting-2.3.4.jar and add it to the release draft

  • Update the integrations\KiCad

  • Update README

  • Publish the release

  • Check if Windows and Linux installers were added to the release in GitHub Actions

  • Publish the library to Maven Central

    • Use the Gradle Maven plugin and set the properties in /.gradle/gradle.properties image
    • Run the ./gradlew publishToMavenCentral --no-configuration-cache command in the root folder to publish it to Maven Central
    • Release the staging repository
  • Change ext.publishing.versionId in \gradle\project-info.gradle again to 2.3.5-SNAPSHOT