BHoM / BHoM_Adapter

GNU Lesser General Public License v3.0
7 stars 6 forks source link

BHoM_Adapter: allow push multiple Types at the same time by gathering dependency order #332

Closed alelom closed 1 year ago

alelom commented 1 year ago

Depends on

https://github.com/BHoM/BHoM_Engine/pull/2974

Issues addressed by this PR

Closes #331

Test files

Use the full testing procedure for Adapters on this PR.

Additional tests are temporarily provided in the form of Unit Test within the solution. I found it extremely useful to develop this functionality by preparing tests before developing, because I could run the whole adapter workflow, debug and live-edit while debugging. I wish we could keep them where they are but, because currently this is non-compliant, they will likely be moved out in a dedicated toolkit, similarly to what we do with DiffingTests_prototypes.

Changelog

Additional comments

Because this feature is needed to fully leverage the work done by @enricoantolini in the Karamba_Toolkit, I am putting it as a high priority feature, to be merged as soon as possible. However, in depth testing is needed on this one.

Additionally, some ancillary features are needed to avoid some slowdown introduced by this PR, like https://github.com/BHoM/BHoM_Adapter/issues/329, which should be mergeable soon after this gets merged.

al-fisher commented 1 year ago

Nice! Quick comment on the Unit Tests - think good case to be made to keep closer to code for advanced framework projects like this! The core framework code (which demands necessarily more complex functionality - and I would include in this the Adaptor and UI repos, and perhaps core functionality like versioning and serialisation etc.) should naturally have robust unit tests - and should be stored where most logical to ease development, testing and review. This is perhaps converse to our “discipline engines” which we should continue to strive to be kept as “simple as possible”, relying heavily on our data set driven unit tests and for which the compliance rules were largely originally derived I feel.

Worth opening a discussion on refining compliance for the advanced cases like this @alelom to enanle gathering thoughts and consensus ?

FraserGreenroyd commented 1 year ago

Have discussed with @alelom that he will put the adapter tests within the .ci folder for this repo, as a .ci/code solution called Verification.sln, which contains a Verify class (static class) in line with Versioning, Null-Handling, and Serialisation.

In addition to this, an additional project will be housed that contains @alelom console application that has allowed him to do the live-edit testing/debugging that has helped this work be developed up. This will allow us to have the best of the automated testing via the bot and during development testing 😄

IsakNaslundBh commented 1 year ago

Generally happy with the functionality now. From my testing on a couple of adapters it is working great.

Also, generally happy with the code, see minor comments above regarding the latest commits.

IsakNaslundBh commented 1 year ago

@BHoMBot check compliance

bhombot-ci[bot] commented 1 year ago
@IsakNaslundBh to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `branch-compliance` - check `dataset-compliance` - check `copyright-compliance` There are 31 requests in the queue ahead of you.
FraserGreenroyd commented 1 year ago

@BHoMBot check compliance

bhombot-ci[bot] commented 1 year ago
@FraserGreenroyd to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `branch-compliance` - check `dataset-compliance` - check `copyright-compliance` There are 4 requests in the queue ahead of you.
alelom commented 1 year ago

@BHoMBot check required

bhombot-ci[bot] commented 1 year ago
@alelom to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `core` - check `null-handling` - check `serialisation` - check `versioning` - check `installer`
bhombot-ci[bot] commented 1 year ago
Please be advised that the check with reference 10440275415 has more than 50 annotations of notes. API limitations restrict annotations to 50. You may need to rerun this check to obtain the next set when you make changes. At the time of reporting this check, there are 286 additional annotations waiting, made up of 286 errors and 0 warnings.
alelom commented 1 year ago

@BHoMBot check required

bhombot-ci[bot] commented 1 year ago
@alelom to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `core` - check `null-handling` - check `serialisation` - check `versioning` - check `installer`
alelom commented 1 year ago

@BHoMBot check project-compliance

bhombot-ci[bot] commented 1 year ago
@alelom to confirm, the following actions are now queued: - check `project-compliance`
alelom commented 1 year ago

@BHoMBot check project-compliance

bhombot-ci[bot] commented 1 year ago
@alelom to confirm, the following actions are now queued: - check `project-compliance` There are 3 requests in the queue ahead of you.
alelom commented 1 year ago

@BHoMBot check project-compliance

bhombot-ci[bot] commented 1 year ago
@alelom to confirm, the following actions are now queued: - check `project-compliance` There are 27 requests in the queue ahead of you.
alelom commented 1 year ago

@BHoMBot check required

bhombot-ci[bot] commented 1 year ago
@alelom to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `core` - check `null-handling` - check `serialisation` - check `versioning` - check `installer` There are 5 requests in the queue ahead of you.
FraserGreenroyd commented 1 year ago

@IsakNaslundBh @alelom - Discussed with you both today but commenting for transparency and authorisation for @IsakNaslundBh that any compliance failures related SOLELY to the .ci folder are ok to be dispensated if I'm not around to provide it 😄

IsakNaslundBh commented 1 year ago

@BHoMBot check copyright-compliance

bhombot-ci[bot] commented 1 year ago
@IsakNaslundBh to confirm, the following actions are now queued: - check `copyright-compliance` There are 25 requests in the queue ahead of you.
IsakNaslundBh commented 1 year ago

@BHoMBot check compliance @BHoMBot check required

bhombot-ci[bot] commented 1 year ago
@IsakNaslundBh to confirm, the following actions are now queued: - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `branch-compliance` - check `dataset-compliance` - check `copyright-compliance` - check `code-compliance` - check `documentation-compliance` - check `project-compliance` - check `core` - check `null-handling` - check `serialisation` - check `versioning` - check `installer`
bhombot-ci[bot] commented 1 year ago
The check `code-compliance` has already been run previously and recorded as a successful check. This check has not been run again at this time.
bhombot-ci[bot] commented 1 year ago
The check `documentation-compliance` has already been run previously and recorded as a successful check. This check has not been run again at this time.
FraserGreenroyd commented 1 year ago

@BHoMBot check ready-to-merge

bhombot-ci[bot] commented 1 year ago
@FraserGreenroyd to confirm, the following actions are now queued: - check `ready-to-merge` There are 9 requests in the queue ahead of you.
bhombot-ci[bot] commented 1 year ago
FAO: @FraserGreenroyd @IsakNaslundBh is seeking dispensation on this Pull Request to skip a required check. Please can you provide authorisation for the check to be skipped, or provide assistance as appropriate. The check they wish to have dispensation on is project-compliance. If you are providing dispensation on this occasion, please reply with: > @BHoMBot this is a DevOps instruction. I am authorising dispensation to be granted on check ref. `10483867458`
IsakNaslundBh commented 1 year ago

@BHoMBot this is a DevOps instruction. I am authorising dispensation to be granted on check ref. 10483867458

bhombot-ci[bot] commented 1 year ago
@IsakNaslundBh I have now provided a passing check on reference `10483867458` as requested.
IsakNaslundBh commented 1 year ago

Autorising the ProjectCOmpliance on the basis that only the .ci folder is affected, as agreed in comment from @FraserGreenroyd above

IsakNaslundBh commented 1 year ago

@BHoMBot check ready-to-merge

bhombot-ci[bot] commented 1 year ago
@IsakNaslundBh to confirm, the following actions are now queued: - check `ready-to-merge`