Closed dbluhm closed 3 years ago
Two comments:
org.eclipse.ice.demo
is indeed intended to be demo examples of how to use various APIs. I added some examples for Commands, but none of the others are in use as far as I know (and I think they don't build anyway by default).
org.eclipse.ice.modeling
was a project that John Hetrick and I added as a dummy example to get him accustomed to git, but I don't think he has worked on it at all since taking a more active role in the neutrons projects. We can probably delete this, unless @jayjaybillings has objections or intends for it to be worked on.
Thanks for kicking this off. Here are my thoughts. I should also apologize for the mess. When I started rebuilding the code, I deleted most of it but left what I thought would be useful. I didn't look very deep and I didn't come back for a second pass to clear out more junk.
BTW - we need to make a tag before we delete all of this stuff.
We can safely delete the following bundles/packages:
I suggest we update org.eclipse.ice.developer with new Eclipse extensions and replace the old ones. This is a value added activity for us just like the project generators and annotation processors. Some of the tools in here are really handy, like the project check-out and import actions. In principle this should be as simple as updating and rebuilding bundle, although I would recommend renaming it to org.eclipse.ice.dev.ide.
org.eclipse.ice.demo is as @osbornjd says. And, as @dbluhm says, we'll just update and clean this bundle up over time.
org.eclipse.ice.workflow is as @dbluhm says and it will see more updates as I start putting in the Workflow classes on top of Tasks.
org.eclipse.ice.tests should probably get a .util suffix or something to indicate what it actually does.
Let's keep org.eclipse.ice.io and its tests for now. I imagine that we will soon be working with CSV, INI, and other types of data, so it would be good to rebuild this bundle instead of reimplementing those. Likewise, we may find that we want to move some I/O utilities in here, like JSON support, etc. Architecturally this could be the lowest bundle in our stack.
org.eclipse.ice.filesimulation is a keeper. It's been my main testing bundle for job launches for a decade and will get some updates soon. In our current vernacular, it is a Task that I use for testing and in-situ debugging (meaning it can be called while the code is running in production).
I think that's everything. I'll start working on this, but feel free to jump in if my new gig keeps me out of the loop for a bit. Also, I don't think a PR is needed for this.
I just deleted all of the bundles, but I accidentally did them in my tasks branch. #facepalm
I cherry-picked the commit and pushed it, but I got a weird error when I merged it back into jay/tasks:
CONFLICT (rename/delete): org.eclipse.ice.tests.item/src/org/eclipse/tests/ice/item/FakeActionFactory.java deleted in origin/next and renamed to org.eclipse.ice.tasks/src/test/java/org/eclipse/ice/tests/tasks/TestHook.java in HEAD. Version HEAD of org.eclipse.ice.tasks/src/test/java/org/eclipse/ice/tests/tasks/TestHook.java left in tree.
CONFLICT (rename/delete): org.eclipse.ice.tests.item/src/org/eclipse/tests/ice/item/ICEDatabaseValidatorTester.java deleted in origin/next and renamed to org.eclipse.ice.tasks/src/main/java/org/eclipse/ice/tasks/TaskException.java in HEAD. Version HEAD of org.eclipse.ice.tasks/src/main/java/org/eclipse/ice/tasks/TaskException.java left in tree.
CONFLICT (rename/delete): org.eclipse.ice.tests.item/src/org/eclipse/tests/ice/item/ICEDatabaseValidator.java deleted in origin/next and renamed to org.eclipse.ice.renderer/src/main/java/org/eclipse/ice/renderer/PersonEnum.java in HEAD. Version HEAD of org.eclipse.ice.renderer/src/main/java/org/eclipse/ice/renderer/PersonEnum.java left in tree.
Automatic merge failed; fix conflicts and then commit the result.
Just recording it.
Just looked at PR #457 and I see that I deleted 75k lines of code. Sweet.
I don't think there are any remaining action items on this so I'll go ahead and close this issue. Thanks for your help identifying everything, @jayjaybillings and @osbornjd.
This is an accounting of code currently present in the Next branch. I've enumerated below each of the bundles at the root of the repository along with a short description, notes on what it supersedes or is superseded by, and any other relevant bits I find. In many cases my assessment is likely to be incomplete; please add any clarifications you might have in comments. I may also tag authors for comments on specific bundles when it is clear that they were the most recent person to touch that particular bundle.
Summer 2020 Code Audit (Next)
Bundles
Removed Bundles
The following bundles have been removed as a result of this audit.
org.eclipse.ice.aggregator
org.eclipse.ice.classifier
org.eclipse.ice.persistence.xml
(although this has some of my favorite code in it...)org.eclipse.ice.tests.persistence.xml
schema
org.eclipse.ice.item
org.eclipse.ice.tests.item
org.eclipse.ice.datastructures
org.eclipse.ice.tests.datastructures
org.eclipse.ice.tests.core.jaxrs
| outdated, I'll pull it from a branch if I need itorg.eclipse.ice.target.oxygen
| outdatedorg.eclipse.ice.service
| outdated, I'll pull it from a branchorg.eclipse.ice.projectgeneration
| outdated and superseded mostly by archetypes. We should add project generation capability to org.eclipse.ice.dev.ide (renamed from org.eclipse.ice.developer, see below), but we can pull that code from a release branch as needed.org.eclipse.ice.parent
| outdated as writtenorg.eclipse.ice.modeling
| I think we can delete this since it was a dummy project. It will still be in the Git history if we or John need it.org.eclipse.ice.core
| Needed, but I can pull from a branch when the time is write and favor more of a rewrite approach. I just need the reference.org.eclipse.ice.tests.core
| SameRecent Activity Summary
org.eclipse.ice.aggregator
org.eclipse.ice.archetypes
org.eclipse.ice.build
org.eclipse.ice.classifier
org.eclipse.ice.commands.swt
org.eclipse.ice.commands
org.eclipse.ice.core.test
org.eclipse.ice.core
org.eclipse.ice.data
org.eclipse.ice.datastructures
org.eclipse.ice.demo
org.eclipse.ice.dev
org.eclipse.ice.developer
org.eclipse.ice.filesimulation
org.eclipse.ice.io
org.eclipse.ice.item
org.eclipse.ice.modeling
org.eclipse.ice.parent
org.eclipse.ice.persistence.xml
org.eclipse.ice.projectgeneration
org.eclipse.ice.renderer
org.eclipse.ice.servicetester
org.eclipse.ice.target.oxygen
org.eclipse.ice.tasks
org.eclipse.ice.tests.core.jaxrs
org.eclipse.ice.tests.core
org.eclipse.ice.tests.datastructures
org.eclipse.ice.tests.integration
org.eclipse.ice.tests.io
org.eclipse.ice.tests.item
org.eclipse.ice.tests.persistence.xml
org.eclipse.ice.tests
org.eclipse.ice.workflow
rse-render-client-test
Analysis
org.eclipse.ice.archetypes
Maven project generators. Recent activity: This is a new addition in active use. Supersedes:
org.eclipse.ice.projectgeneration
?org.eclipse.ice.aggregator
No Java source code, appears to be just a multi-module Maven project for builds, maybe documentation? Recent activity: 3+ Years since any activity. Superseded by:
org.eclipse.ice.build
?org.eclipse.ice.build
Multi-module maven project for building Eclipse ICE. Recent activity: This is a new addition in active use. Supersedes:
org.eclipse.ice.parent
,org.eclipse.ice.aggregator
(?)org.eclipse.ice.classifier
Contains only a
build.properties
file. Commit message: "Adding some boilerplate for the ParserGenerator plugins." Purpose is unclear to me. Recent activity: No activity in 5+ years. Superseded by: ?org.eclipse.ice.commands.swt
Extension for commands enabling password authentication through Java's standard widget toolkit (SWT). Recent activity: This is a new addition in active use. Supersedes: ?
org.eclipse.ice.commands
API for setting up and running jobs on a remote host or locally. Includes file transfer. Recent activity: This is a new addition in active use. Supersedes:
org.eclipse.ice.filesimulation
(sort of), others?org.eclipse.ice.core.test
Contains only
defaultUser/default/.project
. Purpose is unclear to me. Recent activity: No activity in ~4 years. Superseded by: ?org.eclipse.ice.core
"The Core class is responsible for implementing and/or managing all of the data and workflow management capabilities of ICE." Overhaul to use new task infrastructure is due for this bundle according to @jayjaybillings. May just be that interfaces only survive. Recent activity: Some activity ~3 years ago. Superseded by: ?
org.eclipse.ice.data
Some core interfaces and helpers for managing data?
IDataElement
,IPersistenceHandler
, andJavascriptValidator
recently moved to this bundle but remaining elements are older, potentially obsolete? Recent activity: Recent activity on the above mentioned Interfaces, others haven't seen activity in ~2 years. Supersedes: ? Superseded by: ?org.eclipse.ice.datastructures
Core data structures for ICE 2.0, including Form. I believe @jayjaybillings mentioned that the majority of this will be replaced and has already partially been replaced by
DataElements
. Recent activity: Minor recent changes, no significant work in 3-5 years. Superseded by:DataElement
at least partially,WebForm
(?)org.eclipse.ice.demo
Demonstrations of ICE functionality. Seems to include demos for fern(?), launcher, model, visualization and commands.
From Joe:
Recent activity: @osbornjd recently added commands demo but other demos are 4-5 years old. Superseded by: Old demos are likely to just be replaced in place?
org.eclipse.ice.dev
Main bundle for a lot of our recent development on code generation through annotation processors and other utilities. Recent activity: In active use. Supersedes:
org.eclipse.ice.datastructures
(?),org.eclipse.ice.projectgeneration
(?),org.eclipse.ice.from
(?),org.eclipse.ice.developer(?)
org.eclipse.ice.developer
Appears to be Eclipse tools (actions and menus) for working with ICE. Recent activity: No activity in ~3 years. Superseded by: ?
org.eclipse.ice.filesimulation
From @jayjaybillings: "An old test bundle. It is the third oldest bundle in all of ICE. It is used to cake the file command on bash to test Items. It's due for an overhaul for Tasks." The next iteration will likely take advantage of the commands API. Recent activity: No activity in ~3 years. Superseded by:
org.eclipse.ice.tasks
,org.eclipse.ice.commands
org.eclipse.ice.io
Several readers and writers for different kinds of configuration files formats as well as HDF5. Recent activity: No activity in ~5 years. Superseded by:
PersistenceHandlers
to an extent?org.eclipse.ice.item
"The Item class is responsible for carrying out activities necessary to perform certain tasks with ICE." Recent activity: No activity in ~5 years for most of the code, some activity between 3-4 years ago. Superseded by:
org.eclipse.ice.tasks
?org.eclipse.ice.modeling
Seems to be a mostly empty project.
From Joe:
Recent activity: Recently committed by @osbornjd Supersedes: ?
org.eclipse.ice.parent
Seems to be a maven multi-module project used in building ICE. Recent activity: No activity in ~3 years. Superseded by:
org.eclipse.ice.build
org.eclipse.ice.persistence.xml
XML Persistence providers Recent activity: No activity in ~4 years. Superseded by:
PersistenceHandlers
?org.eclipse.ice.projectgeneration
Eclipse project generators. Recent activity: No activity in ~4 years. Superseded by:
org.eclipse.ice.archetypes
? Archetypes fill the same function but are not exclusive to Eclipse. Maven archetypes can be used by Eclipse in maven project creation.org.eclipse.ice.renderer
Renderer for DataElements. Mostly a prototype at the moment but functional and in use in the
rse-renderer-client-test
. Recent activity: In active use. Supersedes: ?org.eclipse.ice.servicetester
Only one class in this bundle,
ServiceTester
. "Used to test the OSGi/Equinox Declarative Services setup." Recent activity: No activity in ~5 years. Superseded by: ?org.eclipse.ice.target.oxygen
Support for Eclipse Oxygen? Recent activity: Recently changed but git history is proving hard to follow. Unclear what degree of changes were made recently. Superseded by: ?
org.eclipse.ice.tasks
"Tasks are executed by workflows, either fully automated workflows (such as ICE workflows) or workflows controlled by intelligent agents without full automation." Recent activity: In active development by @jayjaybillings. Supersedes:
org.eclipse.ice.item
?org.eclipse.ice.tests.core.jaxrs
"This is a simple test class to check the JAXRS interface bindings in ICE." Recent activity: No activity in ~3 years. Superseded by: ?
org.eclipse.ice.tests.core
Tests for
org.eclipse.ice.core
. Recent activity: No activity in ~3 years. Superseded by: ?org.eclipse.ice.tests.datastructures
Tests for
org.eclipse.ice.datastructures
. Recent activity: No activity in ~3 years. Superseded by: ?org.eclipse.ice.tests.integration
Integration tests for Eclipse ICE. Integration tests for several bundles are collected here to be isolated from the dependency-free unit tests. Recent activity: In active use. Supersedes: ?
org.eclipse.ice.tests.io
Tests for
org.eclipse.ice.io
. Recent activity: No activity in ~3 years. Superseded by: ?org.eclipse.ice.tests.item
Tests for
org.eclipse.ice.item
. Recent activity: No activity in ~3 years. Superseded by: ?org.eclipse.ice.tests.persistence.xml
Tests for
org.eclipse.ice.persistence.xml
. Recent activity: No activity in ~3 years. Superseded by: ?org.eclipse.ice.tests
Test utilities that can be pulled in by unit and integration tests alike. Provides helpers for easily working with test data and test configurations. Recent activity: In active use. Supersedes: ?
org.eclipse.ice.workflow
Appears to be a WIP replacement workflow engine? Calling in @jayjaybillings for comment. Recent activity: Saw significant activity about a year ago. Supersedes:
org.eclipse.ice.item
?rse-renderer-client-test
A prototype web form project using Vaadin to render DataElements. Recent activity: Under active development as part of
WebForm
work. Supersedes: ?Other
basicComponentPageProvider.exsd
. Unclear what purpose is.LicenseFixer.sh
still seems to work well.