Skip to content

The cloudsimplus-8 Maven profile no longer compiles #19

Open

Description

@manoelcampos

Actual behavior

The cloudsimplus-8 Maven profile builds this project against CloudSim Plus 8.5.1, to compare its memory footprint with the current version. The build now fails, since the sources use APIs that 8.5.1 doesn't have:

./mvnw -Pcloudsimplus-8 -DskipTests compile

Result on master (77bfc12):

File Missing in 8.5.1
ProcessorScenario CoreCapacity, the org.cloudsimplus.placementpolicies package, VmPlacementPolicyBestFit and of() factories
SimulationTimeBenchmark CoreCapacity and of() factories
CloudletToVmMappingSolutionBenchmark CoreCapacity and of() factories
MemoryFootprintBenchmark CloudletSimple.of()

The compiler may report more errors once these ones are fixed, so this table may not be complete.

The break came from keeping these sources up to date with the framework, such as #11 (CoreCapacity), #14 (placement API) and #15 (of() factories). No CI job builds this profile, so nothing reported the failure.

Why it matters

These places still describe a comparison that can't be run as written:

  • the profile in pom.xml, whose comment also mentions ListenersMemoryBenchmark, a class that no longer exists;
  • the MemoryFootprintBenchmark docs;
  • the MemoryFootprintBenchmark section in AGENTS.md.

Proposal

Remove the profile and compare versions by checking out an older commit of this project. Keeping one source tree compiling against both versions isn't practical: each framework API change would need version-specific code, and the framework's API has changed a lot since 8.5.1.

  1. Find the last commit of this project that builds with -Pcloudsimplus-8, and tag it (e.g. cloudsimplus-8.5.1).
  2. Remove the cloudsimplus-8 profile from pom.xml, and the comment about it on the cloudsimplus.version property.
  3. Update the MemoryFootprintBenchmark docs and AGENTS.md to measure 8.5.1 from that tag and the current version from master.
  4. Check that this comparison runs, using both versions, and that the published README results don't depend on the removed profile.

Alternative

Keep the profile and move the code that creates objects into a separate source directory per version, selected by the profile (e.g. with build-helper-maven-plugin). MemoryFootprintBenchmark could then keep measuring both versions from master, but all that code would exist twice, and a CI job would be needed to keep the profile from breaking again.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions