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

Combined pre-AGU GUI and Calibration Message Work #240

Open
wants to merge 169 commits into
base: master
Choose a base branch
from

Conversation

robertbartel
Copy link
Contributor

This PR is a combination of the map view GUI work, the dataset management GUI work, and the calibration request message work done prior to AGU Fall Meeting 2022. The original branches for that work have been merged so we don't have lingering, non-aligning, outstanding branches. Also, other subsequent work has been rebased in.

We may still end up with a queue of branches, but if we do, this should at least help us ensure things happen in a series and are thus easier to maintain.

This PR effectively replaces #197, #210, and #217.

Fixing logic where pip installs the updated packages (to avoid the
entire image rebuild), so make sure deps are ignored (as this was the
slow part).
Adding type GET_SERIALIZED_FORM to get the entire serialized state of
a dataset.
Refactor to ensure it takes advantage of connection handling via its
async context manager logic.
Add new function to get serialized dataset details to
DatasetExternalClient.
Fix issue with not acquiring a session, and wrapping some things in try
block to catch and log exceptions.
Fixing bug in response to LIST_FILES query, where reason text was not
being assembled entirely correctly.
Adding optional offset and length params to abstract interface
definition of get_data, and adding get_file_stat abstract method.
Adding support for querying about dataset items.
Updating to support indicating start and size of data for partial
transfers.
Optimizing the reloading of datasets on object store manager startup.
Accounting for changes to get_data parameters and implementing
get_file_stat.
Updating service to respond to GET_DATASET_ITEMS queries and requests
for data with an offset start (i.e. partials).
aaraney and others added 11 commits January 18, 2023 12:14
this also includes some commented out code that *might* need to be added in the future to support data_requirement dissemination
Fixing bug in deserialization function where processed (i.e., by this
type) optional kwargs were being combined into list of additional (i.e.,
potentially by subtypes) additional kwargs to be passed to __init__,
with both lists being passed instead of just the combined.
Fixing setup for TestSimpleHydrofabricSubset that used the
MappedGraphHydrofabric class after it was made abstract, replacing its
use with its GeoJsonHydrofabric subtype.
Fixing argument handling for those args related to communicating with
evaluation service, including the dest name for args, defaults, and use
when creating main service handler class.
Fixing imports, class usage, and code style spacing for several things
related to evaluation requests within main request-service handler
class.
@aaraney
Copy link
Member

aaraney commented Mar 9, 2023

@robertbartel, looking at the files the PR affects, I am a little concerned how merging this will affect merging the pydantic refactor work. It might be painful, but we might try doing a dry run of that merge process locally before we do it on github just to see what the consequneces are. I guess a precursor that that thought is, how "complete" does the work this PR introduces need to be? What im really trying to get at is, what does the review process for the PR look like? Speaking for some of my commits in this PR, there are certainly some loose ends that should be tied up or just dropped and have new issues opened to address that work in the future.

@robertbartel
Copy link
Contributor Author

@aaraney, I performed a local rebase of the Pydantic changes in the combined branch you'd sent me, refactor-libs, across this branch and those queued/blocked in the same sequence (I may have left out the last one for now). I may not have pushed them all, but I think I've at least pushed the last of these - austin_refactor_w_postagu_4 - to my fork. We can double check before things are committed, but I think the hard part there is done.

In terms of completeness, we expect things to be incomplete at this point. We need to keep track of loose ends and broken things but not make this PR perfect, even for the things within its scope. The reason for the associated PR sequence is that other work builds off this further to continue to iteratively address things.

@aaraney
Copy link
Member

aaraney commented Mar 9, 2023

@aaraney, I performed a local rebase of the Pydantic changes in the combined branch you'd sent me, refactor-libs, across this branch and those queued/blocked in the same sequence (I may have left out the last one for now). I may not have pushed them all, but I think I've at least pushed the last of these - austin_refactor_w_postagu_4 - to my fork. We can double check before things are committed, but I think the hard part there is done.

@robertbartel, right I am forgetting that you did that. I think the refactor-libs branch is basically what the pydantic-refactor branch looks like now, so it seems will just have some merge conflicts that we will have to carefully resolve.

In terms of completeness, we expect things to be incomplete at this point. We need to keep track of loose ends and broken things but not make this PR perfect, even for the things within its scope. The reason for the associated PR sequence is that other work builds off this further to continue to iteratively address things.

Thanks for clarifying that. To push this PR forward, ill go ahead and open up TODO issues so we can circle back to incomplete code introduced by this PR.

@aaraney aaraney mentioned this pull request Mar 9, 2023
@aaraney
Copy link
Member

aaraney commented Mar 9, 2023

The more I look at this, the more I am concerned about the amount of dead code and technical debt this PR will introduce. I'm not sure this is avoidable, but I thought I would voice my thoughts either way.

@robertbartel
Copy link
Contributor Author

robertbartel commented Mar 14, 2023

Before we move forward any further with this (including fixing the current conflicts), I am going to spend some time looking at what it will take to untether and re-separate the distinct aspects, as well as the subsequent changes in the related series of PRs (#276, #277, #278, and #279).

In most circumstances, I feel the technical debt and dead code @aaraney alluded to earlier would be essentially unavoidable: a side effect of the development process for something this big when it is done in chunks. That's even with this set of changes being bigger and including more than we normally want to see.

Here, though, with a fairly big shift in GUI code being planned in #286, the direct need for large parts of this (long-term at least) is now questionable. It may be better at this point to cherry-pick certain things out, even if that comes with a bit of work to resolve resulting conflicts.

@aaraney
Copy link
Member

aaraney commented Mar 15, 2024

@robertbartel, what is the state of this? I've not done much digging, but it seems that the bulk of this work has merged through other PRs. Can we close this?

@aaraney
Copy link
Member

aaraney commented May 15, 2024

@robertbartel, is it fair to close this?

@robertbartel
Copy link
Contributor Author

@aaraney, I'm not quite ready to yet. Given recent decisions to move away from a React-based GUI, it's not impossible we'd want to come back to some of this, and I'm not sure it's all been merged. Let's wait for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maas MaaS Workstream
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants