From 5f68bde61514fb7ae7070796cfbc54563be777f7 Mon Sep 17 00:00:00 2001 From: Eric Ratliff Date: Mon, 2 Feb 2026 23:08:22 -0600 Subject: [PATCH] Fixing so many tests --- src/project/mod.rs | 19 ++-- templates/basic/.weevil.toml.template | 11 --- .../robot/opmodes/BasicOpMode.java.template | 97 ++++--------------- templates/testing/.weevil.toml.template | 11 --- .../{basic => testing}/build.gradle.template | 32 +++--- 5 files changed, 49 insertions(+), 121 deletions(-) delete mode 100644 templates/basic/.weevil.toml.template delete mode 100644 templates/testing/.weevil.toml.template rename templates/{basic => testing}/build.gradle.template (68%) diff --git a/src/project/mod.rs b/src/project/mod.rs index 692d83d..cd5a6a2 100644 --- a/src/project/mod.rs +++ b/src/project/mod.rs @@ -133,11 +133,6 @@ deploy.bat java }} -repositories {{ - mavenCentral() - google() -}} - dependencies {{ // Testing (runs on PC without SDK) testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") @@ -200,8 +195,18 @@ tasks.register("buildApk") {{ "#, sdk_path, sdk_path); fs::write(project_path.join("build.gradle.kts"), build_gradle)?; - // settings.gradle.kts - let settings_gradle = format!("rootProject.name = \"{}\"\n", self.name); + // settings.gradle.kts - Repositories go here in Gradle 8+ + let settings_gradle = format!(r#"rootProject.name = "{}" + +// Repository configuration (Gradle 8+ prefers repositories in settings) +dependencyResolutionManagement {{ + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + repositories {{ + mavenCentral() + google() + }} +}} +"#, self.name); fs::write(project_path.join("settings.gradle.kts"), settings_gradle)?; // build.sh (Linux/Mac) diff --git a/templates/basic/.weevil.toml.template b/templates/basic/.weevil.toml.template deleted file mode 100644 index b24b9e7..0000000 --- a/templates/basic/.weevil.toml.template +++ /dev/null @@ -1,11 +0,0 @@ -[project] -project_name = "{{PROJECT_NAME}}" -created = "{{CREATION_DATE}}" -weevil_version = "{{WEEVIL_VERSION}}" -template = "{{TEMPLATE_NAME}}" - -[ftc] -sdk_version = "10.1.1" - -[build] -gradle_version = "8.5" diff --git a/templates/basic/src/main/java/robot/opmodes/BasicOpMode.java.template b/templates/basic/src/main/java/robot/opmodes/BasicOpMode.java.template index 1da1b90..b6d8941 100644 --- a/templates/basic/src/main/java/robot/opmodes/BasicOpMode.java.template +++ b/templates/basic/src/main/java/robot/opmodes/BasicOpMode.java.template @@ -1,86 +1,27 @@ -// Generated by Weevil {{WEEVIL_VERSION}} on {{CREATION_DATE}} -package robot.{{PACKAGE_NAME}}; - -import com.qualcomm.robotcore.eventloop.opmode.OpMode; -import com.qualcomm.robotcore.eventloop.opmode.TeleOp; -import com.qualcomm.robotcore.hardware.DcMotor; +package robot.opmodes; /** - * Basic OpMode template for {{PROJECT_NAME}} + * Basic OpMode for {{PROJECT_NAME}} * - * This is a minimal starting point for your robot code. - * Add your hardware and control logic here. + * This is a placeholder to demonstrate project structure. + * To use this with FTC SDK: + * 1. Run: weevil deploy {{PROJECT_NAME}} + * 2. Add FTC SDK imports (OpMode, TeleOp, etc.) + * 3. Extend OpMode and implement methods + * + * For local testing (without robot), write unit tests in src/test/java/robot/ + * Run tests with: ./gradlew test + * + * Created by Weevil {{WEEVIL_VERSION}} + * Template: {{TEMPLATE_NAME}} */ -@TeleOp(name = "{{PROJECT_NAME}}: Basic", group = "TeleOp") -public class BasicOpMode extends OpMode { +public class BasicOpMode { - // Declare your hardware here - // private DcMotor leftMotor; - // private DcMotor rightMotor; + // This placeholder compiles without FTC SDK dependencies + // Replace with actual OpMode code when deploying to robot - /** - * Initialize hardware and setup - */ - @Override - public void init() { - // Initialize your hardware - // leftMotor = hardwareMap.get(DcMotor.class, "left_motor"); - // rightMotor = hardwareMap.get(DcMotor.class, "right_motor"); - - telemetry.addData("Status", "{{PROJECT_NAME}} initialized"); - telemetry.addData("Created", "Weevil {{WEEVIL_VERSION}}"); - telemetry.update(); - } - - /** - * Runs repeatedly after init, before play - */ - @Override - public void init_loop() { - telemetry.addData("Status", "Waiting for start..."); - telemetry.update(); - } - - /** - * Runs once when play is pressed - */ - @Override - public void start() { - telemetry.addData("Status", "Running!"); - telemetry.update(); - } - - /** - * Main control loop - runs repeatedly during play - */ - @Override - public void loop() { - // Add your control code here - - // Example: Read gamepad and control motors - // double leftPower = -gamepad1.left_stick_y; - // double rightPower = -gamepad1.right_stick_y; - // leftMotor.setPower(leftPower); - // rightMotor.setPower(rightPower); - - // Update telemetry - telemetry.addData("Status", "Running"); - telemetry.addData("Project", "{{PROJECT_NAME}}"); - // telemetry.addData("Left Power", leftPower); - // telemetry.addData("Right Power", rightPower); - telemetry.update(); - } - - /** - * Runs once when stop is pressed - */ - @Override - public void stop() { - // Stop all motors - // leftMotor.setPower(0); - // rightMotor.setPower(0); - - telemetry.addData("Status", "Stopped"); - telemetry.update(); + public static void main(String[] args) { + System.out.println("{{PROJECT_NAME}} - Ready for deployment"); + System.out.println("Run: weevil deploy {{PROJECT_NAME}}"); } } diff --git a/templates/testing/.weevil.toml.template b/templates/testing/.weevil.toml.template deleted file mode 100644 index b24b9e7..0000000 --- a/templates/testing/.weevil.toml.template +++ /dev/null @@ -1,11 +0,0 @@ -[project] -project_name = "{{PROJECT_NAME}}" -created = "{{CREATION_DATE}}" -weevil_version = "{{WEEVIL_VERSION}}" -template = "{{TEMPLATE_NAME}}" - -[ftc] -sdk_version = "10.1.1" - -[build] -gradle_version = "8.5" diff --git a/templates/basic/build.gradle.template b/templates/testing/build.gradle.template similarity index 68% rename from templates/basic/build.gradle.template rename to templates/testing/build.gradle.template index 239a13b..aa5d6be 100644 --- a/templates/basic/build.gradle.template +++ b/templates/testing/build.gradle.template @@ -1,7 +1,18 @@ -plugins { - id 'com.android.application' +// Build configuration for {{PROJECT_NAME}} +// This file is managed by the FTC SDK + +buildscript { + repositories { + mavenCentral() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:8.1.0' + } } +apply plugin: 'com.android.application' + android { namespace 'org.firstinspires.ftc.{{PACKAGE_NAME}}' compileSdk 34 @@ -9,18 +20,11 @@ android { defaultConfig { applicationId 'org.firstinspires.ftc.{{PACKAGE_NAME}}' minSdk 24 - targetSdk 34 + //noinspection ExpiredTargetSdkVersion + targetSdk 28 + versionCode 1 versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } } compileOptions { @@ -31,12 +35,12 @@ android { sourceSets { main { java { - srcDirs = ['src/main/java'] + srcDir 'src/main/java' } } test { java { - srcDirs = ['src/test/java'] + srcDir 'src/test/java' } } }