Repository navigation
Description
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 compileResult 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 mentionsListenersMemoryBenchmark, a class that no longer exists; - the
MemoryFootprintBenchmarkdocs; - the
MemoryFootprintBenchmarksection inAGENTS.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.
- Find the last commit of this project that builds with
-Pcloudsimplus-8, and tag it (e.g.cloudsimplus-8.5.1). - Remove the
cloudsimplus-8profile frompom.xml, and the comment about it on thecloudsimplus.versionproperty. - Update the
MemoryFootprintBenchmarkdocs andAGENTS.mdto measure 8.5.1 from that tag and the current version frommaster. - 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