{"id":13772404,"url":"https://github.com/wpilibsuite/GradleRIO","last_synced_at":"2025-05-11T04:31:24.014Z","repository":{"id":25913014,"uuid":"29353865","full_name":"wpilibsuite/GradleRIO","owner":"wpilibsuite","description":"The official gradle plugin for the FIRST Robotics Competition","archived":false,"fork":false,"pushed_at":"2024-10-15T23:27:52.000Z","size":14678,"stargazers_count":263,"open_issues_count":46,"forks_count":70,"subscribers_count":16,"default_branch":"main","last_synced_at":"2024-10-29T17:38:13.702Z","etag":null,"topics":["first-robotics-competition","frc","gradlerio","roborio"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wpilibsuite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2015-01-16T15:21:41.000Z","updated_at":"2024-10-15T20:07:45.000Z","dependencies_parsed_at":"2023-10-12T05:54:26.839Z","dependency_job_id":"778c9ee9-9e85-492c-bbfb-bc9a6046c625","html_url":"https://github.com/wpilibsuite/GradleRIO","commit_stats":{"total_commits":733,"total_committers":34,"mean_commits":"21.558823529411764","dds":0.5347885402455661,"last_synced_commit":"9234ce884572c04d1469347aaa9c709171dd70b8"},"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wpilibsuite%2FGradleRIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wpilibsuite%2FGradleRIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wpilibsuite%2FGradleRIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wpilibsuite%2FGradleRIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wpilibsuite","download_url":"https://codeload.github.com/wpilibsuite/GradleRIO/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253518941,"owners_count":21921074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["first-robotics-competition","frc","gradlerio","roborio"],"created_at":"2024-08-03T17:01:03.613Z","updated_at":"2025-05-11T04:31:21.100Z","avatar_url":"https://github.com/wpilibsuite.png","language":"Java","funding_links":[],"categories":["General"],"sub_categories":[],"readme":"![CI](https://github.com/wpilibsuite/GradleRIO/workflows/CI/badge.svg)\n\n# GradleRIO\n\nGradleRIO is a powerful Gradle Plugin that allows teams competing in the FIRST\nrobotics competition to produce and build their code.\n\n![](img/tty.gif)\n\nGradleRIO works with Java and C++ (and others!), on Windows, Mac and Linux. GradleRIO automatically fetches WPILib, Tools, and Vendor Libraries.\n\nFor 2019+, GradleRIO is the official build system for the _FIRST_ Robotics Competition! The officially supported IDE is Visual Studio Code (VS Code), using the [WPILib Extension](https://github.com/wpilibsuite/vscode-wpilib).\n\nfrc-docs is the best place for documentation: https://docs.wpilib.org/en/stable/\n\nOther IDEs like IntelliJ IDEA, Eclipse, Visual Studio, and CLion are also supported, unofficially. You may also use this tool exclusively from the command line, allowing use of any IDE or text editor (like Sublime Text, Atom or Vim).\n\n## Getting Started - Creating a new project\n\n### With Visual Studio Code (recommended)\n\nFor getting started with VS Code, please see the frc-docs documentation:\nhttps://docs.wpilib.org/en/stable/docs/zero-to-robot/introduction.html\n\n### Without Visual Studio Code\n\nFollow the installation instructions on frc-docs: https://docs.wpilib.org/en/stable/docs/zero-to-robot/step-2/wpilib-setup.html\n_Note that the offline installer isn't required, but will save you a ton of time and is highly recommended._\n\n**WPILibUtility Standalone Project Builder**\nWPILib provides a standalone project builder that provides the same interface as VS Code, without having to use VS Code.\n\nIf you've used the installer, find and run `wpilibutility` in `C:\\Users\\Public\\wpilib\\\u003cYEAR\u003e\\utility` (windows), or `~/wpilib/\u003cYEAR\u003e/utility`(mac/linux). Note that mac users will have to extract the .tar.gz file, then run.\nAlternatively, download it from the VSCode-WPILib releases, extract it, and run it: https://github.com/wpilibsuite/vscode-wpilib/releases\n\nUse the WPILib Utility whenever you want to create a new project.\n\n## Adding Vendor Libraries\n\n### With Visual Studio Code\n\nOpen the command palette with CTRL + SHIFT + P, or by clicking the WPILib icon.\nOpen `WPILib: Manage Vendor Libraries`, `Install new libraries (online)`, and paste the vendor-provided JSON url.\n\n### Without Visual Studio Code\n\nCreate a folder `vendordeps` in your project directory if it doesn't already exist.\nDownload the JSON file from the vendor-provided URL, and save it to the `vendordeps` folder.\nThis can be done by running `./gradlew vendordep --url=\u003cvendor url here\u003e` in a project.\n\n## Commands\n\nWindows Users: It is recommended to use Powershell instead of CMD. You can switch to powershell with `powershell`\n\n### General\n\n- `./gradlew build` will build your robot code (and run unit tests if present).\n- `./gradlew deploy` will build and deploy your code.\n\n- `./gradlew installRoboRioToolchain` will install the C++ Toolchains for your system (required for C++).\n\n### Tools\n\n- `./gradlew Glass` will launch Glass, a data visualization tool similar to the SimGUI.\n- `./gradlew ShuffleBoard` will launch Shuffleboard, the 2018 replacement for SmartDashboard.\n- `./gradlew SmartDashboard` will launch Smart Dashboard (note: SmartDashboard is legacy software, use ShuffleBoard instead!).\n- `./gradlew RobotBuilder` will launch Robot Builder, a tool for generating robot projects and source files.\n- `./gradlew OutlineViewer` will launch Outline Viewer, for viewing NetworkTables.\n- `./gradlew PathWeaver` will launch PathWeaver, a tool for generating motion profiles using WPILib's trajectories and splines.\n\n**At Competition? Connected to the Robot?** Run with the `--offline` flag. e.g. `./gradlew deploy --offline`\n\n## IDE Support\n\n### Visual Studio Code:\n\nVS Code is fully supported by GradleRIO for FRC. To use it, use the WPILib VS Code extension. See frc-docs for instructions.\n\n### IntelliJ IDEA:\n\n_IntelliJ IDEA support is unofficial in the FRC sense, but is well supported by the Gradle team. CSA Support isn't guaranteed, so make sure you're prepared to fix any issues yourself if you're at an event._\n\nTo import a gradle project into IntelliJ IDEA please do **one** of the following:\n- In the welcome screen click `Import Project` and select the `build.gradle` file of the project.\n- Click `Open` on the welcome screen or `File - Open` while you have another project open and select the `build.gradle` file of the project. IntelliJ will then prompt you if you would like to open it as a project, click `Open as Project`\n\nIntelliJ may ask to import the Gradle project in the bottom right of the IDE, simple click `Import Changes` to import it.\n\nPlease see the IntelliJ IDEA help page on gradle for help: https://www.jetbrains.com/help/idea/gradle.html\n\n### Eclipse\n\n_Eclipse support is unofficial in the FRC sense, but is well supported by the Gradle team. CSA Support isn't guaranteed, so make sure you're prepared to fix any issues yourself if you're at an event. **Eclipse is only supported for JAVA (not C++)**_\n\nFirst install buildship, the gradle plugin made by Eclipse for the Eclipse IDE. Installation instructions can be found here: https://github.com/eclipse/buildship/blob/master/docs/user/Installation.md\n\nOnce installed, navigate to `File - Import… - Gradle` and select Gradle Project.\n\nPress the `Next \u003e` button, then specify the root directory of the project.\nPress `Finish` once to finish the import, and `Finish` again to confirm it.\n\nPlease see the buildship github page for help (specifically the user documentation and the forums): https://github.com/eclipse/buildship\n\n### Visual Studio 2017 Community / Full (not Visual Studio Code)\n\n_VS2017 support is unofficial in the FRC sense, but is well supported by the Gradle team. CSA Support isn't guaranteed, so make sure you're prepared to fix any issues yourself if you're at an event._\n\nTo start with, you must apply the `visual-studio` plugin to build.gradle. In your `build.gradle`, put the following code in the `plugins {}` block.\n```gradle\nplugins {\n    id 'visual-studio'\n}\n```\n\nFinally, you can generate and open your solution with the following command:\n- `./gradlew openVisualStudio` will generate IDE files for VS2017 (C++) and open Visual Studio.\n\nPlease see the gradle guide on building native software for help: https://docs.gradle.org/current/userguide/native_software.html#native_binaries:visual_studio\n\n## Upgrading\n\nTo upgrade your Gradle project (and GradleRio plugin) from one year to the next follow the [Importing a Gradle Project](https://docs.wpilib.org/en/stable/docs/software/vscode-overview/importing-gradle-project.html) instructions in the WPILib Documentation.\n\nFor mid-season updates to GradleRio, edit build.gradle and replace the version in the plugin line (only change the GradleRIO line):\n```gradle\nplugins {\n    // ... other plugins ...\n    id \"edu.wpi.first.GradleRIO\" version \"REPLACE ME WITH THE LATEST VERSION\"\n}\n```\n\nThe latest version can be obtained from here: https://plugins.gradle.org/plugin/edu.wpi.first.GradleRIO\n\n## Using alternate garbage collector\n\nGradleRIO has built in settings for several different garbage collectors. The G1 Garbage Collector was used for 2023. The Serial Garbage Collector is used for 2024. A list of all Garbage Collectors and settings that GradleRIO has built-in support for setting is available at: https://github.com/wpilibsuite/GradleRIO/blob/main/src/main/java/edu/wpi/first/gradlerio/deploy/roborio/GarbageCollectorType.java. To use another Garbage Collector, in the FRCJavaArtifact block, add `gcType = ` and set it to the value found in the `GarbageCollectorType` enum.\n\nThe `Other` `gcType` can be used for complete customization\n\n1. Set `gcType = 'Other'` in the FRCJavaArtifact block\n2. Add the appropriate jvmArg for the Garbage Collector and settings in the FRCJavaArtifact. For the default G1 settings:\n   ```\n   jvmArgs.add(\"-XX:+UseG1GC\")\n   jvmArgs.add(\"-XX:MaxGCPauseMillis=1\")\n   jvmArgs.add(\"-XX:GCTimeRatio=1\")\n   ```\n\n# Using GradleRIO custom builds\n\nTo use a custom build of GradleRIO in a robot project, the build must be published.\n\n1. Update the version in `gradle.properties` so that GradleRIO won't overwrite an existing version.\n2. Execute `.\\gradlew publishToMavenLocal`\n3. Update the GradleRIO version in your robot projects `build.gradle` to the version you defined in GradleRIO `gradle.properties`.\n```gradle\nplugins {\n    // ... other plugins ...\n    id \"edu.wpi.first.GradleRIO\" version \"REPLACE ME WITH THE PUBLISHED VERSION\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwpilibsuite%2FGradleRIO","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwpilibsuite%2FGradleRIO","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwpilibsuite%2FGradleRIO/lists"}