Implement flagd provider

We need to build a gRPC flagd provider. This entails:

Pulling the proto definitions as a submodule
building the c# bindings, likely using https://github.com/grpc/grpc-dotnet
implementing the provider interface using the bindings above
adding tests
adding doc

See: https://github.com/open-feature/java-sdk-contrib/tree/main/providers/flagd

@toddbaert do you mind if I pick this one up?

Not at all!

The JS impl may also interest you. Feel free to ask myself @james-milligan for help.

@toddbaert sorry been pretty busy with work lately. I've done a basic implementation of flagd, still need to write tests, and add XML docs. You're welcome to contribute otherwise ill keep plugging away in my spare time.

Hey, there is a flagd provider in nuget on version 0.1.0 which links back to this repository.  Would it be the branch for this issue?
It looks as thought the build is failing due to linting rules ?
Are there any missing commits, otherwise I may be able to find some time to plod away at it.

Hey @jonoabroad, the flagd provider in nuget is basically a stub. It was intended to test the deployment process of the monorepo. @benjiro started the initial implementation in this PR but you're welcome to contribute.

Thanks to @bacherfl, we now have a flagd provider. I'm going to close this we have the following tickets to advance the implementation further.
https://github.com/open-feature/dotnet-sdk-contrib/issues/35
https://github.com/open-feature/dotnet-sdk-contrib/issues/36

@jonoabroad The flagd implementation is complete, FYI: https://github.com/open-feature/dotnet-sdk-contrib/tree/main/src/OpenFeature.Contrib.Providers.Flagd


Updates to proposed Api (#9389)

Fixes #9590

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/release-2022.03.100@fc0ea7b). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Current head 92d1ed4 differs from pull request most recent head 76e9d41. Consider uploading reports for the commit 76e9d41 to get more accurate results

@@                      Coverage Diff                      @@
##             release/release-2022.03.100   #9592   +/-   ##
=============================================================
  Coverage                               ?     73%
=============================================================
  Files                                  ?     228
  Lines                                  ?   10484
  Branches                               ?    1536
=============================================================
  Hits                                   ?    7706
  Misses                                 ?    2151
  Partials                               ?     627


using is not suggested as a keyword

function foo() {
    usin/*1*/
}

async function bar() {
    await usin/*1*/
}

Request completions at /*1*/ and /*2*/. TypeScript should provide a completion for the using keyword.

Thank you @a-tarasyuk!


Animation doesnt work for csv files.

The tick mark animation works for image files. But does not work for other file types like csv.

yes, it would be great if you can do the same with csv files


README: advertise mavenCentral() instead of bintray

Close issue #80
Bintray is dead and the artifact is already hosted on mavenCentral

Hi! Thanks for updating README, I should've done that long ago. I'll update version badge as well.


Fix load test

See https://github.com/factorysh/density/commit/bdf5682890442e7b627a671fa79d7aee92988994

Fixed !


feat: perf collector delta calculation handling

nice job, especially on the new tests. I made some minor refactoring changes in #1575 take a look and see what you think


Long DownloadHandler failed with io.undertow

ShinyProxy cannot download a large file (a couple of R data.frame ending up into an Excel file) using DownloadHandler - the file takes a while to get generated and the download failed (NA error downloaded in Chrome)

The file is successfully downloaded locally, but also using ShinyServer). I believe this is related to ShinyProxy and maybe some sort of timeout get triggered as it looks it always fails after 80-90 seconds process. For all the smaller files, Download work fine in ShinyProxy. When the download fails, the ShinyProxy logs are:
2019-02-08 16:29:56.033 ERROR 10 --- [   XNIO-2 I/O-3] io.undertow.proxy                        : UT005028: Proxy request to /endpoint/7f32fcb8-0507-4783-92e3-424d1d386f52/session/c2865a7160405e4ec215651ca7b0014e/download/downloadDataQA failed

java.nio.channels.ClosedChannelException: null
        at io.undertow.client.http.HttpClientConnection$5.handleEvent(HttpClientConnection.java:188) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]

Do you guys know about this issue ?
Thank you, Dylan

we fixed it internally changing with a greater timeout configuration.


Log the first few lines of response for 422 errors

Not all of our apps actually show the content of 422 responses, which can make it difficult to understand what's going wrong, so when we log a request in logstasher, let's include the first 15 lines of the response when

The response code is 422
The response format is JSON

I was not able to have logstash log the 422 error within the ActionController subtype of logstash logstash logs that we write for every request. We're using ActiveSupport::Notifications.subscribe for those logs and I couldn't see how to get the response body there. So I added an ApplicationController around filter and that'll write an additional log of subtype Unprocessable that contains the 422 error response. That's working in production now and you can search logstash Kibana for subtype:"Unprocessable"


Faster and better ball placement

In the tournament ball placement by good teams is done by passing the ball around and dribbling fast.
There is a time limit to ball placement so maybe we can improve this more, this also gives us more passes in the tournament

This is probably a good starting point for making skills that can pass and receive, as there is mostly no need to worry about opponents during ballplacement.


Profile should let you view command plots for previous runs

only run 0 is guaranteed to be complete, but would be useful to see the last few runs with a warning.

Maybe what you want is a historical number of runs, so you can pick the last 5 runs and string them together in a continuous line. Useful for things like staunch mode.

As an implementation, it could have a default query of run(0) which came up as a placeholder, and then people could write run() < 5 to see more.

I guess graphs should also have a default argument, otherwise they become too confusing. And I guess really the default plot script is name(command()) || true or something? Be more explicit about defaults throughout?

Now works.


numpy has no attribute 'norm'

Trying to work through the BioSignals processing in Python tutorial, but didn't make it far because I hit the above error when trying to run:
bio = nk.bio_process(ecg=df["ECG"], rsp=df["RSP"], eda=df["EDA"])
The full Traceback from the IPython console is:
Traceback (most recent call last):
  File "<ipython-input-280-be922da6b29f>", line 1, in <module>
    bio = nk.bio_process(ecg=df["ECG"], rsp=df["RSP"], eda=df["EDA"])
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/neurokit/bio/bio_meta.py", line 112, in bio_process
    ecg = ecg_process(ecg=ecg, rsp=rsp, sampling_rate=sampling_rate, resampling_method=resampling_method, quality_model=ecg_quality_model, hrv_segment_length=hrv_segment_length, age=age, sex=sex, position=position)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/neurokit/bio/bio_ecg.py", line 208, in ecg_process
    processed_ecg["ECG"]["HRV"] = ecg_hrv(rri, sampling_rate, segment_length=hrv_segment_length)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/neurokit/bio/bio_ecg.py", line 665, in ecg_hrv
    hrv["Entropy_Multiscale"] = entropy_multiscale(rri, emb_dim=2)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/neurokit/signal/complexity.py", line 408, in entropy_multiscale
    se = nolds.sampen(temp_ts, 1, tolerance, dist="euler", debug_plot=False, plot_file=None)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/nolds/measures.py", line 653, in sampen
    dsts = np.norm(diff, axis=1)
AttributeError: module 'numpy' has no attribute 'norm'

@stjep, sorry for the delay of my answer, I was away 😄
This error is, indeed a bit weird, and seems related to the nolds package. Have you try reinstalling the nolds package directly from its github repo?
pip uninstall nolds
pip install https://github.com/CSchoel/nolds/zipball/master/
If it still don't work, I'll have a deeper look within nolds code 😉

@stjep yesterday the creator of nolds pushed the last version on pypi. So now you can just directly uninstall and reinstall nolds from pypi and it should work. Let me know if it's the case so I can close this issue.

I upgraded the nolds package and that has indeed fixed this particular. Running that same command gets me a new bug, for which I've created a new issue (I thought it'd be neater, and in case anyone else runs into the same issue).


[upgrading 0.3 to 0.6]: repository traffic on port 80 is not allowed

Cannot enable epirepo or update apt cache.
2020-04-29T10:59:06.7669042Z 10:59:06 INFO cli.engine.ansible.AnsibleCommand - TASK [repository : Add and enable epirepo] *************************************
2020-04-29T10:59:08.3314760Z 10:59:08 INFO cli.engine.ansible.AnsibleCommand - changed: [ec2-15-236-142-251.eu-west-3.compute.amazonaws.com]
2020-04-29T10:59:08.4279453Z 10:59:08 INFO cli.engine.ansible.AnsibleCommand - changed: [ec2-35-180-201-138.eu-west-3.compute.amazonaws.com]
2020-04-29T10:59:08.4743366Z 10:59:08 INFO cli.engine.ansible.AnsibleCommand - changed: [ec2-35-181-52-206.eu-west-3.compute.amazonaws.com]
2020-04-29T10:59:37.3776730Z 10:59:37 INFO cli.engine.ansible.AnsibleCommand - fatal: [ec2-35-180-13-13.eu-west-3.compute.amazonaws.com]: FAILED! => {"changed": true, "cmd": "set -o pipefail && /tmp/epi-repository-setup-scripts/add-epirepo-client.sh http://ec2-35-181-52-206.eu-west-3.compute.amazonaws.com/epirepo |& tee /tmp/epi-repository-setup-scripts/add-epirepo-client.log", "delta": "0:00:30.013905", "end": "2020-04-29 10:59:37.306943", "msg": "non-zero return code", "rc": 2, "start": "2020-04-29 10:59:07.293038", "stderr": "", "stderr_lines": [], "stdout": "Command failed: curl --head --location --connect-timeout 30 --silent --show-error http://ec2-35-181-52-206.eu-west-3.compute.amazonaws.com/epirepo\nOutput was: curl: (28) Connection timed out after 30001 milliseconds", "stdout_lines": ["Command failed: curl --head --location --connect-timeout 30 --silent --show-error http://ec2-35-181-52-206.eu-west-3.compute.amazonaws.com/epirepo", "Output was: curl: (28) Connection timed out after 30001 milliseconds"]}

2020-04-29T10:55:47.6816416Z 10:55:47 INFO cli.engine.ansible.AnsibleCommand - TASK [common : Install selinux packages as prerequisite for SELinux module] ****
2020-04-29T10:55:48.9411474Z 10:55:48 INFO cli.engine.ansible.AnsibleCommand - ok: [ec2-34-243-22-226.eu-west-1.compute.amazonaws.com]
2020-04-29T10:55:48.9436497Z 10:55:48 INFO cli.engine.ansible.AnsibleCommand - ok: [ec2-3-248-232-235.eu-west-1.compute.amazonaws.com]
2020-04-29T10:55:48.9557292Z 10:55:48 INFO cli.engine.ansible.AnsibleCommand - ok: [ec2-34-246-199-52.eu-west-1.compute.amazonaws.com]
2020-04-29T10:57:19.5581161Z 10:57:19 INFO cli.engine.ansible.AnsibleCommand - fatal: [ec2-34-253-216-0.eu-west-1.compute.amazonaws.com]: FAILED! => {"changed": false, "msg": "Failed to update apt cache: "}
2020-04-29T10:57:19.6193788Z 10:57:19 INFO cli.engine.ansible.AnsibleCommand - fatal: [ec2-52-214-171-209.eu-west-1.compute.amazonaws.com]: FAILED! => {"changed": false, "msg": "Failed to update apt cache: "}

Closing without resolution since we no longer support 0.6.x versions.


Automated cherry pick of #9950: feat(monitor): Lists the records that are currently alarting

Cherry pick of #9950 on release/3.7.
#9950: feat(monitor): Lists the records that are currently alarting

Codecov Report

Merging #9951 (014f8e8) into release/3.7 (0ff3997) will increase coverage by 2.07%.
The diff coverage is 0.00%.

@@               Coverage Diff               @@
##           release/3.7   #9951       +/-   ##
===============================================
+ Coverage         5.98%   8.05%    +2.07%
===============================================
  Files              848     107      -741
  Lines           131795   12991   -118804
===============================================
- Hits              7887    1047     -6840
+ Misses          123206   11824   -111382
+ Partials           702     120      -582

Flag
Coverage Δ

aFlag
8.05% <0.00%> (+2.07%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/apigateway/handler/auth.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/auth_totp.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/idp.go
1.84% <0.00%> (ø)

pkg/apigateway/handler/misc.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/resource.go
0.00% <0.00%> (ø)

pkg/hostman/diskutils/nbd/driver.go
0.74% <0.00%> (-0.01%)
:arrow_down:

pkg/hostman/diskutils/nbd/lvmutils.go
4.70% <0.00%> (-0.24%)
:arrow_down:

pkg/monitor/alerting/eval_context.go
34.25% <0.00%> (-2.75%)
:arrow_down:

pkg/compute/models/elasticcache_backups.go

...kg/multicloud/huawei/client/responses/responses.go

... and 691 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8615a71...014f8e8. Read the comment docs.

Codecov Report

Merging #9951 (014f8e8) into release/3.7 (0ff3997) will increase coverage by 2.07%.
The diff coverage is 0.00%.

@@               Coverage Diff               @@
##           release/3.7   #9951       +/-   ##
===============================================
+ Coverage         5.98%   8.05%    +2.07%
===============================================
  Files              848     107      -741
  Lines           131795   12991   -118804
===============================================
- Hits              7887    1047     -6840
+ Misses          123206   11824   -111382
+ Partials           702     120      -582

Flag
Coverage Δ

aFlag
8.05% <0.00%> (+2.07%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/apigateway/handler/auth.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/auth_totp.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/idp.go
1.84% <0.00%> (ø)

pkg/apigateway/handler/misc.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/resource.go
0.00% <0.00%> (ø)

pkg/hostman/diskutils/nbd/driver.go
0.74% <0.00%> (-0.01%)
:arrow_down:

pkg/hostman/diskutils/nbd/lvmutils.go
4.70% <0.00%> (-0.24%)
:arrow_down:

pkg/monitor/alerting/eval_context.go
34.25% <0.00%> (-2.75%)
:arrow_down:

pkg/compute/models/elasticcache_backups.go

...kg/multicloud/huawei/client/responses/responses.go

... and 691 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8615a71...014f8e8. Read the comment docs.


fix(filter): add block-device-tag filter during manual claiming

Signed-off-by: Akhil Mohan<EMAIL_ADDRESS>

block-device-tag will not be checked if the BlockDevice is claimed manually.

Re-opening as it came up with https://github.com/openebs/node-disk-manager/pull/430

Codecov Report

Merging #404 into master will decrease coverage by 0.02%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #404      +/-   ##
==========================================
- Coverage   40.53%   40.51%   -0.03%
==========================================
  Files          71       71
  Lines        3488     3490       +2
==========================================
  Hits         1414     1414
- Misses       1966     1968       +2
  Partials      108      108

Impacted Files
Coverage Δ

pkg/select/blockdevice/select.go
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f514dfc...49cf432. Read the comment docs.

@akhilerm -- can you update with change log please.

Done @kmova

The changes in this PR look good. This change will help with avoiding cases where  BD reserved to be used by Local PV is not claimed by SPC. However, merging this might break some high-level automation scripts around cStor pool creation.
cStor Pool creation (SPC and CSPC) is adding a new feature to take as input "allowed-block-device-tags", so the BDs should be configed to the white-listed BD tags for a given SPC or CSPC.
This PR will be merge once the above changes are implemented. ( cc: @sonasingh46 )

The changes required are merged in the PR 172,  69 and 1748


Why no global option?

https://github.com/mjlbach/defaults.nvim/blob/d01e28fabc09c24b57a2312fa1ee1cf5f6b4b7e4/init.lua#L44

New windows dont' have numbers in them

I ended up opening an issue: https://github.com/neovim/neovim/issues/14595

I ended up asking it in neovim: https://github.com/neovim/neovim/issues/14595


Coming Up Roses: A block is wrong if choosing "START FRESH"

Describe the bug
Coming Up Roses: A block is wrong if choosing "START FRESH"
Steps to reproduce the behavior
1.Navigate to https://arcade.makecode.com/--skillmap#star
2.Coming Up Roses---->START----->START FRESH
3.Observe the block "on [A] button [pressed]"
Expect behavior
It should be:

Actual behavior
A block is wrong if choosing "START FRESH". The image of audience should be clap2 not clap1 in the block "on [A] button [pressed]".

Additional context
1.OS: Windows(rs6)
2.arcade version: 1.8.6
3.Microsoft MakeCode version: 7.4.14

Thanks!  Fixed in next PR.


Instructions for assignment 7-1 are incorrect

According to the cengage online text, the instructions for 7-1 should be:
Modify the CharacterInfo class shown in [Figure 7-3](javascript://) so that the tested character is retrieved from user input. Save the file as InputCharacterInfo.java.
This is what they currently say:  Task #01: Task 1: The DebugSeven1 class compiles without error.
They are incorrect when using the Cengage/Github extension for assignments for AP Computer Science.
Version: 1.85.1
Commit: 0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Embedder: codespaces

/question
This is issue tracker for VS Code editor itself. If there are issues with some online courses they should be reported in appropriate feedback channel of thise courses.

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


JAR constructor filter is not being respected for certain classes

I am seeing an unexpected behavior with the jar filter and how the scanner loads the classes within jar files. Attached is a zip folder with three projects dep-c, dep-w, and scan. The first two projects generate a jar file that I manually copy to the scan project where I am using fast-class-scanner to get the type of a method parameter found in one of the jars. The unexpected behavior is that even when a jar filter is provided to the scanner (e.g jar:dep-w.jar), the wrong class is loaded by the MethodAnnotationMatchProcessor. This only seems to happen when both classes have the same name and are under the same namespace.
To replicate the behavior run the test testJarFilter under the scan project.
Here is the verbose output from FCS: scanner-log.txt
Repro steps projects

Hi @yuniorb,
Thanks for the bug report -- this was by far the most complete and well-specified bug report I have received so far, thanks for the log and the minimal testcase!
You uncovered a really interesting bug. What is going on here is that the MatchProcessor was being called with the correct class name (from dep-w.jar), however dep-c.jar was earlier on the classpath than dep-w.jar, so right before the MatchProcessor was passed the class reference, the ClassLoader handling both dep-c.jar and dep-w.jar ended up loading the -c version of the class, rather than the -w version.
This is pretty tricky to fix correctly. What I did was create a new URLClassLoader for each classpath element (dir or jar). Each of these new URLClassLoaders inherits the parent (JRE) ClassLoader, so they should be able to resolve java.lang.* etc., but they contain only one URL, for a single classpath element. This means that for standalone jars, the patch I just checked in should work fine, but if a class contains references to non-system classes defined outside its own jar, you'll get a LinkageError, since the other jars on the classpath are not visible. (I caught LinkageError, and in this situation, FCS falls back to trying to load the class by calling all ClassLoaders in order.)
The reason this is difficult to fix in the general case (or actually, potentially impossible in the general case) is that not all ClassLoaders are URLClassLoaders -- otherwise I could just include all classpath URLs in a single unified URLClassLoader, and change the order as needed to ensure that each MatchProcessor resolves its own matched class first.
(To summarize -- this is not a complete fix, but to trigger this bug you would have to have multiple classes of the same name on the classpath, and those classes would have to refer to non-JRE classes outside their own jarfile.)
Anyway, the fix I just pushed may be good enough to resolve the problem for your usecase -- please test and let me know.
The only correct fix for this, for your usecase, is to override the classpath to include only dep-w.jar, and not dep-c.jar.

Sorry, closed this accidentally. Please let me know if this is fixed for you.

Thanks for the prompt reply and bug fix. I'll try it out the fix this afternoon at the latest.

Awesome! This fix the issue.

Hi @lukehutch
This fix has some side-effects that might be a little problematic for some use cases. I have a maven project. When this project is packaged it will have two jars project.jar and project-tests.jar. I am  loading both jars into a class loader and adding them to FCS, filtering down to to just the test jar using a scanSpec for the scan.  Any ClassAnnotationMatchProcessor that gets hit will provide for you the class/method that matches. Before the fix you could call matchingClass.getAnnotation(Foo.class); without an issue because it would find it in the classpath, but now because it is scoped to just the jar this would throw the following exception:
java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy exception details
I could probably get around the original issue by using a class loader to only load dep-w.jar, dep-w-tests.jar complete the scan and then create another FCS instance with a different class loader containing dep-c.jar, dep-c.-tests.jar and so on for all the jars.
I don't see a way to get around the fix for the use case I mentioned thouhgt, any ideas?

Hi @yuniorb,
I committed two changes in this issue. The first change had exactly the problem you just described -- I created a new ClassLoader for every jar that contained only the one jar's URL. The second change however created a new ClassLoader for each jar, consisting of all URLs from all jars, but with the URL of the given jar moved to the beginning of the list of URLs for just that ClassLoader. In other words, given URLs file:/path/a.jar, file:/path/b.jar and file:/path/c.jar, three ClassLoaders would be created, but the first would resolve in the order a, b, c; the second would resolve in the order b, a, c; and the third would resolve in the order c, a, b.
So the second change (the current master version) should in fact be able to find the annotation Foo.class in your example. Can you please call the following inside your MatchProcessor to see what URLs are visible? (This is off the top of my head, you may have to tweak it a bit if it's not exactly correct..)
System.out.println(Arrays.toString(
    ((URLClassLoader) matchingClass.getClassLoader()).getURLs()
));

Here is the output
[file:/Users/yuniorb/projects/jars/project-tests.jar, file:/Users/yuniorb/projects/project/target/classes/]
This is how I am loading the jars into FCS:
`  // Add all the jars under the provided path
File folder = new File(args[0]);
for (File sub : folder.listFiles()) {
  if (sub.isFile() && FilenameUtils.getExtension(sub.getName()).equalsIgnoreCase("jar")) {
    urls.add(sub.toURI().toURL());
  }

 URLClassLoader loader = new URLClassLoader(urls.toArray(new URL[urls.size()]));
 // then add loader to FCS
`

When you say "then add loader to FCS", do you mean by calling the following?:
new FastClasspathScanner().overrideClassLoaders(loader).scan();

Also, since the output from the test I requested showed that project-tests.jar is in the classpath, can you please double-check that the annotation you're trying to get is actually in that package?

I updated the example to clarify, but I am not using the overrideClassLoaders I am using the addClassLoader. The annotation is in the the project-tests.jar.

Hmm -- that's really strange that matchingClass's classloader couldn't find the annotation then, since it's just a standard URLClassLoader, and it does in fact have a reference to project-tests.jar internally.
Can you try the following please (in main, not in the MatchProcessor; again, this is untested code, you might have to fix something):
URLClassLoader loader = new URLClassLoader(new URL[] {
    new URL("file:/Users/yuniorb/projects/jars/project-tests.jar",
    new URL("file:/Users/yuniorb/projects/project/target/classes/")
});
Class<?> annotation = Class.forName("pkg.Foo", true, loader);
System.out.println(annotation);

The code above work both in main and in the match processor

OK, can you please take a close look at the URLClassLoader in your MatchProcessor to see if it looks different from the example above? (Maybe take a look at their internal fields in a debugger -- they are initialized in the same way, with those two same  URLs!)

I'll take a look

Thanks. Also please try re-creating the same situation directly, outside of the MatchProcessor:
URLClassLoader loader = new URLClassLoader(new URL[] {
    new URL("file:/Users/yuniorb/projects/jars/project-tests.jar"),
    new URL("file:/Users/yuniorb/projects/project/target/classes/")
});
// Replace "MatchingClass" here with a class matched by the MatchProcessor
Class<?> matchingClass = Class.forName(MatchingClass.class.getName(), true, loader);
System.out.println(matchingClass.getAnnotation(Foo.class));

If that works, please try changing true to false in the code above.
If both of those work, please try again (with both true and false) from inside the MatchProcessor.
If that works, please let me know if the debugger results for the two different URLClassLoaders.
If that doesn't reveal any differences, I would really appreciate it if you could please create the most minimal testcase you can think of that can demonstrate the problem with the latest git master version of FCS.
Thanks for helping me this debugged!

Here is the difference between the loaders

They look basically identical on the surface, although are the packages HashMaps basically the same between the two of them? (I don't know enough about the internal structure of URLClassLoader to suggest anything other than that.)
The only thing I can think of is that boolean parameter I suggested changing from true to false in my previous comment -- that specifies whether or not a class is initialized when loaded. It is set to false when loading a class for a MatchProcessor. However, the initializer is supposed to be called the first time the class is used, so it shouldn't affect linking. Other than that, as far as I know, these two ClassLoaders should be identical. I'm kind of stumped at this point. If going through that previous comment doesn't turn up anything else, I'll try debugging a minimal testcase if you're able to provide one.

The interesting thing is that I have three match processors. Two of them work fine. All the failures only happened with a specific annotation. Once I changed the class loader from the one being provided by the matched class to the original URLClassLoader it all worked fine. Let me try changing the parameter to see if it makes any difference.

Setting the boolean parameter to true or false doesn't make a difference inside the match processor.

Should the urls from both loaders be the same or does the MatchProcessor matched class loader should have less?

The result you get from URLClassLoader#getURLs() should match the classpath that you expect. The example code I gave you just took the output of that function that you gave me earlier, and created a new URLClassLoader from exactly the same URLs. And suddenly it works! That is the bizarre thing about this. I honestly have no idea what could be causing this problem.

Is it possible that that same annotation is defined in multiple places with exactly the same name? What may be happening is that earlier the system classloaders have already located that annotation, and resolved them to a specific classpath element (jar or directory) that is not one of the two that the URLClassLoader knows about. The copy of project-tests.jar that the URLClassLoader knows about contains a second copy of the annotation class, and the project/target/classes/ directory does not contain a copy of it. For some reason, the MatchProcessor's ClassLoader is trying to pull the class from an external URL, which is not in the ClassLoader, and the loading fails.

Hi @yuniorb,
OK, I looked into this extensively, and figured out what is happening here.
The problem is that the JRE system classloaders actually cache classes after loading them. So if your classpath contains a.jar and b.jar in that order, and both jars contain a definition of a class X, then if somehow you end up loading class X before scanning, there is no way to cause the system classloaders to "unload" class X, and even if you create a new URLClassLoader that points to b.jar only, when you try loading X from b.jar, you are passed the cached instance in the parent classloader.
It is possible to dynamically load and reload classes, by creating a custom dynamic classloader that reads the bytes in X.class from b.jar, and then instantiates a class from those bytes. However, if FastClasspathScanner does this, and passes a Class<?> reference to a MatchProcessor, then the MatchProcessors will be dealing with a different class than the main program that invoked FastClasspathScanner. If users of FCS pass class references back and forth between the main program and a MatchProcessor, or if the two different class definitions differ, some very weird and hard-to-trace bugs could result.
Consequently, I made the decision to restrict FCS such that the behavior of what it matches is always consistent with the ClassLoader(s) of its caller. What that means for this example is that including "jar:b.jar" in the scan spec will mean that the class X will not be found, because that class was masked by an earlier definition of a class of the same name, in a.jar, which is not whitelisted.
This may not be the behavior you want, but it is the only way to avoid surprises here. The "fix" for this, in your case, is to set the classpath before starting the JRE so that classes with a given name are defined in only one jar or directory.
Note that even using FastClasspathScanner#overrideClasspath(...) or FastClasspathScanner#overrideClassLoaders(...) suffer from this same issue of class caching, and could lead to unexpected results if you somehow accidentally load the wrong instance of a given multiply-defined class before starting the scan.
FCS now sets up a scan in the following order:

All ClassLoaders are queried for a list of URLs they scan. This produces an ordered list of classpath elements (jarfiles and directories).
The recursive directory listing of files within each classpath element is obtained.
The paths of files within each classpath element are filtered against class and package whitelists and blacklists.
"Classpath masking" is used to hide the second and subsequent references to classfiles or other files in the classpath that have matching paths.
Scan spec criteria for jar whitelisting and blacklisting are applied, as well as "-jar:" and "-dir:", which disables jar and directory scanning altogether.
With any remaining classpath elements, MatchProcessors are called for each matched classfile or filename.

In other words, step 4 is now performed after step 3, whereas before it was the other way around.
Sorry if this is not the clean solution you were looking for, but introducing dynamic classloading would be the only solution, and would create a huge amount of additional complexity and sources of potential bugs for users.

One other note about this -- I detailed how to handle dynamic classloading in the documentation, but these same two solutions also apply to your situation, where you want to control specifically which definitions of a given named class are loaded.

I'm going to have to revert part of this bugfix due to an impact on scanning performance, as described in #117. Classpath masking must be performed after applying jar whitelist/blacklist criteria, not before, otherwise the directory entries for every jar in the classpath must be read (including those of non-whitelisted and blacklisted jars) before classpath masking is applied (which can increase scan time in a non-insignificant way for large classpaths).
What this means is that if you use a whitelist, FastClasspathScanner will give you info about any matching class in the whitelist, but all bets are off as to whether this info will actually match a class loaded by a classloader, since the classloader can end up loading a class from outside the whitelist (e.g. if the whitelisted jar occurs later in the classpath than another jar that defines the same class).
In summary, using jar whitelisting/blacklisting when there are multiple definitions of the same class will have undefined behavior.


Is this OK if I make some changes in the game & publish it to the AppStore?

Hi.
I don't know much about the Copyright thing, so please help me out here!
Is this OK if I make some changes in the game & publish it to the AppStore (for free)?
What should I do about Copyright?

The current license is MIT.
You can make what you to want.

The current license is MIT.
You can make what you do want.

Go for it


BIZ: Campaign for your cause. Restore width of drop down menus.

Looks strange with so much space. Restore to previous length.

Done


some "code --status" paths start with "\?"

testing #39376:
some "code --status" paths start with "\\?" or "\??":

@dbaeumer I don't know how helpful this is. Should we clean this up?

@weinand  In theory a process could come from a UNC drive \server.... So we should only remove this if it os \?\ or ??. We best do that in ps.ts. Then the data coming from the script is somehow original. Feel free to assign to me to do this.


ENH: query attributes through private API to speed up validate.

Proposal fix for #28

Current coverage is 99.36%

Merging #29 into master will decrease coverage by -0.64% as of a095f39

@@            master     #29   diff @@
======================================
  Files            6       6
  Stmts          310     313     +3
  Branches        71      72     +1
  Methods          0       0
======================================
+ Hit            310     311     +1
- Partial          0       1     +1
- Missed           0       1     +1

Review entire Coverage Diff as of a095f39

Powered by Codecov. Updated on successful CI builds.

Thanks!
So since the tests didn’t use to cover the error before (it came thru fields), the coverage sank.
But since the ValueError wasn’t documented before, but OTOH the docs explicitly ask for a decorated instance, I’m tending to not handle  that special case at all.

you may want to use the delay I explained in the other ticket to add yourself to AUTHORS.rst and add the change to the changelog.  Thanks!

I did, though it seems a bit of a steal given the trivial contribution :)

I have a simple “every change is scared” policy. :)  Also not the code alone counts but also the way there.  A good bug report is +Inf times better than a half-assed patch.
That said, you forgot the changelog entry. :D  (docs/changelog.rst)

here we go. Hope you had a good time in Tokyo !

It was…intense. :)
Thanks!

@hynek is there something I can help w/ to make 15.2.0 happen ?

I’m doing some repo janitoring right now and will release afterwards.


Expand page cache duration input from 40px to 80px

This field is currently far too small for even a two digit number.  The 40px width is set inline.

@szsori
This field was expanded in 8.2.


First extract from Sovrin Glossary (let's discuss before merge)

Signed-off-by: Daniel Hardman<EMAIL_ADDRESS>

Approved for merge by WG, 26 Oct 2020


[Timeline] How to override Timeline components?

I would like to override the Timeline, TimelineDot etc components using either createTheme or experimental_extendTheme aka extendTheme.
You can see how it looks and works in this live example: https://codesandbox.io/s/jolly-worker-6zvsq8
Here is a screenshot of how it looks:

Additionally, I suggest adding a feature for TimelineConnector where we can choose different border styles like solid, dotted, dashed, etc.

Because the Timeline is a lab component, make sure to import the theme augmentation types. You can find more information in the TypeScript section of MUI Lab here: MUI Lab TypeScript Guide. Check out this CodeSandbox: https://codesandbox.io/s/loving-cherry-q3zqhd?file=/src/Demo.tsx.


SQL lineage does not handle column lineage for CTEs, wildcard and line comments

Affected moduleIngestion
Describe the bug
The query parser does not correctly handle Common table expressions, Line comments and Wild cards. Those are common things to find in SQL files for DBT so IMO it should handle it well
To Reproduce
Have some models in dbt with the following equivalent query:
        SELECT
            ID,
            -- A comment here
            NAME
        FROM TESTDB.PUBLIC.USERS
        ;

         WITH cte_table AS (
           SELECT
             USERS.ID,
             USERS.NAME
           FROM TESTDB.PUBLIC.USERS
        ),
        cte_table2 AS (
           SELECT
              ID,
              NAME
           FROM cte_table
        )
        SELECT
          ID,
          NAME
        FROM cte_table2
        ;

SELECT * FROM TESTDB.PUBLIC.USERS

Expected behavior
We should obtain a correct column lineage, from source to target
Version:

OS: Ubuntu
Python version: 3.10
OpenMetadata version: 0.13.1
OpenMetadata Ingestion package version: 0.13.1

Additional context
I'll open a PR with the changes I have done

While this issue was addressed in https://github.com/open-metadata/OpenMetadata/pull/9537, we might need to validate the behavior with the new sqllineage

Closing this ticket as this is already handled.


[Theme] Shadows

This pull request has been deployed to Vercel.

✅ Preview:
https://matou-technologies-purrfect-ui-storybook-10.vercel.app

🔍 Inspect:
https://vercel.com/matou-technologies/purrfect-ui/5B2jv6CDcM9NGXXvQGDkAu27R2m9


chore(deps): update java

This PR contains the following updates:

Package
Type
Update
Change

org.projectlombok:lombok (source)
dependencies
patch
1.18.32 -> 1.18.34

org.junit.platform:junit-platform-launcher (source)
dependencies
patch
1.10.2 -> 1.10.3

org.junit.jupiter:junit-jupiter-engine (source)
dependencies
patch
5.10.2 -> 5.10.3

org.junit.jupiter:junit-jupiter-api (source)
dependencies
patch
5.10.2 -> 5.10.3

io.github.cdimascio:dotenv-java
dependencies
patch
3.0.0 -> 3.0.1

de.gdata:vaas
dependencies
patch
8.1.0 -> 8.1.1

:warning: Warning
Some dependencies could not be looked up. Check the warning logs for more information.

Configuration
:date: Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:ghost: Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
:warning: Warning: custom changes will be lost.


Spike: Common OCA library

Creating from sprint retro

decide what is needed by a common oca library
what repo or team or governance
what things should use it
archetechture etc  (NPM package?)

Decisions, priority, who to be responsible to come. Make epic and tickets etc

This would not be about extracting the library code that is currently in the Tenant UI (that code was a quick POC dirty implementation), but rather taking the code in the other more authoritative OCA viewer places (such as the OCA Explorer https://github.com/bcgov/aries-oca-bundles/) and creating a reusable OCA viewer library.
Then use that new library in the Vue app in the Tenant UI.


OIT: Fix wrong prepass state when mesh visibility changes

See https://forum.babylonjs.com/t/shader-crash-with-oit/40332/29
Follow up to #13781

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/13802/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/13802/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/13802/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/13802/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/13802/merge
https://gui.babylonjs.com/?snapshot=refs/pull/13802/merge
https://nme.babylonjs.com/?snapshot=refs/pull/13802/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/13802/merge#BCU1XR#0


assigning specific private ip address to the master node

Environment:

AWS ParallelCluster / CfnCluster version [aws-parallelcluster-2.4.1]
OS: [CentOS]
Scheduler: [SGE]
Master instance type: [m5.2xlarge]
Compute instance type: [c5.8xlarge]

this is not bug, enhance request
During setting up a cluster, I do create and delete the cluster several times. Changing master ip is cumbersome for cluster admin(me) and cluster testers(end users). Please allow to assign specific private ip address to the master node in config file.

Marking this as an enhancement.
Would it be ok for you to assign a given EIP to the master node or you require the private ip to be set to a given one?

I hope I can set a specific ip to the master node private ip.

I would also prefer setting a specific private IP.

Yes. Private IP would be nice. Who opens a HPC cluster to the Internet?

I would also like to see this feature, it would help a lot during software config. I also don't want a public IP on the cluster.


add: IWSLT2017

Checklist for adding MMTEB dataset

Reason for dataset addition:

Add the IWSLT2017 BitextMining dataset, which contains 24 language pairs

[x] I have tested that the dataset runs with the mteb package.
[x] I have run the following models on the task (adding the results to the pr). These can be run using the mteb run -m {model_name} -t {task_name} command.

[x] sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
[x] intfloat/multilingual-e5-small

[x] I have checked that the performance is neither trivial (both models gain close to perfect scores) nor random (both models gain close to random scores).
[x] If the dataset is too big (e.g. >2048 examples), considering using self.stratified_subsampling() under dataset_transform()
[x] I have filled out the metadata object in the dataset file (find documentation on it here).
[x] Run tests locally to make sure nothing is broken using make test.
[x] Run the formatter to format the code using make lint.
[x] I have added points for my submission to the points folder using the PR number as the filename (e.g. 438.jsonl).

Thanks again for all the help, this should be ready to be merged now.


RuntimeError: cannot join current thread

Training model 1  appear  problem
╒==============================================╕
|               Training model 1               |
╘==============================================╛
Current Epoch:   0%|                             | 0/6 [00:00<?, ? batch/s]Using TensorFlow backend.
Model    :   0%|                           | 0/200 [00:00<?, ? epoch/s]Exception ignored in: <bound method tqdm.del of Current Epoch:   0%|                             | 0/6 [10:01<?, ? batch/s]>
Traceback (most recent call last):
File "/root/anaconda3/envs/automl-formal/lib/python3.6/site-packages/tqdm/_tqdm.py", line 885, in del
self.close()
File "/root/anaconda3/envs/automl-formal/lib/python3.6/site-packages/tqdm/_tqdm.py", line 1090, in close
self._decr_instances(self)
File "/root/anaconda3/envs/automl-formal/lib/python3.6/site-packages/tqdm/_tqdm.py", line 454, in _decr_instances
cls.monitor.exit()
File "/root/anaconda3/envs/automl-formal/lib/python3.6/site-packages/tqdm/_monitor.py", line 52, in exit
self.join()
File "/root/anaconda3/envs/automl-formal/lib/python3.6/threading.py", line 1053, in join
raise RuntimeError("cannot join current thread")
RuntimeError: cannot join current thread

@aojue1109
Please use the standard template to formulate your bug report.
Thanks.


How to change entity's archtype runtime?

How to change entity's archtype runtime?

Structural changes are in development right now :) till those are available i recommend to either emulate them or to implement them quickly by yourself.
The fastest way is to simulate such changes by wrapping your removeable component into some sort of wrapper.
public struct Enabled<T>{
   public bool enabled;
   public T component;
}

var archetype = new []{ typeof(Transform), typeof(Enabled<Hit>)};

var entity = world.Create(archetype);
ref var cmp = entity.Get<Enabled<Hit>>();
cmp.enabled = true;

world.Query(in query, (ref Transform t, ref Enabled<Hit> hit) => {
   if(!hit.enabled) continue;
   //Logic
});

You could also implement them yourself by getting the entities archetype and modifying that one.
However real structural changes aswell as multithreaded queries will be available in the next few days, already in development :)


Updated README.md

Added information about using Node as admin and installing Grunt as well
as Grunt CLI

Thanks @niick2112


Single Day View

User Story
As a teacher, I want to be able to view a single day for my student
AC
WHEN I select a day of the week or click on a day on the callendar
THEN I should see the single day view of the student's schedule
Dev Notes

Data should be printed to a table
Assignment should be a link to the actual assignment
Edit button should change the "add class" form state to edit mode and prepopulate the data from the existing class.
Delete button should delete the class from that time slot.


ZEPPELIN-1645: JDBC Interpreter does not commit updates

What is this PR for?
Allow users to issue insert/update/upsert statements from Zeppelin notes
What type of PR is it?
Improvement
Todos

[ ] - Task

What is the Jira issue?
ZEPPELIN-1645
How should this be tested?
For Phoenix Interpreter:
Paragraph 1:
%jdbc
UPSERT INTO CX_TEST (ACCT_NBR, HSE_ID) VALUES ('a', 'b')
Paragraph 2:
%jdbc
select count(*) from cx_test
Result: 1
Questions:

Does the licenses files need update?
No
Is there breaking changes for older versions?
No
Does this needs documentation?
Yes - JDBC README updated

The failed test is some bower.json issue, unrelated to the change in this PR.

In order to call commit() in mysql, auto commit should be false otherwise it throws SQLException like following.
java.sql.SQLException: Can't call commit when autocommit=true
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:868)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:864)
	at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1608)
	at org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql(JDBCInterpreter.java:405)
	at org.apache.zeppelin.jdbc.JDBCInterpreter.interpret(JDBCInterpreter.java:459)
	at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:94)
	at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:447)
	at org.apache.zeppelin.scheduler.Job.run(Job.java:176)
	at org.apache.zeppelin.scheduler.ParallelScheduler$JobRunner.run(ParallelScheduler.java:162)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)

Could you address this?

@astroshim Added a safety check on autocommit status

The failed test is in the Python interpreter, unrelated to this JDBC change.

@randerzander Could you rebase?

@randerzander Thanks for the contribution.
LGTM and Merge to master if there're no more discussions.

@randerzander @Leemoonsoo
Thanks for this. Do you know of  a workaround we could use in the meantime?

@matthewLiem Maybe, some jdbc driver may support some parameters like ?autocommit=true in it's connection url. But it depends on driver implementation whether they have such feature or not.
Except for that, i can't think any workaround but applying this patch.


[backup] limit concurrent downloads by default

Motivation
Buffered transaction batches squeezing fs cache out with default setting in testnets (num_cpu(), which is 4).
Matching what we do on partners repo side. https://github.com/diem/partners/pull/879
Have you read the Contributing Guidelines on pull requests?
Y
Test Plan
professional eyes
Related PRs
https://github.com/diem/partners/pull/879

/land


Deliverables folder

We should put a 'Deliverables' folder within our main branch, and we should not have this folder within any other branch. Lets figure out our branching first before we add this folder.

Sounds good with me!

Deliverable folder is made, @SamCain04 (SCRUM master for the week) should close this, since we now have the deliverables folder.

Yes sir. Well done everyone on this weeks tasks


KurtZimmermann.HDCleaner version 2.041

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@microsoft-github-policy-service agree [company="{Kurt Zimmermann}"]

Dupliate of #94538


Fake Client does not create error for invalid projects

[kind/bug]

What versions of software are you using?

Operating System: macOS
Output of odo version: master branch

Any logs, error output, etc?
When I ran odo project create DEMO through the CLI I got the error message whereas when I ran through fake client unit test it does not occur.
Outputs
CLI:
$oc new-project DEMO
The ProjectRequest "DEMO" is invalid: metadata.name: Invalid value: "DEMO": a DNS-1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character (e.g. 'my-name',  or '123-abc', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?')
$odo project create DEMO
 ✗  ProjectRequest.project.openshift.io "DEMO" is invalid: metadata.name: Invalid value: "DEMO": a DNS-1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character (e.g. 'my-name',  or '123-abc', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?')

Fake Client:
GOROOT=/usr/local/Cellar/go/1.13.1/libexec #gosetup
GOPATH=/Users/pkumari/go #gosetup
/usr/local/Cellar/go/1.13.1/libexec/bin/go test -c -o /private/var/folders/g8/f12mz2jj1ygbsq8v51fz7dvr0000gn/T/___TestCreate_in_github_com_openshift_odo_pkg_project -gcflags "all=-N -l" github.com/openshift/odo/pkg/project #gosetup
/usr/local/Cellar/go/1.13.1/libexec/bin/go tool test2json -t /Applications/GoLand.app/Contents/plugins/go/lib/dlv/mac/dlv --listen=localhost:52065 --headless=true --api-version=2 exec /private/var/folders/g8/f12mz2jj1ygbsq8v51fz7dvr0000gn/T/___TestCreate_in_github_com_openshift_odo_pkg_project -- -test.v -test.run ^TestCreate$ #gosetup
API server listening at: <IP_ADDRESS>:52065
=== RUN   TestCreate
=== RUN   TestCreate/Case_1:_project_name_is_given
<nil>
=== RUN   TestCreate/Case_2:_no_project_name_given
no project name given
=== RUN   TestCreate/Case_3:_Invalid_project_name_is_given
<nil> # Project name for the test was 'PROJECT'
--- FAIL: TestCreate (0.01s)
    --- PASS: TestCreate/Case_1:_project_name_is_given (0.00s)
    --- PASS: TestCreate/Case_2:_no_project_name_given (0.00s)
    --- FAIL: TestCreate/Case_3:_Invalid_project_name_is_given (0.00s)
        project_test.go:94: project Create() unexpected error <nil>, wantErr true
FAIL

Debugger finished with exit code 0

https://github.com/openshift/odo/pull/2257#discussion_r337469194

This is actually not a bug but a feature :-) of a fakeclient. In the k8s cluster the validation happens on the server. Fake client, as the name suggests is just a client and there is no sever, so there can't be any validation.

This is actually not a bug but a feature :-) of a fakeclient. In the k8s cluster the validation happens on the server. Fake client, as the name suggests is just a client and there is no sever, so there can't be any validation.

Right, But is there any way to validate such cases using fakeclient ? If no then then the scenario of incorrect project name will be taken care in integration test.

This is one of those cases where odo shouldn't be responsible for testing this ( on a unit level atleast), as the tests for validation would have been written by k8s cluster ( as the validation happens on that end )

An integration test might still make sense if you want to validate this behavior with some other behavior across modules or function.

This is one of those cases where odo shouldn't be responsible for testing this ( on a unit level atleast), as the tests for validation would have been written by k8s cluster ( as the validation happens on that end )

+1
And I would add to that that this case, is actually something that should be in integration test rather unit test

Thanks for the clarification. Will take care it in integration test. I guess there is a scenario in integration test, otherwise will add one.
/close


Do i have to apply a clientId

Amazon just block rclone in recent days, I want to build a upload client by my own.
I want to ask what is the work flow if i want to upload file through the script.
I saw it require a auth.json for OAuth, what is the format of auth.json
Thank you

It looks like this:
{
  "access_token": "Atza|<...very...long...token>",
  "refresh_token": "Atzr|<...very...long...token>",
  "token_type": "bearer",
  "expires_in": 3600
}

...this is the json that is returned when you authenticate here:
https://data-mind-687.appspot.com
As you probably noticed- I'm JUST building this now- sorry for the lack of docs right now. So.. thanks for checking it out and asking questions 👍

Thank you


HTTPCLIENT-2082

Adding the connection socket lookup as a parameter for the builder makes it more flexible to use this builder.

@rafiek I understand that. However we have a very similar situation with HttpClientBuilder in HC 4.x and it has been causing quite a bit of confusion and troubles with users who never get around to reading the API documentation. I do not want to repeat the same situation in HC 5.x.

@rafiek I understand that. However we have a very similar situation with HttpClientBuilder in HC 4.x and it has been causing quite a bit of confusion and troubles with users who never get around to reading the API documentation. I do not want to repeat the same situation in HC 5.x.

Aah, did not know that. Then how about this. I was preparing this feature to make it easier to implement a programmatic SOCKS based HttpClient. The HttpClientBuilder uses the PoolingHttpClientConnectionManagerBuilder to build a default HttpClientConnectionManager, but doesn't take into consideration to use systemProperties. When it does, then it would be very convenient that the builder takes in connectionSocketFactoryRegistry as a step for build(). This was part of HTTPCLIENT-1966, but I closed the pull request because it was preferred to implement it in HC 5.x.
Should I also add the changes for HTTPCLIENT-1966 in this pull request. Making the scope bigger and the intention for these changes more clear. Maybe adding more javadoc also?

@rafiek I initially thought you were going to add support for SOCKS related system properties but with this PR you have veered into an unexpected direction.

@rafiek I initially thought you were going to add support for SOCKS related system properties but with this PR you have veered into an unexpected direction.

No worries. Hang tight. I'll steer this boat back into familiar waters. I'll contact you in Jira when I've updated this pull request.


Request of 'pth' or 'tar' file corresponding to each MVTec AD class

I would like to perform only the inference function without training with the provided RealNet.
A message appears that there are no pre-trained models for each class in MVTec AD.
I have downloaded all the checkpoints of the provided classifier and diffusion model and saved them in a designated location.
Where can I find the additional 'tar' compressed file I need to download?
y --dataset MVTec-AD --class_name bottle
Traceback (most recent call last):
  File "evaluation_realnet.py", line 182, in <module>
    main()
  File "evaluation_realnet.py", line 99, in main
    state_dict=torch.load(args.model_path)
  File "/notebooks/users/1004613/objupyterlabgpu-1004613/py38/lib/python3.8/site-packages/torch/serialization.py", line 791, in load
    with _open_file_like(f, 'rb') as opened_file:
  File "/notebooks/users/1004613/objupyterlabgpu-1004613/py38/lib/python3.8/site-packages/torch/serialization.py", line 271, in _open_file_like
    return _open_file(name_or_buffer, mode)
  File "/notebooks/users/1004613/objupyterlabgpu-1004613/py38/lib/python3.8/site-packages/torch/serialization.py", line 252, in __init__
    super().__init__(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: 'experiments/MVTec-AD/realnet_checkpoints/bottle/ckpt_best.pth.tar'

We have not yet released models fine-tuned on specific anomaly detection datasets, but we may upload these checkpoints in the coming weeks.

Thank you for your kind response.
I look forward to your model upload.

We have uploaded the checkpoints trained on MVTec. They can be downloaded at the following link:
mvtec checkpoints

Thank you very much!
I will try this.


76 pass backend options on init instead of run and provide pv name formatting options

Closes #76
Reopening because #77 was struggling with fetching a dropped commit.

I would like to have the pv naming in a separate PR. I am not sure it is quite right yet and maybe we should rework the way we handle combinations of controller paths and attributes entirely. I don't like that you have to call _convert_attribute_name_to_pv_name with an is_attribute flag.
Also, I don't think we need  CAPITALIZED_CONTROLLER_PASCAL_ATTRIBUTE and it seems to be complicating the logic here a lot. I think what need need is for capitalised acronyms to be left alone regardless of the mode, e.g. FP in controller path or PVI as the leaf. PascalCase doesn't handle acronyms explicitly, but I think we should add some handling around that.


Icon, screenshots are missing on Izzyondroid

i dont even know why this was uploaded to izzyondroid repo. volumetile was only made for personal use and i most likely will not ever update it.


readOnly doesn't pass NovaRequest to the callback

I'm not sure if nova changed this recently, but the callback passed to Laravel\Nova\Fields\Field::readOnly should receive an instance of Laravel\Nova\Http\Requests\NovaRequest.
It seems that R64\NovaFields\Configurable::readOnly is just adding some meta if the callback is true, but Nova already does this in Laravel\Nova\Fields\Field::isReadonly.
$this->withMeta(['extraAttributes' => ['readonly' => true]]);
So it seems this package can just read from that instead of setting it's own meta, but the quickest fix is to just replace the override for readOnly with isReadOnly like so
- public function readOnly($callback = null)
- {
-     if (!$callback || (is_callable($callback) && call_user_func($callback))) {
-         return $this->withMeta(['readOnly' => true]);
-     }
-     return $this;
- }

+ public function isReadOnly(Laravel\Nova\Http\Requests\NovaRequest $request)
+ {
+     if ($isReadOnly = parent::isReadOnly()) {
+         $this->withMeta(['readOnly' => true]);
+     }
+.    return $this;
+ }

Workaround
->readonly(function () {
    $request = app(NovaRequest::class);
    return $request->user()->cannot('some permission');
}),

in the code I wonder if this can be fixed by just removing the readOnly override on the php side and better utilize the already built functionality to set a field readonly so we don't need as much code since readOnly and readonly on the php side are just doing the exact same thing....Basically just only override where needed instead of creating a confusing situation of readonly in normal fields and readOnly on R64 fields.

Fix available on 0.17.0


Switch to fork of bumpr

Upstream bumpr doesn't use the github_token for input, which means that the tags it push won't trigger any actions.

github_token stuff was merged upstream in bumpr


support local files with file:// protocol when run from command line

Beware ! Security issue ahead !

That's done in version 2.3


s390x toolchain generates binaries for GLIBC 2.18 which is incompatible with RHEL 7

In the zLinux world the Red Hat Interprise Linux 7 is a very common distro. Unfortunately it comes with GLIBC 2.17 so the binaries created with the cross tool cannot be run due to some missing symbols.

Seems similar to #455

This might be an issue for a few reasons:

Need to change package management for s390x-unknown-linux-gnu to CentOS 7.
There are no provided packages for glibc-s390x-linux-gnu in any official repository, and gcc-c++-s390x-linux-gnu only exists (without the shared libraries) in EPEL.

This means compiling glibc from source, which means we'd probably be better off using crosstool-ng entirely, which is quite a lot of work. It's definitely not impossible, and I'll add a section to the wiki about how to use older toolchain versions, but I don't think we can support this out-of-the-box: it's too much new code, a new dependency, and too much maintenance long term.

Uh, this is relatively more complex than desired, because there's a lot of bugs in crosstool-ng due to a lack of maintenance, and would require essentially all the patches I've made for my C++ analog of cross. Simply put, unless there's a lot of demand, it's probably not worth documenting since it requires a lot of effort and debugging.

Update: we're going to be using crosstool-ng anyway to fix other issues (see #426), so although we won't support it, I can get some sample files showing how to build this with ct-ng 1.24.0. This will allow you to create a custom docker image with minimal work for this purpose, which will be documented on the wiki.

Thanks for the feedback. With docker and cargo cross it's certainly easier; we are currently using a custom crosstool-ng toolchain for s390x which implies some additional setup with cargo config, environment variables, etc.

Sounds perfect, I'll document it in the wiki and create my own repository with config and Dockerfiles for these, so others can plug-and-play to use them. It'd slow down our CI by a lot, and also it's a lot of maintenance for so many builds long term, but I think it's a good idea since most of our infra is already done here.


Add markers to timeseries widgets

Markers are constants drawn as horizontal lines in a widget. Sadly, this feature isn't documented in the official API docs. However, we're using it since a couple of months successfully.

No official documentation? Huh, alright.


I'd like to join this project's community

Your public repo
https://github.com/oskarth/gov4git-identity-public.git
Your public branch
main

Approved.

 Follow up
On Monday, 11-Mar-24 04:53:41 UTC by Gov4Git dev
@oskarth was added to the community.


[minor] add Coverage Status in readme

Which issue does this PR close?
Add code Coverage tag 😊

Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

@alamb After add code Coverage forget add this tag 😂
Seems higher than arrow-rs

Thanks @Ted-Jiang !

Seems higher than arrow-rs

I think at least one problem is that doctests don't count for coverage and arrow-rs has a bunch of doctests

Thanks @Ted-Jiang !

Seems higher than arrow-rs

I think at least one problem is that doctests don't count for coverage and arrow-rs has a bunch of doctests

@alamb Got it! will try to add this doctests to the report!

Thanks @Ted-Jiang


Version count is 1 more than on oC10

Describe the bug
On oC10 the count of versions of a file is just the number of "old" versions that exist.
On OCIS the count includes the current "version".
It's arguable which is "correct", but they should not be different.
Steps to reproduce
https://drone.cernbox.cern.ch/cs3org/reva/567/18/7
  Scenario: Receiver tries get file versions of shared file from the sharer                # /drone/src/tmp/testrunner/tests/acceptance/features/apiVersions/fileVersions.feature:373
    Given user "Brian" has been created with default attributes and without skeleton files # FeatureContext::userHasBeenCreatedWithDefaultAttributesAndWithoutSkeletonFiles()
    And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt"         # FeatureContext::userHasUploadedAFileWithContentTo()
    And user "Alice" has uploaded file with content "version 1" to "textfile0.txt"         # FeatureContext::userHasUploadedAFileWithContentTo()
    And user "Alice" has uploaded file with content "version 2" to "textfile0.txt"         # FeatureContext::userHasUploadedAFileWithContentTo()
    And user "Alice" has uploaded file with content "version 3" to "textfile0.txt"         # FeatureContext::userHasUploadedAFileWithContentTo()
    And user "Alice" has shared file "textfile0.txt" with user "Brian"                     # FeatureContext::userHasSharedFileWithUserUsingTheSharingApi()
    When user "Brian" tries to get versions of file "textfile0.txt" from "Alice"           # FeatureContext::userTriesToGetFileVersions()
    Then the HTTP status code should be "207"                                              # FeatureContext::thenTheHTTPStatusCodeShouldBe()
    And the number of versions should be "3"                                               # FeatureContext::theNumberOfVersionsShouldBe()
      Expected number of versions was '3', but got '4'
      Failed asserting that 4 matches expected '3'.

Expected behavior
After uploading a file, then overwriting it 3 trimes, the count of versions in the version history should be 3
Actual behavior
On OCIS the count is 4. (It includes the "current version")
Setup
Current CI

At least one expected failure left (https://github.com/cs3org/reva/blob/master/tests/acceptance/expected-failures-on-OWNCLOUD-storage.md#version-count-is-1-more-than-on-oc10). This fails because of the status code and not because of the versions count.

Seems not be a problem any more.

Seems not be a problem any more.

Correct - all the scenarios in https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature are passing nowadays.


os.environ['RANK'] keyError: 'RANK'

I run
python main.py --mode train --data data1/ImageNetOrigin --config config/mbv2/retrain.yaml
--flops 43 --chcfg ./results/DMCPMobileNetV2_43_MMDDHH/model_sample/expected_ch
Traceback (most recent call last):
File "main.py", line 75, in
main()
File "main.py", line 42, in main
tools.init(config)
File "/data1/task/tools/dmcp/utils/tools.py", line 28, in init
dist.init_dist(config.distributed.enable)
File "/data1/task/tools/dmcp/utils/distributed.py", line 29, in init_dist
rank = int(os.environ['RANK'])
File "/usr/local/miniconda3/lib/python3.6/os.py", line 669, in getitem
raise KeyError(key) from None
KeyError: 'RANK'

Turn off distributed training

I have a machine with 8 GPUs and 24 CPUs. Why doesn't this key exists in os.environ?
$ python
Python 3.8.5 (default, Sep  4 2020, 07:30:14)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ["RANK"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/anaconda/envs/azureml_py38/lib/python3.8/os.py", line 675, in __getitem__
    raise KeyError(key) from None
KeyError: 'RANK'

I specifically want to do distributed training.


GEOMESA-1839 Fix Travis CI build timeouts

Signed-off-by: Jim Hughes<EMAIL_ADDRESS>

i'll let the build finish :)
then merge

Big money  Err...  Green check GREEN check please!

woot!


Not working with SCSS syntax in ST3 Build 3176

If I understood correctly, this package works with github.com/braver/SublimeSass and sass highlight works fine, but when I switch to lang="scss" syntax is broken

See the issue I created https://github.com/braver/SublimeSass/issues/15
SublimeSass recently switched to a different fork that got it's first push.  Among the changes was the scope of  from source.scss to source.css.scss.
It looks like we'll have to wait for vue-syntax-highlight to update their scss scope to match it.
https://github.com/vuejs/vue-syntax-highlight/blob/cf1e82d90a0bb2228bdf0afb2bbfb0d30ea70a86/vue.YAML-tmLanguage#L177
A workaround is to disable SublimeSass and use the old package, which is available here

Another workaround:

Install https://packagecontrol.io/packages/PackageDev
Extract and Open Vue Syntax Highlight package
Modify relevant part of tmLanguage file (change source.scss to source.css.scss)

A new release has been pushed out. Can you try to update it and let me know if the issue persists?

That’s fixed it for me, thanks!

So you want to tell me that from now long I need to install some shady plugin to use SCSS with Vue? Why are you killing it?

Vue ecosystem is turning into pile of chaos.

I used this for SCSS highlightning - https://packagecontrol.io/packages/SCSS
All was working just fine.
 Rly???

This is the last I'll respond to this especially given that I run neither of these packages and am just trying to help

Braver's plugin is the official one and has more user's that that. Just check it out: https://packagecontrol.io/packages/Sass

It is also the package Vue Syntax Highlighting suggested before anyways

The package you linked hasn't been updated for 4 years....

You can ask the maintainer of that plugin to update the scope and all will work again, though based on the maintenance it receives, I don't think it's likely

If this package (vue-syntax-highlight) explicitly requires a specific external package, it needs to be listed somewhere, or better yet, included as a dependency. This issue being closed, I had to hunt down why my SCSS was no longer being highlighted. I personally use a Sublime Package for SCSS that has been working for years, even in .vue files, and it no longer works.

A new update has been pushed out and previously supported SCSS packages should work again. Do let me know if you continue experiencing issues.

I'm currently using :

braver/SublimeSass - v2.1.1
vuejs/vue-syntax-highlight  - v3.3.3

<style lang="scss">   = no highlight
<style lang="sass">   = no highlight
<style lang="css">     = yes highlight

Removing braver/SublimeSass and installing it again fixes mine.


Update akka-http, akka-http-testkit to 10.1.14

Updates

com.typesafe.akka:akka-http
com.typesafe.akka:akka-http-testkit

from 10.1.11 to 10.1.14.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.typesafe.akka" } ]

labels: library-update, semver-patch

Superseded by #101.


Character editor isn't working

Describe your problem here.
Whenever I put in my sprite sheet in the character editor, and put in the animation name it just stays on one idle frame.
https://user-images.githubusercontent.com/113413512/190841100-e3787d13-a740-4ec8-b551-0b5681d2d99f.mp4
And yes, I have double-checked the XML file.
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No

copy the anim code from the .xml file for example , "gfDance0000"

Make sure it’s the EXACT same on on the xml

Thanks a lot for helping, it worked!


Bump version numbers for 1.5.6

What kind of change does this PR introduce?
Release version 1.5.6

Kindly review it as earliest as possible. and release this version. I need an array filter.

Kindly release this version as soon as possible.

@esakkimuthu-p the release has been tagged and the assets are now building

@olirice Thanks for releasing these changes! Are you able to help get another PR created for this version in the supabase repo? I noticed that you put up the PR in the past (https://github.com/supabase/postgres/pull/967), so I thought I'd ask haha

sure, tracking here https://github.com/supabase/postgres/pull/1008


BUGFIX: Ensure graphql3 compat in type name generation

See https://github.com/silverstripe/silverstripe-elemental/pull/870#issuecomment-872611069

I have tested this and it works fine.

Looks legit, should we target this at 4.6 instead of 4? Looks like a candidate for a quick patch release

Yeah good point. 4.6.

Have rebased against 4.6. Will merge on green.


RasPi3 dns issue, OTBR has no internet

Hi all,
I started to set up a Border Router using a Raspberry Pi 3B. I followed the OpenThread Border Router Build and Configuration. At the end of "Set up the Border Router",  after the step to "power cycle the Border Router", my Border Router lost its dns. Basically, I can ping <IP_ADDRESS>, but I cannot ping google.com, nor $sudo apt update.
Some basic info:
$cat /etc/rpi-issue Raspberry Pi reference 2018-03-13 Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 00013d7972122d1304aacda8fff5098f073ceb43, stage2
pi@raspberrypi:~/otbr/ot-br-posix $ git log -1 --oneline f53d594 [build] update OpenThread to latest version (#317)
After flashing the raspbian image onto the sd card, I have done.
sudo apt-get update  sudo apt-get upgrade -y  sudo apt-get install -y git   mkdir ~/otbr/   cd ~/otbr/  git clone https://github.com/openthread/ot-br-posix  cd ./ot-br-posix/  ./script/bootstrap   ./script/setup  sudo sed -i 's/ttyUSB0/ttyACM0/g' /etc/wpantund.conf  sudo reboot now
Before the reboot, I was able to ping google. After reboot, the problem started.
Also, I set up another RasPi, repeated the steps and tried with the manual setup NETWORK_MANAGER=0 ./script/setup. The same issue happened after reboot.
What I have tried to fix:

check the router, DHCP server is on. Other ubuntu and Pi in the same LAN don't have this problem.
in /etc/resolvconf/resolv.conf.d/head, add nameserver <IP_ADDRESS>
in /etc/dhcpcd.conf, under eth0 section, add static domain_name_servers=<IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS>
reboot, restart resolv, restart dhcpcd, reload daemon.
All these couldn't help here. Do you have any idea what setting is missing?
Thanks for your insight!

The problem was the IT firewall, resolved after changing to another backbone server.


Improvements

not done yet

note that french autocorrect might mess things up

i think i did enough
here's the link although i only really changed cursor selecting
https://nottheimpasta.github.io/MCDiamondFire-Awesome/

@UserUNP @CheaterTim ‼

After you're done click "squash and merge"

i know

@NotTheImpasta also change the data.json to explicitly include the fontawesome icon name so there's no if statements in the Properties component

@... also change the data.json to explicitly include the fontawesome icon name so there's no if statements in the Properties component

i'll do that instead

i did say to squash and merge you nincompoop


adding error status for http errors and >=400 status code

Hi there,
not sure if i'm missing something here, but would this work to record HTTP errors e.g. nxdomain etc?
(also i've made status code >= 400 an error as per the docs here: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/http.md#status. The status kind in telepoison is hardcoded to client so i believe this is the right behaviour!

@Fs00 Sorry about that. Fixed!

Sorry for the delay with merging this PR, but it's blocked by the CI (or lack of it) and I'm trying to understand how to proceed.

Thank you for your patience! We still need to address some issues with our CI so we may not be able to merge future PRs as quick as we'd like, but we do appreciate external contributions 😃


Moved cross plugin file to share project

removed the need for the file linking
some shared assembly info had to be removed as it was causing build errrors

not wanting to put this through yet. tests go a bit weird with it


Topics are not deleted but lingered.

When I delete a topic by $KAFKA_HOME/bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper localhost:2181 --topic test, it looks the client still thinks there is the topic.
Moreover, it looks it does not create a topic as it writes a message after deleting the topic. In this case, I can send messages and get them but when I execute  $KAFKA_HOME/bin/kafka-topics.sh --list  --zookeeper localhost:2181 to check the deleted topic (and supposed to be created), it does not show up.
Here are the input and output.

Fisrt I added a document

from kafka.client import KafkaClient
from kafka.producer import SimpleProducer
from kafka.common import LeaderNotAvailableError

client = KafkaClient("localhost:9092")
producer = SimpleProducer(client)
try:
    producer.send_messages('test', '123')
except LeaderNotAvailableError, e:
    producer.send_messages('test', '123')

After checking the topic

print client.topic_partitions

{'test': {0: PartitionMetadata(topic='queue-test', partition=0, leader=0, replicas=(0,), isr=(0,), error=0), 1: PartitionMetadata(topic='queue-test', partition=1, leader=0, replicas=(0,), isr=(0,), error=0)}}

and
$ cd $KAFKA_HOME
$ ./bin/kafka-topics.sh --list  --zookeeper localhost:2181
test

I deleted the topic

$ cd $KAFKA_HOME
$./bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper localhost:2181 --topic test
deletion succeeded!

Then, I listed again to check the topic is deleted here. it shows okay when I executes the script to list topics.

$ cd $KAFKA_HOME
$ ./bin/kafka-topics.sh --list  --zookeeper localhost:2181

but it looks the topic still lingers in kafka-python
print client.topic_partitions

{'test': {0: PartitionMetadata(topic='queue-test', partition=0, leader=0, replicas=(0,), isr=(0,), error=0), 1: PartitionMetadata(topic='queue-test', partition=1, leader=0, replicas=(0,), isr=(0,), error=0)}}

After reloading again it's the same
client.load_metadata_for_topics()
print client.topic_partitions

{'test': {0: PartitionMetadata(topic='queue-test', partition=0, leader=0, replicas=(0,), isr=(0,), error=0), 1: PartitionMetadata(topic='queue-test', partition=1, leader=0, replicas=(0,), isr=(0,), error=0)}}

or after creating a client again.
client = KafkaClient("localhost:9092")

print client.topic_partitions

{'test': {0: PartitionMetadata(topic='queue-test', partition=0, leader=0, replicas=(0,), isr=(0,), error=0), 1: PartitionMetadata(topic='queue-test', partition=1, leader=0, replicas=(0,), isr=(0,), error=0)}}

Thing is, I can still produce messages to the topic. I think there should be a proper way to delete a topic in this library or at least, it has to not show deleted topics.
My kafka version is <IP_ADDRESS> and this library version is 0.9.3

this is a server bug -- deleting topics doesn't work correctly on server <IP_ADDRESS>.  see https://issues.apache.org/jira/browse/KAFKA-1397

Oh thanks for the link. But is there any way to delete a topic in this library not the shell script?

as far as I know the kafka server doesn't provide any APIs for managing topics / partitions directly. For that you have to use the command-line server tools. I believe there is some work to add APIs so client libraries could do admin tasks. If/when that gets released we'll try to add support!

I have checked this with Kafka 0.8.2 and it looks all work fine :+1:
But it dose only when I create a client instance again.
You might have to take this into account so that a client instance should not have to be re-created to get a right list of topics. :)

to avoid restarting your client instance, you can use client.reset_topic_metadata(topic) to drop a topic from the local metadata cache. you can also use client.reset_all_metadata() to flush all locally-cached metadata. load_metadata_for_topics() currently will not delete old metadata. I'll see if that can be improved.

I see. Thank you very much!


Luis - Issue: by Carban

issue: repair issue with a functionality by get substations

Issue: resolved issue for carban about the method to get substations


parsing Dates without time components

Question
We use Postgraphile for our backend, and many of our tables have date columns (just the year month day). Sending GraphQL Date types in mutations with Apollo Kotlin works fine, but returning the sent value in the result of that mutation fails with message like "Text '2021-06-04' could not be parsed at index 10". Queries returning dates fail as well. We are using the com.apollographql.apollo3.adapter.DateAdapter custom adapter, but I have tried the one for Java Instant as well. Under the hood both use OffsetDateTime.parse which uses DateTimeFormatter.ISO_OFFSET_DATE_TIME which expects a string with time and zone info.
Is this a backend issue or should the parser be more lenient?

Hi 👋 Thanks for reaching out!
Looks like this is a mission for KotlinxLocalDateAdapter
Or if you want the JVM-only java.time equivalent, JavaLocalDateAdapter should work too.

The underlying issue you're bumping into is that 2021-06-04, doesn't tell the time or offset so it's not possible to get a Date from it without making assumptions about what time/timezone you want. I'd strongly recommend using the newer java.time API instead of java.util.Date as they model time much more precisely.
If you absolutely need a java.util.Date, you can get one from a LocalDate with something like this:
Date(localDate.atStartOfDay().atOffset(ZoneOffset.UTC).toEpochSecond() * 1000)

Yeah, I totally agree about not using java.util.Date
Switching to JavaLocalDateAdapter helps resolve this particular issue, so that's nice. But what if I wanted postgres date fields represented as LocalDate and postgres timestamptz fields as LocalDateTime. Can I use JavaLocalDateAdapter and JavaLocalDateTimeAdapter at the same time, or can there be only one mapScalar("Date", ...)?

You can only use one adapter for a given custom scalar. If the format returned by your backend sometimes has a time and sometimes doesn't, you'll have to write your own adapter. But I'd encourage you to ask your backend team to use different GraphQL scalars for this. Like maybe LocalDate and LocalDateTime. Or at least make it clear that if no time is present then some particular time must be assumed like "00:00"

Only now do I see that our postgres timestamptz columns are being represented as Datetime in GraphQL. I had been assuming they were just Date. 🤦
Thanks again!

Sure thing!


154 dev unified derivation framework

This PR follows up on the discussion in https://github.com/cambridge-cares/TheWorldAvatar/issues/99 and provides a unified derivation framework that is able to update a directed acyclic graph (DAG) formulated by pure sync derivations/pure async derivations/async derivations depending on sync derivations.
This PR also provides additional support for two modes of asynchronous operation: (1) new information generation; and (2) existing information update. Both modes work fine with the mixed type DAG as aforementioned.
DerivationExample and DerivationAsynExample were updated using the latest codes. For more details, please refer to README.md of each minimum working example.
An issue was encountered during one of the tests (case 5, testMaxMinDiffAsync in DockerIntegrationTest.java of DerivationAsynExample) and discussed in detail in https://github.com/cambridge-cares/TheWorldAvatar/issues/184.

I believe that all queries must not be looped, what you need to write are SPARQL updates with sub queries in it, see Example 6 here.
I've only looked at the synchronous bit in detail because I'm familiar with it:

updatePureSyncDerivation
I already mentioned this, please do not update timestamps in the loop, I purposely written the function to update all timestamps in 1 go. The whole point of derivation.setUpdateStatus(true);  is to know which timestamps to update, which is redundant now that you replaced it in the loop. The only queries that I left in loops are the reconnecting ones, because they are not actively used compared to the timeseries one, they can certainly be replaced as well.

The timestamp update in the loop is to make sure the world outside the memory/cache of the calling entity of updatePureSyncDerivation or updateDerivations functions also gets the most up-to-date information about the derivation instances - so that multiple entities can call the updatePureSyncDerivation function at the same time, like what monitorDerivations in the DerivationAgent is doing as you noticed. This is actually quite important to enable the unified derivation framework that is able to handle mixed DAGs.
You may also notice that the SPARQL query for reconnecting inputs to derivations, timestamp update and also delete any status for sync derivations (this will be applicable when updating mixed DAGs) are all included in one function reconnectInputsUpdateTimestampDeleteStatus https://github.com/cambridge-cares/TheWorldAvatar/blob/fbb895e8233b397e26f7e622111207985b7ba08d/JPS_BASE_LIB/src/main/java/uk/ac/cam/cares/jps/base/derivation/DerivationSparql.java#L1785.
I agree this increased the number of SPARQL queries in the update and might slow down the response time when there's a large number of sync derivations to be updated, but I think the amount of queries increased is not too bad if we compare the number of queries in below situation:
For simplicity, assume we are updating 1000 synchronous derivations in the middle of a DAG and among which 200 are DerivationWithTimeSeries, leaving 800 normal Derivation (assume 500 of them have downstream derivations, i.e. are inputs to another derivation, so inputToAnotherDerivation.size() > 0)
now we calculate the number of SPARQL queries within the if (derivation.isOutOfDate()) clause:

Individual SPARQL query/update
updatePureSyncDerivation
updateDerivation

deleteBelongsTo
800
800

addNewEntitiesToDerived
800
800

initialiseNewEntities
500
800

reconnectInputsUpdateTimestampDeleteStatus
1000
N/A

reconnectInputToDerived
N/A
500

updateTimestamps
N/A
1

---
---
---

total
3100
2900

PS:

initialiseNewEntities is moved to within the if (inputToAnotherDerivation.size() > 0) clause for updatePureSyncDerivation, we can also do the same for updateDerivation, but the difference is still okay-ish in the above situation (3100 vs. 2600).
I suppose the number of SPARQL queries can be further reduced by combing deleteBelongsTo and addNewEntitiesToDerived, even initialiseNewEntities into one SPARQL query/update call

Given the advantage of enabling distributed requests for sync derivation update, which is the key to enabling mixed type DAG, I would strongly advocate keeping the timestamp update after each derivation update. It should be noted tho, that this advantage comes with a price that we also need to solve the issue with concurrent HTTP requests in the long run as detailed in https://github.com/cambridge-cares/TheWorldAvatar/issues/184.
Please check if you agree with the suggestions and I can make changes to combine those SPARQL queries.

I find the mixture of deprecated functions confusing.

The intention was to provide the updated methods but not break any of the existing codes - in theory, the newly provided functions should be able to cover the same functionalities as the codes that are marked as deprecated, but the developer can choose if and when to switch to newer functionalities. Would you mind elaborating on which exact function was confusing?

It's going to scale very badly if the number of queries increases with the number of derivations.
I always believe that there should be only one entity that can call the updateDerivation functions, having monitorDerivation to call it is a bad idea, why should this be triggerred by a derivation agent? I think this should be called by a higher up agent

and FYI, all the queries above updateTimestamps are not called in the CReDo project and they can be replaced, so it's 1 query against 3100

I agree this increased the number of SPARQL queries in the update and might slow down the response time when there's a large number of sync derivations to be updated, but I think the amount of queries increased is not too bad if we compare the number of queries in below situation:

well more accurately the number of queries to update timestamps, so 800 against 1

800

For simplicity, assume we are updating 1000 synchronous derivations in the middle of a DAG and among which 200 are DerivationWithTimeSeries, leaving 800 normal Derivation (assume 500 of them have downstream derivations, i.e. are inputs to another derivation, so inputToAnotherDerivation.size() > 0) now we calculate the number of SPARQL queries within the if (derivation.isOutOfDate()) clause:

Individual SPARQL query/update
updatePureSyncDerivation
updateDerivation

deleteBelongsTo
800
800

addNewEntitiesToDerived
800
800

initialiseNewEntities
500
800

reconnectInputsUpdateTimestampDeleteStatus
1000
N/A

reconnectInputToDerived
N/A
500

updateTimestamps
N/A
1

---
---
---

total
3100
2900

In commit https://github.com/cambridge-cares/TheWorldAvatar/pull/185/commits/104fd7ee3100e6285b44e61ad4528869abb8b6b8, method deleteBelongsTo, addNewEntitiesToDerived, and reconnectInputsUpdateTimestampDeleteStatus were combined into one method reconnectNewDerivedIRIs, which will only be executed if the derivation is still outdated (which partially solves the concurrent HTTP request issue), so that the amount of SPARQL operations for the hypothetical situation becomes:

Individual SPARQL query/update
updatePureSyncDerivation

initialiseNewEntities
500

reconnectNewDerivedIRIs
1000

---
---

total
1500

It's going to scale very badly if the number of queries increases with the number of derivations.

The number of queries now scales linearly with the number of derivations: the number of derivations to be updated + the number of derivations that have downstream derivations.

The number of queries should not be a function of the number of derivations, there should be zero queries within the updateDerivation functions. The non-timeseries derivation is not actively used at the moment so it's not a big issue, I do plan on making the change when we start to use it.

The number of queries should not be a function of the number of derivations, there should be zero queries within the updateDerivation functions. The non-timeseries derivation is not actively used at the moment so it's not a big issue, I do plan on making the change when we start to use it.

As discussed, we would like to achieve a decentralised design of agents operating over the knowledge graph. It is thus important to allow multiple agents to query and access the same piece of information at the same time, therefore, the updated information needs to be recorded in the knowledge graph after the update of each derivation, hence the SPARQL updates in the loop are inevitable.
However, the scaling issue related to the pure DAG of OntoDerivation:DerivationWithTimeSeries is valid and should be addressed. As the focus of this PR is to provide a unified derivation framework to support derivation DAG with async derivations depending on sync derivations, the issue with timeseries derivations will be addressed in another PR on its own, https://github.com/cambridge-cares/TheWorldAvatar/issues/191.

I'm not a huge fan of these sort of manual string manipulation unless it's absolutely necessary, I believe a better way to check that it's a valid IRI is to use the java.net.URI class. Under what circumstances do you expect IRI with the angled brackets?
void checkIfValidIri(String s, String p) {
if (!trimIRI(s).matches(HTTP_HTTPS_PROTOCOL) || !trimIRI(p).matches(HTTP_HTTPS_PROTOCOL)) {
throw new JPSRuntimeException(INVALID_IRI_ERROR + s + ", and " + p);
}
}
String trimIRI(String iri) {
	if (iri.startsWith("<")) {
		iri = iri.substring(1);
	}
	if (iri.endsWith(">")) {
		iri = iri.substring(0, iri.length() - 1);
	}
	return iri;
}

also FYI http and https are not the only ones that can be IRIs - https://en.wikipedia.org/wiki/File_URI_scheme

Design/function wise I don't major concerns, majority of the SPARQL updates are updated to be robust against duplicate requests except monitorAsyncDerivations (the one I managed to spot) which is optional to fix in this PR.
My main concern is that the code is getting more complicated, less user friendly and difficult to understand, e.g.

Mixture of deprecated/non-deprecated functions
When someone comes in and try to understand what the code is doing, it is not clear at first glance that DerivationAgent is also executing some important SPARQL updates, as it is outside the derivation package


[Ubuntu] Changes in Settings are not saved

On Ubuntu 16.04. I started tray via menu as normal user (not root):

I changed p2p path:

After restarting Tray, the path has old value.

Can't reproduce by anybody. Looks like settings file corruption.


Does not work on ARM

Hey. Today I gave it a try and it's failed.
mtrofimenko@Maksyms-MBP hello % ./run.sh
Building hello...

go: downloading github.com/edwingeng/slog v0.0.0-20221027170832-482f0dfb6247
go: downloading github.com/pierrec/xxHash v0.1.5
go: downloading golang.org/x/mod v0.8.0
go: downloading go.uber.org/zap v1.23.0
Building plugin "world"...
/Users/mtrofimenko/Work/Current/hotswap/demo/hello/bin/darwin/plugin/hello/world.so

Starting hello...

05|11:33:43     INFO    hotswap/pluginManager.go:84     <hotswap> not reloadable: [], unchanged: [], to be loaded: [world]
panic: failed to load the plugin world. err: plugin.Open("/Users/mtrofimenko/Work/Current/hotswap/demo/hello/bin/darwin/plugin/hello/tmp/230405113343-27640/world-0x98fd8920.so"): dlopen(/Users/mtrofimenko/Work/Current/hotswap/demo/hello/bin/darwin/plugin/hello/tmp/230405113343-27640/world-0x98fd8920.so, 0x000A): tried: '/Users/mtrofimenko/Work/Current/hotswap/demo/hello/bin/darwin/plugin/hello/tmp/230405113343-27640/world-0x98fd8920.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/mtrofimenko/Work/Current/hotswap/demo/hello/bin/darwin/plugin/hello/tmp/230405113343-27640/world-0x98fd8920.so' (no such file), '/Users/mtrofimenko/Work/Current/hotswap/demo/hello/bin/darwin/plugin/hello/tmp/230405113343-27640/world-0x98fd8920.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))

goroutine 1 [running]:
main.main()
        github.com/edwingeng/hotswap/demo/hello/hello.go:53 +0x816

Also would be really good to have some article which explains how does it work in a comparison to the go's plugin feature. Thanks

You should update the run.sh yourself.
remove GOARCH=amd64  in line
CGO_ENABLED=1 GOARCH=amd64 go build -trimpath -o "$PROGRAM_BUILD_OUTPUT_DIR"

@tutumagi thx. it works