Improve overflow error message for map_union_sum

The overflow error in map_union_sum() function isn't same as javaWorker. This delivery updates the error message to more closely match the javaWorker.
Lakehouse PR: https://github.ibm.com/lakehouse/velox/pull/45 (issue)

Lakehouse PR: https://github.ibm.com/lakehouse/velox/pull/45 (issue)

@rrando901 I don't seem to have access to this record. I assume other won't have access either. Consider creating an issue in Velox repo.


⚠ Bofrost.lu has degraded performance

In c2b4420, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1789 ms

Resolved: Bofrost.lu performance has improved in f4498e8 after 33 minutes.


updated the style.css #304

The hover is kept simple with only the shadow when hovered is added.

Awesome!

You are in DWOC right?
Also, please reference the issue

Yes sir I am in DWOC.

reference the issue means should I write the issue which I solved??
If it is the case then :
The issue which I solved was "On hover the style of nav-items is changed".

reference the issue means should I write the issue which I solved??
If it is the case then :
The issue which I solved was "On hover the style of nav-items is changed".

Always  refer issues by typing '#' symbol

I don't remember the issue number as the issue was closed today after I sent the pull request. But I think it was #303

I don't remember the issue number as the issue was closed today after I sent the pull request. But I think it was #303

No worries. Do it from next time 😊

Ok sir. But is it considered as one pull request in view of DWOC?

Ok sir. But is it considered as one pull request in view of DWOC?

Ya.

Thank you


How to add setup time to jobshop - similar problem as issue 945 (not answered)

Hello,
I'm working on a similar problem as below (thread https://github.com/google/or-tools/issues/945) . In this case, there is a setup time in each machine that is dependent on both the current job and the previous one that was done on the machine. And, as lperron commented, there is "a zero setup time between jobs of the same 'family'".
How am I able to accomplish this kind of addition? This was not answered in the linked thread.
I'm working with the Python interface.

Thanks for your quick reply, and thanks for you helping me make this problem become more specific and clear.  You are so skillful on this.
Here is the explaination to the questions:

Setup time depends on the job, or on the job and its predecessor? If it
depends on both, it complicates the problem. If it depends just on the job,
just extend the duration of the job by its setup time.

Setup time depends on the job that about to start and its predecessor.

Cost depends on which jobs are assigned to which machine?

Yes, because a machine has a cost rate per seconds and a job have a running duration(every job has a fixed running duration, but different job have different running duration), the cost of executing one job will be machine cost rate per second * job running duration(seconds) + setup time(depends on the job that about to start and its predecessor)

What is profit? how it is used in the code?

A job has a profit rate per second and running duration, the profit of one job will be profit rate per second * running duration(seconds).  Same with the job running duration, every job has a fixed profit rate, but the different job has a different profit rate.

I still miss the objective part.

The objective part is:

There is a limited machine number(e.g: 100 machines) can be used to schedule at the same time.
There are a lot of jobs waiting to run(e.g: 3000),  finished all of the jobs with those 100 machines above may take years.
The objective is: Try to pick as much as possible jobs from all the jobs and put them to all the machines for one month(30days),  Try to get a 30day's schedule sequence that maximizes the 30day's total profit(30day's total job profit - 30day's total cost).

Originally posted by @maxnilz in https://github.com/google/or-tools/issues/945#issuecomment-443395586

Please have a look at:
https://github.com/google/or-tools/blob/stable/examples/python/jobshop_ft06_distance_sat.py
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
Le mer. 17 avr. 2019 à 14:33, tuosor<EMAIL_ADDRESS>a écrit :

Hello,
I'm working on a similar problem as below (thread #945
https://github.com/google/or-tools/issues/945) . In this case, there is
a setup time in each machine that is dependent on both the current job and
the previous one that was done on the machine. And, as lperron commented,
there is "a zero setup time between jobs of the same 'family'".
How am I able to accomplish this kind of addition? This was not answered
in the linked thread.
I'm working with the Python interface.
Thanks for your quick reply, and thanks for you helping me make this
problem become more specific and clear. You are so skillful on this.
Here is the explaination to the questions:

Setup time depends on the job, or on the job and its predecessor?
If it
depends on both, it complicates the problem. If it depends just on the
job,
just extend the duration of the job by its setup time.

Setup time depends on the job that about to start and its predecessor.
Cost depends on which jobs are assigned to which machine?
Yes, because a machine has a cost rate per seconds and a job have a
running duration(every job has a fixed running duration, but different job
have different running duration), the cost of executing one job will be machine
cost rate per second * job running duration(seconds) + setup time(depends
on the job that about to start and its predecessor)
What is profit? how it is used in the code?
A job has a profit rate per second and running duration, the profit of
one job will be profit rate per second * running duration(seconds). Same
with the job running duration, every job has a fixed profit rate, but the
different job has a different profit rate.
I still miss the objective part.
The objective part is:

There is a limited machine number(e.g: 100 machines) can be used to
schedule at the same time.
There are a lot of jobs waiting to run(e.g: 3000), finished all of
the jobs with those 100 machines above may take years.
The objective is: Try to pick as much as possible jobs from all the
jobs and put them to all the machines for one month(30days), Try to get a
30day's schedule sequence that maximizes the 30day's total profit(30day's
total job profit - 30day's total cost).

Originally posted by @maxnilz https://github.com/maxnilz in #945
(comment)
https://github.com/google/or-tools/issues/945#issuecomment-443395586
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/1198, or mute the thread
https://github.com/notifications/unsubscribe-auth/AKj17SvtL4xxrX5HMoAhUNIEqOhovz7Tks5vhxSYgaJpZM4c08SX
.

Thanks for the swift response, I will be looking into it thoroughly. Does the approach outlined in the example also work if there are alternatives for tasks as well?

This example implements transitions with alternative
https://github.com/google/or-tools/blob/stable/examples/contrib/scheduling_with_transitions_sat.py
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
Le jeu. 18 avr. 2019 à 07:18, tuosor<EMAIL_ADDRESS>a écrit :

Thanks for the swift response, I will be looking into it thoroughly. Does
the approach outlined in the example also work if there are alternatives
for tasks as well?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/1198#issuecomment-484359489,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACUPL3N6WC63KC6GIZRJB4DPRAADRANCNFSM4HGTYSLQ
.

Thanks a bunch, this worked fine for my problem as well!


Metric name on geocharts

It would be nice to be able to use a similar format than the one used for multiple axes on the geochart option so we could name the metric accordingly.
For example, instead of using:
new Chartkick.GeoChart("chart-1", [["United States",44],["Germany",23],["Brazil",22]]);

we would also be able to use something like:
var data = {"name":"Views", "data":[["United States",44],["Germany",23],["Brazil",22]]};
new Chartkick.GeoChart("chart-1", data);

The tooltips when hovering countries would then show "Views: X" instead of the hardcoded "Value: X"
Just a suggestion. Thanks for the great job on this lib.

Hey @ptdev, you can now use the label option for this.


Make it fast and easy to do multiple replacements

chezmoi uses renameio to ensure that files in the user's home directory are replaced atomically.
renameio.TempDir takes the name of the directory where the file replacement will take place so that it can determine a suitable location for the interim file with which the final destination file will be replaced.
chezmoi calls renameio.TempDir once based on the destination directory, but this implicitly assumes that the user's home directory is on a single filesystem. If the user's home directory spans multiple filesystems then different temporary directories will be needed. If the user's home directory is on a single filesystem then the same temporary directory can be re-used.
The safe path is to call renameio.TempDir for every file replacement, but this is very slow (chezmoi might change thousands of files, there's no need to create thousands of temporary directories when only one is needed).
I think renameio needs a function like:
// MaybeNewTempDir returns either one of existingTempDirs if a member (any of
// the keys) can be used as a temporary directory for replacing dest, or a new
// temporary directory otherwise. It is the caller's responsibility to add the
// return value to future calls to MaybeNewTempDir if needed, i.e.
// MaybeNewTempDir does not modify existingTempDirs.
func MaybeNewTempDir(dest string, existingTempDirs map[string]struct{}) string {
  // ...
}

My first reaction is that this probably doesn’t belong into the renameio package, but of course we can revisit that later.
As for how to solve the problem, I’d suggest to get the list of mounts (/proc/self/mountinfo on Linux, not sure if there is a package which provides this info in a portable way) and call renameio.TempDir once for all mounts underneath your target directories.
What do you think?

A different package to renameio could provide the same functionality of atomic file updates

I actually don’t see how? AFAIK, the only portable way across unices is what renameio implements. Other packages (which I have surveyed in https://github.com/golang/go/issues/22397#issuecomment-380831736) use the same approach.
The implementation you’re suggesting in #15 does not seem to require access to any internals of the renameio package. Hence, I’d prefer it if we could keep it in a separate import path (at least) until we know that it’s useful for a number of people.

I don't think it's necessary to parse the mount table. Another way to do it would be to stat(2) the destination and look at the st_dev field and only use a new temporary directory if the value has not been seen before.

That’s true, but parsing the mount table can be done once at startup, whereas using stat requires one additional system call per file. This might not matter much for the specific use-case you’re interested in, but it does matter for the use-case for which renameio was written (updating https://manpages.debian.org/).

That’s true, but parsing the mount table can be done once at startup, whereas using stat requires one additional system call per file. This might not matter much for the specific use-case you’re interested in, but it does matter for the use-case for which renameio was written (updating manpages.debian.org).

It's only necessary to call stat once per destination directory, not once per file, which is a significant difference. Of course it's up to the code using renameio as to whether it uses the cache or not, so updating manpages.debian.org would be unaffected (unless you wanted it to be)
A problem with parsing the mount table is that you then have to work out the relationship between the destination directory and the mount points. This is a hard problem and simple string prefix matching is definitely insufficient (see the discussion in https://github.com/golang/go/issues/18358).

FWIW, https://github.com/twpayne/chezmoi/pull/208 should fix this in chezmoi.


OSSM-3429: Fix a compiler error

Recently CI saw errors like this:
bazel-out/k8-fastbuild/bin/external/org_llvm_releases_compiler_rt/_virtual_includes/fuzzed_data_provider/fuzzer/FuzzedDataProvider.h:194:38: error: no member named 'numeric_limits' in namespace 'std'
  return ConsumeIntegralInRange(std::numeric_limits<T>::min(),
                                ~~~~~^

Apparently this is due to a incompatibility between the compiler-rt dependency and the clang version we use (14.0).
This is fixed by updating compiler-rt to match clang 14. Actually This commit cherry-picks the relevant changes done in upstream a while ago: https://github.com/envoyproxy/envoy/pull/21135

/retest

I'm still not sure why this became an issue only now and not before.
Another approach for this issue (and future issues) would stick with clang 12 which is the version upstream 1.22 uses. But this is not ideal since the product is built using clang 14. Hence we also use clang 14 in community CI, to catch errors like this before we attempt to perform a product build (i.e. too late).

/test unit

Incorporated in https://github.com/maistra/envoy/pull/234


Read-only form with correct perm

Ref #254
When CONSTANCE_SUPERUSER_ONLY is set to False, there is no way of displaying the values without the change permission.
This PR fixes this issue with the new view_config permission.

Thank you


Add other examples to travis

All examples now compile (both non-tested ones were broken :( ). I can't fully test the neopixel one without hardware but it looks like it should still actually work.

LGTM, just nits over versioning, feel free to file a bug and merge.

@gguuss can you test the neopixel sample once this is merged?

Yes, I'll check soon.


i18n(ko-KR): create link-buttons.mdx

Description

create link-buttons.mdx

When https://github.com/withastro/starlight/pull/2363 is successfully merged, I expect any errors that occur in this PR to be resolved.


Create /logout command.

I think here needed information, what should occure by this command? Deleting all saved data? Or just logout? Or something else..
I think this is a strange command, without login


Support custom cloneable values

With this change, setting value objects responding to #cloneable_value? and returning true will be cloned when settings are cloned or dup’ed, in addition to the existing fixed set of classes (Array, Hash, Set, Config).
This makes it possible to provide “rich” config values that carry their own configuration interface, e.g.
setting :component_dirs, Configuration::ComponentDirs.new

In this case, ComponentDirs could provide its own API for adding component dirs and configuring aspects of their behavior at the same time. Provided it implements its own appropriate #initialize_copy and then returns true to #cloneable_value?, dry-configurable will ensure that this value is cloned along its setting at the appropriate times.
As the example above indicates, this change is in service of dry-system providing a new ”rich” component_dirs setting, providing an API like this:
# Inside a Dry::System::Container subclass
configure do |config|
  config.component_dirs.add("path/to/dir") do |dir|
    dir.auto_register = true
    dir.add_to_load_path = true
    # etc.
  end
end

@solnic Fair points! So you're thinking something like this?
setting :component_dirs, MyCustomThing.new, cloneable: true

@solnic Fair points! So you're thinking something like this?
setting :component_dirs, MyCustomThing.new, cloneable: true

@solnic Fair points! So you're thinking something like this?

setting :component_dirs, MyCustomThing.new, cloneable: true

Pretty much, yes

@solnic Fair points! So you're thinking something like this?

setting :component_dirs, MyCustomThing.new, cloneable: true

Pretty much, yes

@solnic I'll take another pass in that direction :)

@solnic I'll take another pass in that direction :)

Exactly same thoughts came into mind before reading @solnic's comment. Otherwise, we can go as far as setting obj where obj has setting_name, clonable_value? and whatnot.
I'd say a more general approach is
def setting(name, value, clonable: false, clone_with: Undefined)
  if clonable
    clone = Undefined.default(clone_with) { :initialize_copy.to_proc }
  else
    clone = Dry::Core::Constants::IDENTITY
  end
  ...

Not saying it's needed but we can keep it in mind.

Exactly same thoughts came into mind before reading @solnic's comment. Otherwise, we can go as far as setting obj where obj has setting_name, clonable_value? and whatnot.
I'd say a more general approach is
def setting(name, value, clonable: false, clone_with: Undefined)
  if clonable
    clone = Undefined.default(clone_with) { :initialize_copy.to_proc }
  else
    clone = Dry::Core::Constants::IDENTITY
  end
  ...

Not saying it's needed but we can keep it in mind.

Closing in favour of #102.

Closing in favour of #102.

@timriley is it OK to delete the branch?

@timriley is it OK to delete the branch?

Deleted! Thanks for the prompt @solnic :)

Deleted! Thanks for the prompt @solnic :)


media does't work as expected

The stacking of min-width: 400px, min-width: 800px, etc., should behave like it would in CSS. I was expecting all the images to be downloaded at higher viewport dimensions – as all stylesheets would be if using the examples media values – but only the larger one was.

ah, issue #1. :)
Thanks!
I commented on the thread ( http://www.w3.org/community/respimg/2012/02/21/a-sample-picture-implementation/ ). I think there are maybe a couple of ways to interpret this. I'm not sure which model is most intuitive.


Clean Me removed /private/tmp, leading to all kinds of errors, strange behaviours

Thanks for the utility. But while cleaning up, the directory /private/tmp gets removed (on my system, 10.14.6). The /tmp is an alias to that directory, so there is no /tmp dir anymore. This causes a lot of trouble! Maybe recreate it after cleaning up?

Also, it seems like the permission for ~/Library/Caches is wrong after the clean up.

You should use something like rm -rf " + path + "/*" or if you need to delete hidden files as well rm -rf " + path + "/{,.[!.],..?}*"
Deleting the whole directory seems like a bad idea to me. Also what happens if the path variable is empty for some reason?
Otherwise great utility - Thank you!
https://github.com/Kevin-De-Koninck/Clean-Me/blob/f10b701726d90c8359530e6a92ee6e0e6b06d554/Clean Me/CleanMeClass.swift#L70-L72

Yes, I had the same (annoying) issue.
In case you have not found it, there is a fix detailed on this thread at superuser.com.

This sent me on a wild goose chase for quite awhile...


License agreement example not found

The link to Plumbline Consulting’s License Agreement does not work.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2511a190-4fe2-45ba-cfc3-a7d21d42b218
Version Independent ID: e5996aeb-f342-5082-dd6c-589a44a03841
Content: Privacy Policy and Terms of Use - Business Central
Content Source: dev-itpro/developer/readiness/readiness-checklist-i-privacypolicy-termsofuse.md
Service: dynamics365-business-central
GitHub Login: @a-emniel
Microsoft Alias: a-emniel

Thanks for the feedback. It seems like that page has been taken down. We will remove the link from the documentation with the next doc refresh. Thanks


PR: Add bening error when debugpy is not available (IPython console)

Description of Changes

debugpy is an optional dependency of IPykernel, so it is not necessarily installed with it.
Also, fix showing an error message in panes connected to the IPython console when something is printed to the kernel stderr stream after it starts but before the prompt is shown.

Issue(s) Resolved

Fixes #21900.
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: @ccordoba12

@penguinpee, you can apply the patch in commit cdad870658da4912feebb2ab150fed4a4dfd8c54 to fix the error you reported in #21900. The other commit here was done to improve how we show an error message in the panes connected to the IPython console.

Thanks! I applied this PR as a patch and can confirm that it solves #21900. :+1:
PS: s/bening/benign/ - probably too late to fix :wink:


Tomcat 7 Service Fails To Start When Already Started

I ran into a problem trying to install and bring up Tomcat 7 using this cookbook.  During the request to :start and :enable the tomcat7 service, the request fails.  I found the issue below, and removing the :start attribute solved the problem for me.
https://tickets.opscode.com/browse/COOK-1599

@randymay Is this using the tomcat_service custom resource or the older functionality?

This is using the create_service resource.  Here is the link to the line that I changed locally to make it work:
https://github.com/chef-cookbooks/tomcat/blob/master/recipes/default.rb#L78

This should be resolved with the current rewrite that is about to land in #224.  I'm going to close this out in favor of the new functionality since this old code has been deleted.


Add support for UUID as $id

For now, if one database is used uuid, potion-node will incorrectly deserialize ID.

@galuszkak check if this is fixed with https://github.com/biosustain/potion-node/commit/3b20d9c0c66b636cbb179efa6ec4404dbb6f447b.

@rolandjitsu testing now 👍 , will let You know.

Note that the impl. for AngularJS might not work due to some breaking changes. I'm working on providing a backwards compatible fix.

@rolandjitsu  I'm using Angular 2 now.
So I'm stuck right now I've encounter problem with save() method. (update works fine).
{message: "Additional properties are not allowed ('potion' was unexpected)", path: [],…}
path:[]
validationOf:{additionalProperties: false}

@galuszkak I see, I know what the issue is. Soon a fix will be pushed.
NOTE: You have to use Angular 4 as the v1 and above will only be compatible with that. But it might just work with Angular 2 as well (though I doubt it, because instead of OpaqueToken - which is deprecated - I use InjectionToken).

I'm using Angular 4 (sorry forgot that I did upgrade to new release) it's kinda misleading with so often changing versions of angular :).
@rolandjitsu awesome if I can help You somehow just let me know.

No worries, I have the same struggles at times. I've just pushed some changes again. Let me know if it works now.

@rolandjitsu for some reason now I started getting on save/update status_code=409, Conflict. I don't see big change in requests but maybe I'm missing something.

It sounds like you are trying to save a resource that already exists. How are you using .save()?

OK It works now, but I have strange issue right now. Properties from server and locally never match.
Example I have display_name field on my Item. After save it changes to displayName. Is this expected behaviour? It's quite confusing for now.

After playing it a while it make sense for me now. :)

For API argument. It's misleading how save works. Probably (I don't have a data so it's maybe only my mind) most users could assume (like myself ;) ) it should work like an upsert (detect if it's creation/or update) and do appropriate action (POST|PATCH) and for now that isn't a case. I just stumble upon that and wasn't sure why is that.
But besides, this library is AWESOME! Love it 👍  awesome work @rolandjitsu :)

@galuszkak All properties are converted from snake case to camel case (and the other way around when a request is made), it's a convention that the library follows. Perhaps it should have been mentioned in the docs.
As for .save(), it's by design. Perhaps it might be worth looking into an implementation of Item where .save() can act as an update if the resource already exists.
@lyschoening what do you think? Is this something we should support?
Glad you like the lib, but this was a team work.

Closed with https://github.com/biosustain/potion-node/commit/3b20d9c0c66b636cbb179efa6ec4404dbb6f447b.

@rolandjitsu I actually thought it acted as an update if the object has an uri :) The predecessor of this library behaved that way and the Python implementation does too. https://github.com/biosustain/potion-client/blob/master/potion_client/resource.py#L155

@rolandjitsu so based on @lyschoening answer I believe he had the same impression as me that save works as upsert. :)
This  can simplify some codebases a lot with if (id|uri)  and finding out if object is saved on server or not.

@galuszkak Published a new version that adds support for this (https://github.com/biosustain/potion-node/commit/799193062980ecd5954fdae011b180bc891806c0). Try it out and let me know if it works for you.


Test sponsoring extensions

Refs: https://github.com/microsoft/vscode/issues/107482

[x] anyOS: @isidorn
[ ] anyOS @DonJayamanne

Complexity: 3
Create Issue

An extension author can enable sponsoring by providing the sponsor URL in the extension's package.json and VS Code will allow users to sponsor to that extension.

Use latest vsce and publish some sample extension. Make sure you set the sponsor property to an URL from where users can sponsor your extension Eg: https://github.com/sponsors/nvaccess.
Open extensions view in VS Code insiders and browse for above extension you published
Open the extension and make sure sponsor button is shown
Make sure clicking on the sponsor button opens the sponsor link.

Works as expected.


Fix warnings in Package.swift

Describe the bug
There are several warnings due to files in the Sources directories which are not allowed.
Steps To Reproduce
Steps to reproduce the behavior:
1. Open package in Xcode
2. See the warnings on the package

Expected behavior
no warnings
Amplify Framework Version
na
Amplify Categories
Analytics, Geo, Storage
Dependency manager
Swift PM
Swift version
na
CLI version
na
Xcode version
na
Relevant log output
none

Is this a regression?
No
Regression additional context
No response
Device
na
iOS Version
na
Specific to simulators
No response
Additional context
No response

merged to dev-preview


Struct2xas: FDMNES/FEFF input files creation using Pymatgen and template files

@newville @Ameyanagi @mretegan
With this request I propose to add the work done by @beatrizfoschi during her master project for generating FDMNES/FEFF input files using Pymatgen and templates. It is safe to merge, as we have made only additions, not modified the existing code.
For the FEFF part there is some overlap with the existing structure2feff, but we use FEFF not for the path expansion but to generate the xmu.dat.
The examples how this works are provided as a Jupyter notebook.

@maurov  @beatrizfoschi  Awesome - thanks very much.  I'm inclined to merge this.   I'll give others a chance to comment on this, maybe planning to merge by the end of the week unless I hear objections.

@maurov @beatrizfoschi Cool job! I think it is an excellent feature to be added.

@newville @Ameyanagi thanks for your nice feedback!
I have converted this request as draft because @beatrizfoschi and @Certaingemstone have found some urgent bugs that need to be fixed before releasing. I think this could happen by end of August and have a new Larch release then.

@maurov I think it is OK to consider every new feature as "draft" and somewhere between "alpha" and "beta" status.
If you think is ready for others to start using, I think that is OK to merge.

@maurov for FDMNES input, it might be worth copying / refactoring cif2feff, which is generating a cluster of atomic x,y,z coordinates from the pymatgen structure (and includes randomized support for partial occupancy).   It might be that this cluster is exactly what FDMNES wants too.

The MP Legacy API does not work for me, even when I have a valid MP_API_KEY set....
Is it OK to move to the newer REST API?

... but also, I really like the idea of being able to search the MP database -- perhaps we could add that to the XAS_Viewer GUI too (and hardwire in an API key).

@maurov @Ameyanagi @mretegan Sorry for so many comments. I think this is really good, and we should definitely include this.  For me, it raises several questions (below) those these do not need to be solved before merging this PR.
If you think this is ready for "initial release", I think we should merge this soon-ish (this week) and push out a new release.     I think we can definitely say that we're adding support for generating input for FDMNES and this is a first release of that, ready for beta-testing, and maybe others will have good suggestions too.
Here are some thoughts:

there is quite a bit of overlap here for "convert pymatgen Structure to (feff/fdmnes input file)" with code in cif2feff.py,  and amcsd.py.  Some of this code could/should probably be merged and cleaned up.   And maybe we can then push some of that to pymatgen (which has Structure-to-FeffInp too, but I found it inadequate).
I think it would be better to save the fdmnes / feff inputs to a 'fdmnes' or 'feff' folder under larch.site_config.user_larchdir (typically $HOME/.larch) than to put them into a tempfile location.  That will allow the files to be browsed and used later.
should we include binaries for fdmnes with Larch, and make something like "run_fdmnes()"? I would be +1 on this.  I think Yves would not object.
for downloading Structure from MaterialsProject, we should probably use the latest API.
I would be OK with adding both "Generate FDMNES input' and "Search MaterialsProject" for CIFs from the wxlib CIF Browser used in XASViewer, if you thought that would be helpful.  I would contact the MaterialProject folks about whether we can use one API key or expect every user to have their own.

I am not sure whether it is practical to try to address any of these before the next release. Any thoughts?
Thanks!

I think it is good for the initial release.
When working on merging cif2feff.py, structure2feff.py, and struct2xas.py, it would be nice if we could leverage pymatgen ecosystem for reading structures. (e.a. Structure.from_str, Molecule.from_str) This will take care of proper file format handling, and we could make it as general as possible.
However, this might take some time, and I don't think we can make it before the next release.
@newville I agree with 1-5 of your suggestions.

@newville
Thank you very much indeed for all your comments. I have been busy on the beamline lately and I did not have the time to work on this yet. I will reply to your more technical comments later. I mostly agree on them, but I prefer proceeding step by step.
For the next release (0.9.72) I also propose to merge this pull request, but I need to fix a bug first. In fact, we currently use Pymatgen SpaceGroupAnalyzer to get back to a symmetric cell for inputting the atomic coordinations in FDMNES (this approach is justified because we want to generate supercells too). The bug consists in the fact that, for some CIF files, we choose different equivalent positions, not strictly those written in the CIF file. In this case, FDMNES does not like it and fails with an error. The fix is to use the _get_atom_sites directly from the CIF file to cross check that we use exactly the atomic positions present in the CIF files when an unit cell with space group symmetries is used. OK, maybe all this is not very clear, but the message is: as soon as this is fixed (hope by the end of the coming week) I will remove the draft status and let you merge. Is that fine with you?
Once we have 0.9.72 released, we can work adding this new feature (generating FDMNES files) to the GUI, that is merging the redundant code going from a structure file (CIF, XYZ, whatever) to FEFF/FDMNES. Distributing the FDMNES executables in Larch is fine with me in principle, but I think it is better to let the user choose where the FDMNES executables are. This would go for 0.9.73 (or higher).
Only once we have this done, we could decide if it is worth pushing our approach to Pymatgen. Personally, I am reluctant in doing so, because then we will loose the versatility of changing the code rapidly, as Pymatgen is a bigger project. Having a separate code from Pymatgen was even the choice of Lightshow, which is closer to Pymatgen than us. I propose discussing this  in one of the coming developers meetings.

@maurov I am OK with waiting a bit, but I would rather get something out soon rather than wait for it to be perfect. ;)
Perhaps we can aim for Friday (Sept 29) but allow that to slip into the following week.
For coordinating Structural Data -> Input Files, yes, we should discuss, and maybe coordinate with or use/propose changes to the Lightshow efforts.
And we should start having developer Zoom calls!

This all looks good to me. I vote to merge in. Except: the Jupyter example fails for me in setting up and running the Feff calculation. It looks to me like mat_obj.outdir gets overwritten from FDMNES to FEFF calc. I might suggest adding mat_obj.fdmnes_dir = mat_obj.outdir to cell 8 and mat_obj.feff_dir = mat_obj.outdir to cell 10 and then using those to reference those results. Like, the "run feff" cell should use
feff_inp = f"{mat_obj.feff_dir}/feff.inp"
otherwise, feff fails to run for me.

This is fixed in https://github.com/xraypy/xraylarch/pull/458/commits/eea0dfb1349ab8c0beab285a349b184048ee29b4. I was using mat_obj.parent_path instead of mat_obj.outdir. In fact, this last one differentiate feff from fdmnes paths.

I think it would be better to save the fdmnes / feff inputs to a 'fdmnes' or 'feff' folder under larch.site_config.user_larchdir (typically $HOME/.larch) than to put them into a tempfile location.  That will allow the files to be browsed and used later.

Yes, if this is a good option and can be customized later on (for example within the GUI). For the sake of the Jupyter notebook examples, I preferred using temporary paths. Furthermore, if one wants to run a full batch of simulations in the order of thousands or more, it is preferable to use a temporary space on a cluster rather than the user home directory.

@newville I do not have the time now implementing the changes I wanted to. I propose merging like this and release as beta feature.

@maurov OK, merging this.... Great!!

@newville @Ameyanagi  just to let you know, after merging, I made a couple of changes to this:
a) I moved all of the use of tempfile to build folders for feff/fdmnes files to point to feff and fdmnes folder under site_config.user_larchdir (typically $HOME/.larch).   That way the files generated will be more easily found after the fact, and the OS is unlikely to automatically delete them.
b) I also changed to the new mp_api.  This is mostly transferrable, but there is not a "CIF" property returned.  So, I left save_cif_from_mp as is (using older mp_api), and added a new function save_mp_structure which saves a JSON-dump of an MP Structrure.  These will be saved to the mp_structures folder (in site_config.user_larchdir).
I then also added the ability to read these back in, renaming the structure-reading method to read_structure().
aside / data-formatting:  It is sort of interesting that the JSON dump of the MP Structure is basically a complete replacement for CIF.  That is, we read CIF to generate the MP Structure.  But that Structure is sort of what we really want.  And those are readily dumped to / loaded from JSON.

@maurov @Ameyanagi  ... but also, with those changes to both the code and the Jupyter notebook, the notebook runs without any errors for me. ;)


Fix streaming parser

Fixes Cases of Streaming Parsers only reading fist line
Had problem where last CRLF was being included in record, in order to make useable have opted to automatically clean, will switch to a flag next release.

Fixes #84


Remove template params that prevent compilation where copy is necessary

The extra template params on the copy methods aren't used and are unnecessary. Playing around with the library earlier, it actually prevented compilation of some code, where removing it allowed the code to compile. Can't remember the exact code I used, but I don't see why these need to exist here.

Hello,
You're right, template substitution will fail in that case. Thanks for your patch

Hello,
You're right, template substitution will fail in that case. Thanks for your patch


HADOOP-19346. ViewFileSystem.InnerCache: Replaced ReentrantReadWriteLock with ConcurrentHashMap/putIfAbsent()

Description of PR
HADOOP-19346. ViewFileSystem.InnerCache: Replaced ReentrantReadWriteLock with ConcurrentHashMap/putIfAbsent()
How was this patch tested?
mvn package -Pdist -PskipTests
For code changes:

[ ] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
[ ] Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

@ctrezzo: Could you take a look? thanks,

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 18s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+0 :ok:
detsecrets
0m  1s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
31m 53s

trunk passed

+1 :green_heart:
compile
9m  2s

trunk passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
compile
8m  8s

trunk passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
checkstyle
0m 45s

trunk passed

+1 :green_heart:
mvnsite
0m 59s

trunk passed

+1 :green_heart:
javadoc
0m 47s

trunk passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javadoc
0m 35s

trunk passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
spotbugs
1m 32s

trunk passed

+1 :green_heart:
shadedclient
21m  9s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 30s

the patch passed

+1 :green_heart:
compile
8m 39s

the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javac
8m 39s

the patch passed

+1 :green_heart:
compile
8m 15s

the patch passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
javac
8m 15s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

-0 :warning:
checkstyle
0m 35s
/results-checkstyle-hadoop-common-project_hadoop-common.txt
hadoop-common-project/hadoop-common: The patch generated 1 new + 36 unchanged - 0 fixed = 37 total (was 36)

+1 :green_heart:
mvnsite
0m 55s

the patch passed

+1 :green_heart:
javadoc
0m 43s

the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javadoc
0m 36s

the patch passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

-1 :x:
spotbugs
1m 36s
/new-spotbugs-hadoop-common-project_hadoop-common.html
hadoop-common-project/hadoop-common generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)

+1 :green_heart:
shadedclient
20m 58s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

-1 :x:
unit
17m 34s
/patch-unit-hadoop-common-project_hadoop-common.txt
hadoop-common in the patch passed.

+1 :green_heart:
asflicense
0m 41s

The patch does not generate ASF License warnings.

136m 50s

Reason
Tests

SpotBugs
module:hadoop-common-project/hadoop-common

ViewFileSystem$InnerCache$Key is incompatible with expected argument type org.apache.hadoop.fs.FileSystem in org.apache.hadoop.fs.viewfs.ViewFileSystem$InnerCache.get(URI, Configuration)  At ViewFileSystem.java:argument type org.apache.hadoop.fs.FileSystem in org.apache.hadoop.fs.viewfs.ViewFileSystem$InnerCache.get(URI, Configuration)  At ViewFileSystem.java:[line 130]

Return value of putIfAbsent is ignored, but fs is reused in org.apache.hadoop.fs.viewfs.ViewFileSystem$InnerCache.get(URI, Configuration)  At ViewFileSystem.java:ignored, but fs is reused in org.apache.hadoop.fs.viewfs.ViewFileSystem$InnerCache.get(URI, Configuration)  At ViewFileSystem.java:[line 135]

Failed junit tests
hadoop.fs.viewfs.TestViewFileSystemLocalFileSystem

hadoop.fs.viewfs.TestViewFileSystemWithAuthorityLocalFileSystem

hadoop.fs.viewfs.TestViewFileSystemDelegationTokenSupport

Subsystem
Report/Notes

Docker
ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/7187

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux a5004d1939ea 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / ccacc0081fa39642cb4bac2cbaa11f8564142876

Default Java
Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/1/testReport/

Max. process+thread count
3155 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

+1 to @pjfanning's comments. In fact, in principle all you need is just one call to computeIfAbsent() which takes care of thread safety, concurrency, and at-most-once cost for the computation. No need to call contains() or get() in addition.
The original commit is not correct in a concurrent situation FYI.

Can you share some rationale or tabletop concurrent benchmark tests to show the improvements with the new approach from the old? I do think the ConcurrentHashMap is a fine implementation, but I'm curious what led you to look into the ReadWriteLock implementation.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 19s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+0 :ok:
detsecrets
0m  1s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
31m 44s

trunk passed

+1 :green_heart:
compile
8m 58s

trunk passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
compile
8m 11s

trunk passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
checkstyle
0m 42s

trunk passed

+1 :green_heart:
mvnsite
1m  1s

trunk passed

+1 :green_heart:
javadoc
0m 48s

trunk passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javadoc
0m 31s

trunk passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
spotbugs
1m 32s

trunk passed

+1 :green_heart:
shadedclient
22m 17s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 35s

the patch passed

+1 :green_heart:
compile
8m 52s

the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javac
8m 52s

the patch passed

+1 :green_heart:
compile
8m 23s

the patch passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
javac
8m 23s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

-0 :warning:
checkstyle
0m 35s
/results-checkstyle-hadoop-common-project_hadoop-common.txt
hadoop-common-project/hadoop-common: The patch generated 2 new + 36 unchanged - 0 fixed = 38 total (was 36)

+1 :green_heart:
mvnsite
0m 56s

the patch passed

+1 :green_heart:
javadoc
0m 43s

the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javadoc
0m 29s

the patch passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

-1 :x:
spotbugs
1m 33s
/new-spotbugs-hadoop-common-project_hadoop-common.html
hadoop-common-project/hadoop-common generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)

+1 :green_heart:
shadedclient
23m 46s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
16m 57s

hadoop-common in the patch passed.

+1 :green_heart:
asflicense
0m 39s

The patch does not generate ASF License warnings.

140m 22s

Reason
Tests

SpotBugs
module:hadoop-common-project/hadoop-common

ViewFileSystem$InnerCache$Key is incompatible with expected argument type org.apache.hadoop.fs.FileSystem in org.apache.hadoop.fs.viewfs.ViewFileSystem$InnerCache.get(URI, Configuration)  At ViewFileSystem.java:argument type org.apache.hadoop.fs.FileSystem in org.apache.hadoop.fs.viewfs.ViewFileSystem$InnerCache.get(URI, Configuration)  At ViewFileSystem.java:[line 141]

Subsystem
Report/Notes

Docker
ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/7187

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux 7f6f22115ba5 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 3f3f1458ed4fc70024980cf0fd0804df098a188a

Default Java
Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/2/testReport/

Max. process+thread count
1310 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/2/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 20s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
34m 10s

trunk passed

+1 :green_heart:
compile
9m 53s

trunk passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
compile
8m 19s

trunk passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
checkstyle
0m 40s

trunk passed

+1 :green_heart:
mvnsite
0m 54s

trunk passed

+1 :green_heart:
javadoc
0m 43s

trunk passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javadoc
0m 30s

trunk passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
spotbugs
1m 25s

trunk passed

+1 :green_heart:
shadedclient
24m 58s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 32s

the patch passed

+1 :green_heart:
compile
8m 34s

the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javac
8m 34s

the patch passed

+1 :green_heart:
compile
8m 12s

the patch passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
javac
8m 12s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

-0 :warning:
checkstyle
0m 39s
/results-checkstyle-hadoop-common-project_hadoop-common.txt
hadoop-common-project/hadoop-common: The patch generated 2 new + 36 unchanged - 0 fixed = 38 total (was 36)

+1 :green_heart:
mvnsite
0m 58s

the patch passed

+1 :green_heart:
javadoc
0m 44s

the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javadoc
0m 36s

the patch passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
spotbugs
1m 35s

the patch passed

+1 :green_heart:
shadedclient
21m 22s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
17m 38s

hadoop-common in the patch passed.

+1 :green_heart:
asflicense
0m 41s

The patch does not generate ASF License warnings.

144m 31s

Subsystem
Report/Notes

Docker
ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/3/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/7187

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux 29151b5fdcec 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 1e173116998c0d29fbe64f37bdbdf63fb08c8b9a

Default Java
Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/3/testReport/

Max. process+thread count
3154 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/3/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

We are running a hadoop version without a lock protecting the InnerCache.get() and basically rediscovered this bug, after two months' investigation.

Oh so was this due to a correctness bug not performance that led you to this? It wasn't very clear from the JIRA description.

Performance-wise, I think they should be similar? Only one thread will be allowed to create the new FileSystem instance for each missing key in both cases.

ConcurrentHashMap is better because RWL locks globally whenever there is a mutation whereas ConcurrentHashMap can be more granular.

Oh so was this due to a correctness bug not performance that led you to this? It wasn't very clear from the JIRA description.

yes, correctness issue: we are getting stale/incorrect reads from observer nodes (fileLen=0 for non-zero bytes files which has been closed by the same FileSystem object). We finally narrowed it down the RC:  we are using two different dfs clients/ObserverReadProxyProviders, though the key (scheme/authority) to InnerCache.map.get() is the same.
Then, we compared trunk and our internal version. We found in our internal version (based off 2.10.0), we don't have the lock to prevent concurrent updates to InnerCache.map.

Oh so was this due to a correctness bug not performance that led you to this? It wasn't very clear from the JIRA description.

yes, correctness issue: we are getting stale/incorrect reads from observer nodes (fileLen=0 for non-zero bytes files which has been closed by the same FileSystem object). We finally narrowed it down the RC:  we are using two different dfs clients/ObserverReadProxyProviders, though the key (scheme/authority) to InnerCache.map.get() is the same.
Then, we compared trunk and our internal version. We found in our internal version (based off 2.10.0), we don't have the lock to prevent concurrent updates to InnerCache.map.

Oh so was this due to a correctness bug not performance that led you to this? It wasn't very clear from the JIRA description.

yes, correctness issue: we are getting stale/incorrect reads from observer nodes (fileLen=0 for non-zero bytes files which has been closed by the same FileSystem object). We finally narrowed it down the RC:  we are using two different dfs clients/ObserverReadProxyProviders, though the key (scheme/authority) to InnerCache.map.get() is the same.
Then, we compared trunk and our internal version. We found in our internal version (based off 2.10.0), we don't have the lock to prevent concurrent updates to InnerCache.map.

I see. What you're saying is, your internal version has the RWL code removed and you are seeing a correctness issue. You're NOT saying the upstream version has a correctness issue, correct? From my cursory look, I think the existing code is correct in a concurrent setting.
If that's the case, my original comment basically stands. From the community standpoint, it would not be fixing a correctness issue but rather improving implementations and/or performance. While I think the new version is probably a better one, it would be good to see how both versions behave in a pretty high-concurrency situation. It shouldn't be too difficult to test quickly. WDYT?

What you're saying is, your internal version has the RWL code removed and you are seeing a correctness issue. . You're NOT saying the upstream version has a correctness issue, correct?

Correct, our internal version simply did not have that PR, which added the lock. and it has correctness issue. Trunk version is good.
We are not trying to improve the performance here. The concurrentHashMap is a cleaner approach than the old lock based approach. You already mentioned concurrentHashMap provides finer-grain concurrency and should improve performance. So, it is a win-win in both code-readable/maintainability and performance.
tbh, I did not want to spend time benchmarking RWLock vs concurrentHashMap. Both are standard constructs that we are supposed to use. This is client-side code: most of the overhead will be from communicating with NN/DN, vs competing for locks here.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 19s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
31m 59s

trunk passed

+1 :green_heart:
compile
8m 57s

trunk passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
compile
8m  3s

trunk passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
checkstyle
0m 43s

trunk passed

+1 :green_heart:
mvnsite
1m  2s

trunk passed

+1 :green_heart:
javadoc
0m 49s

trunk passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javadoc
0m 35s

trunk passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
spotbugs
1m 32s

trunk passed

+1 :green_heart:
shadedclient
21m 17s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 33s

the patch passed

+1 :green_heart:
compile
8m 37s

the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javac
8m 37s

the patch passed

+1 :green_heart:
compile
8m  9s

the patch passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
javac
8m  9s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 40s

the patch passed

+1 :green_heart:
mvnsite
0m 53s

the patch passed

+1 :green_heart:
javadoc
0m 43s

the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04

+1 :green_heart:
javadoc
0m 36s

the patch passed with JDK Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

+1 :green_heart:
spotbugs
1m 34s

the patch passed

+1 :green_heart:
shadedclient
21m 10s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
17m 43s

hadoop-common in the patch passed.

+1 :green_heart:
asflicense
0m 41s

The patch does not generate ASF License warnings.

137m 20s

Subsystem
Report/Notes

Docker
ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/4/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/7187

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux f7df674b2134 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / bbfa1e121b6c3a1944b3caef468f42f5305c92eb

Default Java
Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-ga~us1-0ubuntu2~20.04-ga

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/4/testReport/

Max. process+thread count
3154 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7187/4/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

+1 from me. Since I haven't committed PRs in a long while, it would take me a long time to get familiar with the steps. @ctrezzo, can you please review and commit if you approve? Thanks.

Added more details to jira ticket.


Video Demo Scripts

In the YouTube series for FAST's tutorials, there are Matlab scripts to accompany the video demos. However, these haven't been pushed to the main branch yet.
This also resolves issue #45.

The Tutorials Package (TutorialsPkg) has been added to the main branch and resolves Issue #45.


Add coverage optimization functionality

Add coverage optimization functionality

:white_check_mark: coverage increased from 0% to 45.23%


FieldArray form field is not an array, which causes infinity

as you can see, the fields are not  correctly registerd.
members is not an array,
so that members[0].imgPublicId is another field,
which causes FieldArray to rerender...
ENV:
TypeScript:
{fields.map((member, index) => {
          return (
            <li key={index}>
              <Field
                name={`${member}.imgPublicId`}
                type='text'
                component='input'
              />
            </li>
          )
        })}

So, what's the issue, actually?

the component goes into infinite rerender circle, keep diapatching @@REGISTER and @@UNREGISTER.....and I thought this to be the reason, seems I was wrong

@jackman29 @gustavohenke  Is any update about this issue? Or that behavior is correct?


[FEATURE] Sign up Page

Detailed description
There is no sign-up page here.
Context

If there is a sign-up page users can simply sign-up.
You can create a similar design of sign-up.

Possible implementation
No response
Additional information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hey there, I would like to take up this issue. As far as I could understand that you wanted a sign-up page just like the sign-in page.

Hey there, I would like to take up this issue. As far as I could understand that you wanted a sign-up page just like the sign-in page.

yes, right

will you first checkout this repo:
github.com/cryptoverseWeb3/git-github-practice

I am already familiar with git :)

I am already familiar with git :)

nice, assigned
i shared that git-github-practice, so you can get more green squares 😄

I would like to take up this issue.


Start clean boot not found

There is a configuration issue where a start_clean.boot file is being searched in the wrong place. This happens in dpi.erl, function start_slave(), where filelib:is_regular(StartClean ++ ".boot") is being called with an argument of start_clean.boot, resulting in false.

Try rebar3 as prod release in host app
_build/prod/rel/APP/bin/APP-X.Y.Z.cmd console

only happens in eunit

This log should be removed
https://github.com/K2InformaticsGmbH/oranif/blob/77a57ad203120ca6b3baecdddebf3e8646440fde/src/dpi.erl#L90


Domain tenant routes not scoped from console

Bug description
When using tenant-aware commands, routes generated are invalid as they are missing the domain component.
As a consequence of this, any generated notifications will also have invalid URLs and links.
A possible cause is that the tenant routes are loaded before identifying a tenant. The following iteration through TenantAwareCommand::getTenants() does not reload the routes and applies the domainless tenants across all tenants.
Steps to reproduce
<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Stancl\Tenancy\Concerns\HasATenantsOption;
use Stancl\Tenancy\Concerns\TenantAwareCommand;

class TestTenantCommand extends Command
{
    use TenantAwareCommand;
    use HasATenantsOption;

    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'test-tenant-command';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Test tenant command';

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle()
    {
		dd(route('insert-tenant-route-here'));

        return 0;
    }
}

Run the command:
`php artisan test-tenant-command`

### Expected behavior

The expected output is:
`https://tenant.central-domain.com`

Instead, the output will be:
`https://central-domain.com`

### Laravel version

10.23.1

### stancl/tenancy version

3.7.2

There seem to be problems posting


OCI Integration with OKE

While there is no direct integration here, idea is to make helidon apps first class citizen on k8s setup e.g.

Helidon build/CLI can generate deployment yaml for k8s.
Document how configmap can be used as config source.

Currently evaluating dekorate from this sites: Github: https://github.com/dekorateio/dekorate, Main Website: https://dekorate.io


Heatmap on image?

Is it possible to draw heatmap on the image (see https://github.com/jacobgil/pytorch-explain-black-box/blob/master/examples/cat.png)?
BTW, do you have the discussion forum where one can ask such questions?

We don't have a specific way to draw a heatmap on an existing image, you would need to render the image with the heatmap first and then display that with image. It would be pretty interesting to support this directly though.
We don't have a discussion forum, though I'm beginning to see that one may be useful.

Heatmaps can be generated using a simple OpenCV function though.


Gunicorn bad config?

Describe The Problem
A clear and concise description of what the bug is.
Gunicorn config doesnt work? Mostlikely a python issue i think.
Expected Error / Traceback
Please provide the error traceback here
| Starting WGDashboard with Gunicorn in the background.    |
Failed to read config file: /root/wgdashboard/src/gunicorn.conf.py
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/gunicorn/app/base.py", line 106, in get_config_from_filename
execfile_(filename, cfg, cfg)
File "/usr/lib/python2.7/site-packages/gunicorn/_compat.py", line 91, in execfile_
return execfile(fname, *args)
File "/root/wgdashboard/src/gunicorn.conf.py", line 9
bind = f"{app_host}:{app_port}"
^
SyntaxError: invalid syntax
| Log files is under log/

To Reproduce
Please provide how you run the dashboard
OS Information:

OS: Oracle linux 8, (ARM)
Python Version: 3.9.

Sample of your .conf file
Please provide a sample of your configuration file that you are having problem with. You can replace your public key and private key to ABCD...
import multiprocessing
import dashboard

app_host, app_port = dashboard.get_host_bind()

worker_class = 'gthread'
workers = multiprocessing.cpu_count() * 2 + 1
threads = 4
bind = f"{app_host}:{app_port}"
daemon = True
pidfile = './gunicorn.pid'

I face the same issue.

@HyptexPvP Hi, in your log-massage i see you using gunicorn for Python 2
File "/usr/lib/python2.7/site-packages/gunicorn/app/base.py", line 106, in get_config_from_filename
execfile_(filename, cfg, cfg)
File "/usr/lib/python2.7/site-packages/gunicorn/compat.py", line 91, in execfile
You should to use Python 3. Plz install gunicorn for example like this command python3 -m pip install gunicorn

Python 3.10 is advised in the documentation.


fix: wifi connect issue fix for Windows

Fix for Wifi connect issue on Windows
Motivation and Context

Current windows connect implementation does not work due to wrong command usage. This PR fixes it.
Also, delete local profile file fail on Windows because of shell options missing in execFile call.
Detail for the fix is explained here: https://stackoverflow.com/a/54515183/8592525

How Has This Been Tested?
Manual testing on Windows 10.
Issue link: https://github.com/friedrith/node-wifi/issues/111
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.


Use Atom's Preferred Line Length if preference is unset

I adjusted the Max Line Length setting within the package from the default to 120 characters.
It seems to be working properly -- I am no longer receiving any linting errors unless I exceed the 120 character limit -- but the vertical line in the UI that is meant to serve as a visual aid to see the max line length cutoff has not been changed from the default to my new setting.
I am running:

Atom 1.2.7
linter 1.11.18
linter-pep8 1.3.2

Is this a bug, or have I perhaps set something up improperly? Thanks!

I'm not sure how the vertical limit setting in Atom plays with the max line length warning in the linter. Assigning to @Arcanemagus as he understands Atom internals better. There might be a way to tie the two together, but I suspect Atom's internal setting is global across all files, vs this linter is python specific. I really don't know though...

Atom's setting is global, and currently has no relation to the setting in this package. @andrewtran1995 you can change this in Settings -> Editor -> Preferred Line Length, which will change the position of the "vertical line" you see 😉.
An idea that could be done is using the Preferred Line Length from Atom if the setting for this package is the default value, I'm updating the title to reflect that and changing this to an enhancement request open for somebody to work on if they feel like.

Cool, thanks for getting back to me on this! Sorry for the delayed response, aha.

Marking this as wontfix, no other linter provider behaves in this manner, and ideally you should be setting this at the project level in a configuration file so that anyone working on that code gets the same setup as you are using.


[BUG] Question Answering Project Rest API are malfunctioning

Library name and version
Cognitive Services- API version: 2021-10-01
Describe the bug
Question Answering Projects - Update Qnas Rest API.
Issue faced

Replace feature -- When replace query is executed without answer parameter, We found that the Particular QnA pair itself is getting deleted from the data.
Example Query: [
{
"op": "replace",
"value": {
"id": 16,
"source": "Editorial",
"questions": [
"question 3.1",
"question 3.2"
],
"dialog": {
"isContextOnly": false
}
}
}
]

Update Feature Request - There is no option to update questions, Meta data, Prompts  w.r.t  QnA pair ID, Is there any chance we will be getting this in future.

Expected behavior
It is expected to update the question or at least replace the questions when the QnA ID is provided.
Actual behavior
Complete QnA pair itself is getting deleted when replace feature is executed with only QnA pair id and the questions to be replaced.
Reproduction Steps

Rest API URL

Replace Feature Body -- [
{
"op": "replace",
"value": {
"id": 16,
"source": "Editorial",
"questions": [
"question 3.1",
"question 3.2"
],
"dialog": {
"isContextOnly": false
}
}
}
]

Did not find update feature in Custom question answering Project(CQA) like we have it for QnA maker --- Here we are able to update respective parameters(questions, prompts, metadata.)

Environment

Visual Studio 19
Dot Net
Language Studio Portal

@nisarkhan916 We are looking into it and get back to you for any additional information.

Hey @SaurabhSharma-MSFT , is there any update on the feature ?


Make sure the preferred language state is saved between packages and when reopening the browser

The following scenarios should work:

Press a language --> move to another package (see the same the documentation in the same language).

Press a language, close the browser, open it again see the page in the language you chose

This behavior already exists


NLP

自然语言处理部分

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Populate Application DB instead of the Test DB

❗ This could create breaking changes in the -plus repos that would need to be handled before they are upgraded to use this
Closes #1175
Code Changes
Mostly ctl-side changes:
Environment Variables

Don't set FIDES__TEST_MODE in the docker-compose.yml - this should be set by pytest only. So this is only True when running pytest.
Update incorrect variable name TESTING to  FIDES__TEST_MODE in pyproject.toml to set test mode to true for pytest only.  TESTING was the old variable we used in ops.
Update base credentials > app_postgres to be a connection string pointing to the fides db instead of the fides_test db in the .fides/fides.toml.  Running fides scan dataset db --credentials-id app_postgres locally should scan the application db not the test db.

Sessions

Dependency injection: Inject an async session as a dependency into the ctl crud, datamap, view, and generate routes.  Pass that session onto the crud methods.  (Ops already injects a session into its routes. ) The admin route doesn't seem to need a session because it is using database_uri's that have test_mode awareness. The health endpoint is already injecting the sync session from ops.  The validate routes don't seem to need a session either.

Create an async_db generator for API endpoint dependency injection.

Update the ctl database crud methods to take in an async_session as a variable (api/ctl/database/crud.py), which is test_mode aware
Update ctl route utils to take in an async_session parameter (api/ctl/routes/util.py) that is test mode aware

Test refactors

Add an async_session to the ctl conftest for use in testing methods that need an async_session
Remove unused user fixtures from the ctl conftest
Monkeypatch several methods in the requests library to use the TestClient (which calls functions directly instead of sending a request to a running webserver). This is primarily for the methods in src/fides/ctl/core/api.py.  Now all the CLI-related tests and all methods calling api.get or api.post etc. should be usingthe TestClient instead of the requests library.

Ops changes
Ops was already using a TestClient to test its endpoints, which does not ping a running webserver.

Update ops test  setup_db to reset the test db, not the application db (by using the test client).

Misc

Fix existing logging tests to remove need for unnecessary toggle_testing_envvar fixture
Have logging_sessions log debug logs on dev mode, not test mode (test mode is false now, when running application locally). Running the application had been resulting in fewer logs now that test mode was false.
Have load_default_organization and load_default_taxonomy take in an async_session (ctl-side)

Steps to Confirm

[x] Run nox -s dev -- postgres to bring up the webserver
[x] Connect to the fides application db psql -h localhost -p 5432 -U postgres -d fides locally and verify that this application db is up and populated
[x] Run a privacy request against the postgres db and verify the supporting resources are all created in the application db
[x] Try to connect to the test db and observe it doesn't exist yet psql -h localhost -p 5432 -U postgres -d fides_test
[x] Now bring up the shell nox -s dev -- postgres shell
[x] Run some tests in pytest pytest tests/ctl/database/test_crud.py, put a breakpoint in the test after resources are created
[x] Connect to the test db ``psql -h localhost -p 5432 -U postgres -d fides_test`.  Observe the test db was created, and the resources exist in the test db
[x] Query the application db - observe that it is not wiped, and previously created resources still exist
[x] Run fides get data_category user - observe successful return from application db

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
Documentation Updated:

[ ] documentation complete, or draft/outline provided (tag docs-team to complete/review on this branch)
[ ] documentation issue created (tag docs-team to complete issue separately)

[ ] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[x] Update CHANGELOG.md

Description Of Changes
Fides is currently writing to the test db both when running the application and when we're running pytest.  This is difficult for local development - when you run tests in pytest, the test db is wiped and populated with fixture data.  It would be useful to populate the application db when running the application locally and run the test db when running pytest.
Note that before the merge of fidesctl and fidesops, fidesops already had this division, writing to the application db or the test db depending on the context .  Fidesctl differed in that it spun up a webserver and the tests made requests against that running webserver. Fidesops used test clients.  This refactor primarily injects sessions into ctl-routes, and then uses test clients that have awareness of test mode to talk to the test db during testing.  However, for the CLI tests that are talking to a running webserver, we're monkeypatching the requests library to use the TestClient instead.
Note
I want to make sure we're not being too aggressive with the monkey patching - ops uses the requests library to make connector requests in many places. I am only monkeypatching the requests library ctl side.

@pattisdr amazing work here, seriously!
It's looking like this is ready for a final review?

hello @ThomasLaPiana yes this is ready for review, I wanted to get your take on this, since most of the changes are ctl-related!

Thanks so much for your review @ThomasLaPiana, we'll wait to merge this until fidesplus 2.0 is out

Latest commit https://github.com/ethyca/fides/pull/1731/commits/f5ddef8db8aae5e2d20e50b01adfcc2c9c222fa6 needed to get up to date with recent changes in https://github.com/ethyca/fides/pull/1860 and https://github.com/ethyca/fides/pull/1861.  These tests were failing because they were talking to the application db instead of the test db. We're now populating the test db for tests.

^ I still have one test hanging for the FidesConnector work: tests/ops/service/connectors/test_fides_connector.py::TestFidesConnectorIntegration::test_retrieve_data
The FidesConnector/FidesClient use their own requests.Sessions and httpx.AsyncClient()s to make requests which make requests against the running webserver.  I'm trying to monkeypatch similar to what we did on the -ctl side to use various TestClients instead.  This test is currently creating/queueing a privacy request but the celery task is staying in pending and the privacy request status is not getting updated.

^ I still have one test hanging for the FidesConnector work: tests/ops/service/connectors/test_fides_connector.py::TestFidesConnectorIntegration::test_retrieve_data after merging in main
The FidesConnector/FidesClient use their own requests.Sessions and httpx.AsyncClient()s to make requests which make requests against the running webserver. I'm trying to monkeypatch similar to what we did on the -ctl side to use TestClients instead. This test is currently creating/queueing a privacy request but the privacy request status is not getting updated.
EDIT Going back into draft mode

Sounds good, lmk if I can help!

OK I think we're ready to go again!

@ThomasLaPiana this PR has sat for awhile, as I deprioritized to work on unified-fides-resources, but with this last commit https://github.com/ethyca/fides/pull/1731/commits/834aae16bc214b89ac76e2a0f5f656ca5d24307d, I think it's good to go.

@pattisdr you're a hero, thank you! I've been anxiously awaiting! I'll re-review/retest 🙂

hooray!  I think this functionality https://github.com/ethyca/fides/commit/0882943768fcdfc7890bd7aa607327e25380acd8 that Adam merged while this was sitting might have helped tests pass too. Previously in trying to monkeypatch async clients in the fides connector test I had been running into errors with multiple event loops.

Appreciate the re-review @ThomasLaPiana!


feature: Add a docker tag for the latest stable release

Currently the latest tag on docker hub points to the latest commit on master. This can result in broken prowler executions if one is using this tag. Could you either change the latest tag to point to the latest release or add a new tag e.g. "stable" that points to the latest release?

Thank you. A stable tag pointing to the latest released version would help us


window:dalay() show be converted to a stream function

Description:
$subject as the functionality is not of a window

Let's not do this change, as there are requirements to query the events that are in the dealy, which cannot be achieved via stream function.


get specified tasks from version

The command "sonar-scanner -Dsonar.projectVersion=${GOOPS_SEMVER}" exited with 127.

$ sonar-scanner -Dsonar.projectVersion=${GOOPS_SEMVER}
sonar-scanner: command not found
The command "sonar-scanner -Dsonar.projectVersion=${GOOPS_SEMVER}" exited with 127.


Positional parameters

It should be possible to specify a parameter as positional.
[Parameter("name", Position = 0)]
This should result in the first (element 0) argument in the args array (after the verb and operation if applicable) being passed to the first parameter.

This is done.


Increase failover timeout

Current setting will easily kill the whole arangodb cluster (slave going down etc.).

LGTM


How do we create a 3d cylinder using this library ?

I tried passing the points as shown in the triangle example. But not able to draw a cylinder. Can you please help

To better assist you, could you provide more details about the specific visualization you're trying to create with the cylinder? Understanding your intended outcome, such as the size, orientation, and arrangement of the cylinders, will help in offering more precise guidance. Feel free to share any relevant code snippets or a description of the visualization you have in mind, and I'll do my best to assist you.

Here is an example:
https://codepen.io/Niekes/pen/eYadJVg