Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorganize and simplify module names #3746

Open
dafeder opened this issue Jan 30, 2022 · 0 comments
Open

Reorganize and simplify module names #3746

dafeder opened this issue Jan 30, 2022 · 0 comments

Comments

@dafeder
Copy link
Member

dafeder commented Jan 30, 2022

For reasons that are difficult to remember today, we made a decision early in DKAN 2 development to make our module machine names extremely simple -- "metastore," "datastore," etc, without prefixing them all with “dkan_.” We came to regret this fairly quickly. We also have some confusing division of central DKAN functionality between “DKAN,” “common” and “metastore.”

Given what has coalesced as the core functionality in DKAN, we should in version 3 take the opportunity to optimize our naming conventions and separations of concerns. Current recommendation is:

DKAN (dkan)

This will for the most part consolidate all code and functionality spread across “dkan,” “common,” and “metastore.” Because there is no DKAN without the metastore, and all additional modules interact with the metastore in one way or another but not necessarily with each other, it makes more sense to consider all of this part of the main dkan module.

The overall Metastore system -- the majority of the code in modules/metastore/src -- will now be considered the core functionality of DKAN. So, Drupal\metastore would become the Drupal\dkan namespace. Our service and route names could, for the most part, remain unchanged. The search module would now be dkan_search.

The DKAN module should not depend on any additional submodules; we would still have a working data catalog with API if the dkan module is enabled and nothing else is. We would perhaps add another parallel functional test job to the CI that tests the system without datastore, harvest or other additional modules enabled to make sure it works.

There is a class currently in common -- DatasetInfo -- that breaks a lot of separation, because it relies on all the other modules to bring together the dataset info from around the system. This will need to implement a plugin system to allow other modules to add information if enabled.

DKAN Datastore (dkan_datastore)

The Drupal\datastore namespace would now be Drupal\dkan_datastore. Little here would change, we would simply create more isolation so that it could be disabled.

DKAN Harvest (dkan_harvest)

This would follow the same pattern as dkan_datastore, mostly remaining the same but possibly with some refactoring of certain functionality to allow the core DKAN Metastore to be enabled without it. We may want to let the Harvest module contribute information to DatastoreInfo.

@dafeder dafeder added this to To-do in High-level roadmap Jan 30, 2022
@github-actions github-actions bot added this to Incoming/Triage in DKAN 2 Issue Triage Jan 30, 2022
@dafeder dafeder changed the title Namespace refactor Module name refactor Mar 6, 2022
@dafeder dafeder changed the title Module name refactor Reorganize and simplify module names Aug 23, 2022
@dafeder dafeder added this to the 3.x milestone Aug 23, 2022
@dafeder dafeder self-assigned this Aug 24, 2022
@janette janette modified the milestones: 3.x, 2023 Q3 Feb 18, 2023
@paul-m paul-m added the 3.x label Apr 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
DKAN 2 Issue Triage
  
Incoming/Triage
Development

Successfully merging a pull request may close this issue.

3 participants