{"id":13798717,"url":"https://github.com/scalafx/scalafx","last_synced_at":"2026-04-02T22:21:42.203Z","repository":{"id":17145389,"uuid":"19912025","full_name":"scalafx/scalafx","owner":"scalafx","description":"ScalaFX simplifies creation of JavaFX-based user interfaces in Scala","archived":false,"fork":false,"pushed_at":"2026-02-12T00:10:53.000Z","size":13125,"stargazers_count":696,"open_issues_count":28,"forks_count":67,"subscribers_count":33,"default_branch":"master","last_synced_at":"2026-02-21T06:54:16.489Z","etag":null,"topics":["javafx","jvm","scala","scalafx","scalafx-framework"],"latest_commit_sha":null,"homepage":"https://scalafx.org","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scalafx.png","metadata":{"files":{"readme":"README-SBT.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-05-18T14:12:15.000Z","updated_at":"2026-02-19T16:15:28.000Z","dependencies_parsed_at":"2022-07-12T05:18:31.741Z","dependency_job_id":"e98705b5-220b-44f1-94fc-3a905dd15626","html_url":"https://github.com/scalafx/scalafx","commit_stats":null,"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/scalafx/scalafx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalafx%2Fscalafx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalafx%2Fscalafx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalafx%2Fscalafx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalafx%2Fscalafx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scalafx","download_url":"https://codeload.github.com/scalafx/scalafx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalafx%2Fscalafx/sbom","scorecard":{"id":803216,"data":{"date":"2025-08-11","repo":{"name":"github.com/scalafx/scalafx","commit":"fc440442afc4c3d6278154853375b3a44a852c0e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"16 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/dependency-graph.yml:1","Warn: no topLevel permission defined: .github/workflows/scala.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/dependency-graph.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/scalafx/scalafx/dependency-graph.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/dependency-graph.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/scalafx/scalafx/dependency-graph.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/dependency-graph.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/scalafx/scalafx/dependency-graph.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scala.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/scalafx/scalafx/scala.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scala.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/scalafx/scalafx/scala.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/scala.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/scalafx/scalafx/scala.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/scala.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/scalafx/scalafx/scala.yml/master?enable=pin","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-23T11:04:45.721Z","repository_id":17145389,"created_at":"2025-08-23T11:04:45.721Z","updated_at":"2025-08-23T11:04:45.721Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29771035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T03:15:54.600Z","status":"ssl_error","status_checked_at":"2026-02-24T03:15:54.143Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javafx","jvm","scala","scalafx","scalafx-framework"],"created_at":"2024-08-04T00:00:50.795Z","updated_at":"2026-02-24T04:01:19.497Z","avatar_url":"https://github.com/scalafx.png","language":"Scala","funding_links":[],"categories":["Community","Table of Contents"],"sub_categories":["Other Languages","Graphical User Interfaces"],"readme":"README    README    README    README    README    README    README    README    README    README    \n\n\n\n                                                                  \n  _|_|_|                      _|            _|_|_|_|  _|      _|  \n_|          _|_|_|    _|_|_|  _|    _|_|_|  _|          _|  _|    \n  _|_|    _|        _|    _|  _|  _|    _|  _|_|_|        _|      \n      _|  _|        _|    _|  _|  _|    _|  _|          _|  _|    \n_|_|_|      _|_|_|    _|_|_|  _|    _|_|_|  _|        _|      _|  \n                                                                  \n                                                                  \nBuilding ScalaFX with Scala SBT\n-------------------------------\n\n1. Introduction\n   ------------\n   \nFor a more general introduction, please refer to `README.txt' for more\ninformation. The documentation explains how to download the required software\nfor ScalaFX development.\n\nThere are two branches of ScalaFX: v.2.2.* supporting JavaFX 2.x (Java 7) and \nScalaFX v.8.0 supporting JavaFX 8 (Java 8).\n\nThis information was prepared using Scala SBT version 0.13.11, which you can download\nfrom: http://www.scala-sbt.org/\n\n\n2. Checkout Source Code\n   ---------------------\n   \nIf you do not have the source code, then use Mercurial to checkout the code\nbase. Open a command line terminal with a shell, and type:\n\n    % git clone https://github.com/scalafx/scalafx.git\n\n( Where % character represents the command line shell prompt for your operating\nsystem.)\n\nChange to the scalafx directory:\n\n    % cd scalafx\n\nIt is always a good practice to start by cleaning the build directories:\n\n    % sbt clean\n\nTo run tests:\n\n    % sbt test\n\nTo build jars:\n\n    % sbt package\n\nTo publish to a local repository:\n\n    % sbt publish-local\n\nThis should build the entire code base; package up the JAR files,\nsource and binary files; and publish them in local Ivy repository (~/.ivy).\n\n\n3. Using SBT Interactively\n   ----------------------\n\nStart Scala SBT at the command line:\n\n    % sbt\n    \nList the individual tree of projects and their version number:\n\n    sbt\u003e show version\n    [info] scalafx/*:version\n    [info] \t8.0.192-R14\n    [info] scalafx-demos/*:version\n    [info] \t8.0.192-R14\n    [info] scalafx-project/*:version\n    [info] \t8.0.192-R14\n    (Where `sbt\u003e' represents the Scala SBT interactive command line prompt)\n    \n\nClean the build:\n\n    sbt\u003e clean\n    \n\nCompile the build:\n\n    sbt\u003e compile\n    \n\nRun the unit tests:\n\n    sbt\u003e test\n    \n\nNavigate around the Scala SBT multiple modules:\n\n    # show information about the root module project    \n    sbt\u003e projects\n    sbt\u003e project\n\n    # navigate to the `scalafx' module\n    sbt\u003e project scalafx\n    sbt\u003e projects\n\n    # navigate to the `scalafx-demos' module\n    sbt\u003e project scalafx-demos\n    sbt\u003e projects\n\n    # navigate to back to the root module again\n    sbt\u003e project /\n    sbt\u003e projects\n\n\nMiscellaneous SBT commands:\n\n    sbt\u003e about\n    sbt\u003e show resolvers\n    sbt\u003e show unmanged-jars\n\n\nFor more information, on Scala SBT and Multi-Module builds, point your favourite\nweb browser to:\nhttp://www.scala-sbt.org/release/docs/Getting-Started/Multi-Project.html\n\n4. Using IDEs\n   ----------\n\nBoth IntelliJ IDEA with Scala plugin and NetBeans with its Scala plugin can import\nproject from the build.sbt file.\n\nIf you want to use Eclipse you can generate project files by setting up the sbteclipse\nplugin globally as described at https://github.com/typesafehub/sbteclipse#for-sbt-013-and-up\nand then running:\n\n    % sbt eclipse\nor\n    sbt\u003e eclipse\n\nThe Eclipse Plugin generates the files: scalafx/.project, scalafx/.classpath\nand the files scalafx-demos/.project, scalafx-demos/.classpath\n\n5. Running the Demonstration\n   -------------------------\n   \nThe module `scalafx-demos' contains many demonstrations of the ScalaFX Framework.\nThere is one official standard demonstration, which the committers have used to\ntest the build. It is called `scalafx.ColorfulCircles'.\n\nRun Scala SBT, interactively. First switch to the `scalafx-demos' project, then\nexecute the `run' task:\n\n    sbt\u003e project scalafx-demos\n    sbt\u003e run\n\nThis will list available demos. To start a demo type in the demo number at the \"Enter number:\"\nprompt. To exit the application, simply close the program using your normal window\nmanager decorations.\n\nWhat if you want to run the demonstration from the command line? You can do it.\nLet's assume you are in the root directory of the scalafx project. Execute the\nfollowing command line:\n\n    % sbt scalafx-demos/run\n    \nThis the \"Enter number:\" prompt, as described above.\n\n6. Publishing SBT Artifacts Locally\n   --------------------------------\n   \nSBT can publish artifacts to local repository using the task `publish-local'.\nHere is the command line:\n\n    % sbt publish-local\n   \n\nThis will push the ScalaFX artifacts to your local Ivy Repository under\n`${HOME}/.ivy', which is completely fine if your dependent project only ever\nrelies on Scala SBT.\n\nIf you want to generate artifacts for Maven then you need to manually install at\nthe moment. Here are the necessary commands:\n\n    % sbt make-pom\n    % mvn install:install-file -DartifactId=scalafx_2.10 \\\n    -DgroupId=org.scalafx \\\n    -Dpackaging=jar \\\n    -DpomFile=scalafx_2.10-8.0.192-R14.pom \\\n    -Dfile=scalafx_2.10-8.0.192-R14.jar \\\n    -Dversion=1.0-SNAPSHOT \\\n    -Dsources=scalafx_2.10-8.0.192-R14-sources.jar\n\n\nYou will to repeat this for all the modules. Please note the embedded Scala\ncompiler version in the artifact name e.g. `scalafx_2.10'\n\n\n7. SBT Configuration on Mac\n   ------------------------\n   \nThe following SBT launcher bash shell script worked under Mac OS\nX 10.8. Had to increase the memory of the JVM from -Xss1M to -Xss2M and set\nthe permanent generation size to 512M. Force set the JDK home in this\nfollowing example of the `sbt' shell script.\n\n\n    #!/bin/bash \n    # SBT launch file\n    # http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html#manual-installation\n    # based on SBT 0.13.11\n    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_76.jdk/Contents/Home\n    export PATH=${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:${PATH}\n    java -Xms512M -Xmx1536M -Xss2M -XX:MaxPermSize=512M -jar `dirname $0`/sbt-launch.jar \"$@\"\n    # End.\n\nOf course, your mileage will indeed vary on your own workstation.\n\n8. SBT Build Files\n   ----------------\n\nHere is a description of the Scala SBT files for the entire build process.\n\n\n./build.sbt                   The build file for ScalaFX lives.\n./project/build.properties    Specifies the Scala SBT version for the build.\n./project/plugin.sbt          Defines additional plug-ins necessary for the build\n\n\n9. Cross Versions\n   --------------\n   \nCross Scala Versions is a feature of the Scala SBT to build against different\nversions of the Scala Libraries. This is enabled in the `project/build.scala'\nfile with settings of `crossScalaVersions', which is set to something like this:\n\n    crossScalaVersions := Seq( \"2.10.6\",  \"2.11.5\"),\n\n\nYou can switch between different Scala build version in interactive mode of\nScala SBT, using the `++' command.\n\nHere is how to do this, first look at the current build settings for SBT, invoke\nthe command:\n\n    sbt\u003e settings\n    # Observe the setting for `scala-version'\n    \n\nNow show the current value for `scala-version', with the command:\n\n    sbt\u003e show scala-version\n    [info] scalafx/*:scala-version\n    [info] \t2.10.6\n    [info] scalafx-demos/*:scala-version\n    [info] \t2.10.6\n    [info] scalafx-project/*:scala-version\n    [info] \t2.10.6\n    \n\nNow switch to Scala 2.11.5 with the following command:\n\n     sbt\u003e ++ 2.11.5\n\n\nAnd then build the software from a clean state for Scala 2.10.3 with the\nfollowing commands:\n\n     sbt\u003e clean\n     sbt\u003e package\n     sbt\u003e scalafx-demos/run\n\n\nYou switch back to the original 2.10.6 build as well with the commands:\n\n     sbt\u003e ++ 2.10.6\n     sbt\u003e scalafx-demos/run\n\n\nNow, you should have both working 2.9.3 and 2.10.3 versions of ScalaFX. Exit\nScala SBT check the `target' folder:\n\n     % ls scalafx/target\n     resolution-cache/\t   scala-2.10/\t   scala-2.11/\t  streams/\n     % ls scalafx/target/scala-2.10/\n     cache/\t           scalafx_2.10-8.0.192-R14.jar\n     % ls scalafx/target/scala-2.11/\n     cache/            scalafx_2.11-8.0.192-R14.jar\n\n\nAnd of course this feature of cross Scala versions scales to more compiler\nlibraries, when the Lausanne delivers them, and provided the ScalaFX code all\ncompiles, builds and runs against them!\n\nFor more information, about cross scala version, see the official documentation\non Scala SBT:\nhttp://www.scala-sbt.org/release/docs/Detailed-Topics/Cross-Build.html\n\n\nHave Fun!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalafx%2Fscalafx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscalafx%2Fscalafx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalafx%2Fscalafx/lists"}