neuroglancer + funlib fixes & python 3.9

incasem depends on a branch of a kirchhausenlab clone of funlib.show.neuroglancer which until recently was the branch more_scripts_v2. This branch was out of date in 2 ways:

Using outdated daisy without pinned version
In setup.py, installing funlib.persistence from a git+ install pointing to master, now replaced with main

These have been remediated in a new branch, incasem_scripts here
Additionally, python 3.8 is no longer supported by the updated version of funlib.persistence
The README instructions of incasem has been updated with the following:

The conda environment created in Step 3 now specifies python=3.9
The python_requires in setup.py is also bumped 3.8->3.9
The pip install of the neuroglancer scripts is specified in Step 6 to install from kirchhausenlab/funlib.show.neuroglancer.git@incasem_scripts to include fixes defined above

Great, thanks for the fixes.


HDDS-3690. Fix typo in BlockManagerImpl#allocateBlock

Signed-off-by: sunlisheng<EMAIL_ADDRESS>What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
What is the link to the Apache JIRA
(Please create an issue in ASF JIRA before opening a pull request,
and you need to set the title of the pull request which starts with
the corresponding JIRA issue number. (e.g. HDDS-XXXX. Fix a typo in YYY.)
Please replace this section with the link to the Apache JIRA)
How was this patch tested?
(Please explain how this patch was tested. Ex: unit tests, manual tests)
(If this patch involves UI changes, please attach a screen-shot; otherwise, remove this)

That some check fails is unrelated to this patch.

@leosunli Please trigger a new CI checks by commit&push an empty commit like
 git commit -m "trigger new ci check"  --allow-empty
 git push

@dineshchitlangia Maybe we should fix or refactor the timeout tests, many new contributor met the unrelated CI failed and being confused.


Lanes incorrectly changing height on drag & drop

Description
Before diving in and trying to fix it, I wanted to coordinate this with you guys.
Are there any pre-existing efforts regarding this problem?
I would be happy to try fixing this, provided someone more experienced with the project can point me in the right direction, since i'm new to the codebase.
If think you know how to fix this, please tell me. If you can do it with minimal effort, please do it.
Current, buggy behavior
Problem 1
The lane increases height, when a card is picked up. When dropped, without having moved out of the lane, the lane keeps its increased height.

Problem 2
Moving a card from lane A to lane B:

2.1: When the card is hovering over lane B, lane A doesn't shrink down in height enough. Only when you drop the card on lane B, does lane A shrink to its minimal height.
2.2: When hovering over lane B, B makes "too much room" for the new card. The lane-height increases by more than the height of the card. It stays like that, after dropping the card.

Expected behavior
This is how Trello.com behaves:
A card always occupies space in a lane, a designated drop zone. Trello.com indicates this using a shadow. You know where the card will fall if you let go of the card.

Lanes make just enough room for the shadow.
The shadow changes lane by moving a card over another lane.
A card must always have a shadow (designated drop zone) while hovering.

Expected 1

Expected 2

Environment:

OS: MacOS 10.14.2
Browser: Chrome Version 71.0.3578.98 (Official Build) (64-Bit)

Both of them are regression bugs that creeped in when one or more related features were built into the system. Let me review this PR and merge it. Thanks for your contributions @sambokai


Password validates immediately instead of on delay

Describe the bug
The password should not immediately start to alert about errors until focus is lost
How to reproduce
https://clarity.design/documentation/password
Steps to reproduce the behavior:

Go to demo with validation
Start typing
See error immediately

Expected behavior
The error state should not be activated until focus is lost.
Versions
App

Angular: 7
Node: 8.10.3
Clarity: 1.0.4

Not an issue but I also can't seem to refresh the page without being presented a "Page Not Found" modal being presented to me. Clicking on the "How to reproduce" lands me on the same "Page Not Found". All other components respond with a HTTP 301 leading me to the right place.

@kelvix This is a problem on the website. This issue is for something else.
You can follow this PR to track the 404 problem: #3107

This is actually happening on inputs as well if you add a different validator like minlength and required.


Use hash maps from fxhash instead of fnv

Replace the hash maps from fnv with implementations from fxhash, resulting in a ~30% decrease of execution time of the descent bench.

bors r=Elarnon

bors retry


XSS Filter Failure in isURL (2.0)

I know, issue #605 is closed, but I found a similar issue (this time for real):
A URL like https://example.com/foo/<script>alert('XSS')</script>/ is a valid URL in terms of validator.isURL().
Is there a chance to fix this?
Version 6.2.0

RFC 3986 states:

path = ( "/" segment )
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "" / "+" / "," / ";" / "="

RFC 1738 states:

The characters "<" and ">" are unsafe because they are used as the delimiters around URLs in free text.

RFC 3987 says that < and > are not allowed.
tl;dr (, ) and ' are ok, but < and > are not.
I can fix this, but in general you should not be relying on the validator to suppress XSS attacks.

Yeah, I see... Will not rely on the validator only.
Just wanted to point it out here! 😊
Thanks, tho!

Fixed in 6.2.1

Wow! Awesome!


conda python version 3.8.16 libffi error

Hey Tony,
Latest 3.8.16 version of python is broken on Ubuntu 20.04
will give the below error.. (when executing recording.py)
cv_bridge.boost.cv_bridge_boost import getCvType
ImportError: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0

This is due to an incompatibility between the libffi shipped with 20.04, and the version python 3.8.16 expects..  ( think it's 3.3 in 20.04 but python is expecting 3.4... something like that)
conda install python=3.8.10

in the aloha environment fixes the problem.
Recommend specifying 3.8.10 in the README.md instead of 3.8 as current

Hi Duane,
Sorry for the late reply as I have been quite busy lately. I actually encountered the same error when installing Aloha in a new computer, and have been quite perplexed by it. Looks like this is the root cause and thanks for catching it!
I just updated the requirement here.
Aloha,
Tony


Invisible text is being returned after breaking change 3fc1f4e

Commit 3fc1f4e for issue #483 has broken the behaviour of visibleText.
The change now returns:
@element.innerText || @element.textContent
Which means that textContext will be returned if innerText returns both null OR and empty string.
So if all the text of an element is hidden then the hidden text will now be returned from visibleText.

:+1:

Can someone please merge the pull request for this?

Should be fixed via PR #750


refactor: update database generator and related unit tests

What type of PR is this?

/kind feature
What this PR does / why we need it:
This PR refactors the database generator and updates related unit tests.
Which issue(s) this PR fixes:

Fixes #582
Special notes for your reviewer:
Does this PR introduce a user-facing change?

Additional documentation e.g., design docs, usage docs, etc.:

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+2.0%) to 77.122%

Totals

Change from base Build<PHONE_NUMBER>:
2.0%

Covered Lines:
8596

Relevant Lines:
11146

💛  - Coveralls


What about downloads?

It doesn't look like there is a way to do downloads with Slingshot. Is there another package that does this? Do we just have to fend for ourselves? Could I send a pull request?

For anyone that's interested, the JavaScript example of creating a signed url is at:
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getSignedUrl-property

Hi guys,
I started using slingshot with Amazon S3 recently, and run into the same problem - files uploaded via my meteor app, should be only viewed by the user who uploaded it. I had a look at the link shared above, but I still think it would be really nice if such a function was integrated into the slingshot package.

Just to clarify - is there any plans on integrating it into the package?
And another question: has anyone already successfully implemented this using the amazon api "manually"?

@rpesciotta I have. Here's my (simplified) code. AWS.S3 comes from eluck:aws-sdk. Note that this code requires the S3 credentials to be stored in the environment (in the same place where Slingshot looks for them).
getSignedURL = (key) ->
    s3 = new AWS.S3
    url = Meteor.wrapAsync(s3.getSignedUrl, s3) 'getObject', Bucket: Meteor.settings.public.s3bucket, Key: key, Expires: 60
    url

Router.route "files_get",
    where: "server"
    path: "/files/:fileId/:store"
    action: ->
        # Authenticate the user. You will want to either pass a token to the HTTP request or store a token in a cookie (if you use `meteorhacks:fast-render`, this will already be done).
        file = Files.findOne @params.fileId
        key = file?.copies?[@params.store]?.key
        if key
            @response.writeHead 302, Location: getSignedURL key
            @response.end()
        else
            @response.writeHead 404
            @response.end "404 Not Found"

@Gaelan : great stuff man, thanks for sharing.
I'm adapting it to my app, we'll provide feedback ;)

@Gaelan: sorry for the delay. I've implemented and it worked quite well - good stuff!
In my case, my app uploads files to S3 (images), and I need to display them in the website as well.
With the first implementation, I noticed that the signed request was generated for every request, which is a bad idea in my case. Everytime the user opens a form containing that image, it has to download again from S3. The immediate way I found to minimize this problem, was to generate the signed request, and store it for an amount of time. In case the user requests the image again within that period, the same URL is used, and therefore cached, so no file transfer. In addition, if other users (who should have access to the same file) request it within this time frame, the same URL is also provided to them. The downside of this, is that I have to keep this list of active signed URLs, and maintain (expire) requests periodically.
Have you had similar requirements? I'd be very interested to discuss how you (or anyone else with similar problems) have solved this problem.
In any case, the solution I have is acceptable, although not perfect, for that I already thank you for sharing the implementation ;)

@rpesciotta I am building a private app without many users, so I have the luxury of not needing to fine-tune things like this.


RU code fixes

New LCARS-alike fonts for RU-version (add attribute lang="ru" to html tag to view the changes)
Workaround for russian PDF sheet generation
Requested by Hanzo.

New fonts can be used on English version too.
And it will be better to use one of these fonts for generation of all sheets types. This PR fixes generation only for RU card in any site language, but other types are temporary disabled in RU webpage as it can't be generated using old font.


Tabbing through links in swiper shifts scrollbar out of view

In the following example, click a cover and then press the TAB key a number of times.  The scrollbar shifts to the left and eventually off the screen.  I only tested this with the latest Chrome and Firefox browsers on PC.
http://www.theuserfocus.com/mag_browse/cover_test.html
This code will be refactored, but I just wanted to quickly experiment with this swiper.  Any insight into the problem would be much appreciated.

yes, the solution works! thanks!


XLA implementation of FFT on CPU pulls in tf/core:framework

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): macos 10.11
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): commit 63c6562df68ade3a03481874a71b536a4e02b6f5 (master as of April 15 2018)
Python version:  n/a
Bazel version (if compiling from source): n/a
GCC/Compiler version (if compiling from source): n/a
CUDA/cuDNN version: n/a
GPU model and memory: n/a
Exact command to reproduce: bazel build --config=opt //tensorflow/compiler/xla/service/cpu:runtime_fft. It works, but see below.

Describe the problem
Short version: The CPU implementation of the XLA FFT operation appears to pull in tensorflow::Tensor and ...::TensorShape as a dependency, via //tensorflow/core:framework.
Long version: The FFT implementation comes in three flavors; real-to-complex, complex-to-real, and complex-to-complex. The first two flavors involve allocating a temporary buffer for an intermediate step in the computation. This is currently achieved by creating a tensorflow::Tensor object. This requires linking against //tensorflow/core:framework.
This feels like a bug, or at least unintentional and undesirable. For instance, every other op listed in tensorflow/compiler/xla/service/cpu/BUILD, besides runtime_fft, depends only on :framework_lite. My understanding re: allocating temporary space was that (at least for the AOT compiler, not sure about JIT) there were specific temporary buffers set aside, and that allocation should work through that system; not by just letting malloc run wild. Is that understanding correct? (Aside: Eigen's FFT op internally calls malloc, regardless of FFT flavor, which likewise bypasses the AOT temporary buffers. Is that ok?)
Is anyone currently working on this? (Has anyone noticed anything awry?) If I were to try fixing this myself, would anyone have any suggestions on how to allocate a temporary buffer in an XLA-friendly way? I thought one possibility would be writing an Algebraic Simplifier pass to rewrite real-to-complex and complex-to-real flavors in terms of the complex-to-complex flavor (which doesn't need to create a tf::Tensor), but that's my only idea.
Source code / logs
References:
tensorflow/compiler/xla/service/cpu/BUILD
tensorflow/compiler/xla/service/cpu/runtime_fft_impl.h

Update: I went ahead and fixed it. If it's ok, I'll open a PR (after I run the unit tests). It still allocates a buffer on the fly, so the memory profiling tools won't catch it, but it'll do it with an Eigen::Tensor instead of a tf::Tensor so it won't need to link in core:framework. I also added a proper option for single-threaded FFT (status quo assigns the multi-threaded version even when single-threaded is requested).

Nagging Assignee @sanjoy: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Fixed in #18685


Mount overriding in java-microprofile stack corrupts extraction

Describe the bug
https://github.com/appsody/stacks/blob/29d191bf76b8d59d22cb8a394ec1effb14673002/incubator/java-microprofile/image/Dockerfile-stack#L21
more precisely, token 3: src:/project/user-app/src is proving to be problematic. When extraction happens, the current directory is the parent of src, and because of this mount directive, the parent's mount is either ignored or abandoned - resulting in the project's configuration files being lost.
To Reproduce
Steps to reproduce the behavior:

appsody init java-microprofile
appsody extract -v
look at the extract location
ls -la on user-app

Expected behavior
A complete copy of current location from where appsody extract was issued.
Actual behaviour
[root@linuxkit-025000000001 javam]# ls -la
total 16
drwxr-xr-x  7 root root  224 Aug 30 07:56 .
drwxr-xr-x 12 root root  384 Aug 30 08:04 ..
-rw-r--r--  1 root root   37 Aug 30 07:56 .appsody-config.yaml
-rw-r--r--  1 root root  271 Aug 30 07:56 .gitignore
-rwxr-xr-x  1 root root 7147 Aug 30 07:56 pom.xml
drwxr-xr-x  4 root root  128 Aug 30 07:56 src
drwxr-xr-x  4 root root  128 Aug 30 07:56 .vscode
[root@linuxkit-025000000001 javam]# ls -la /root/.appsody/extract/javam/user-app/
total 20
drwxr-xr-x 3 root root 4096 Aug 30 08:15 .
drwxr-xr-x 3 root root 4096 Aug 30 08:15 ..
-rwxr-xr-x 1 root root 7147 Aug 30 08:15 pom.xml
drwxr-xr-x 4 root root 4096 Aug 30 08:15 src
[root@linuxkit-025000000001 javam]#

Environment Details (please complete the following information):

OS: Linux
Version : NA

If applicable please specify:

CLI version: appsody vlatest
Stack you are using: java-microprofile

Additional context

Was uncovered while testing for buildah.
This is the only mount token in all of the stacks that overlaps with the current location.

In addition to the above, I see these inconsistencies:

Some stacks for example: swift:0.1, nodejs-loopback:0.1, nodejs:0.2 have this mount:

/:/project/user-app
This is neither meaningful nor feasible while extracting: the ask is to mount the entire host's fs into the container? Is this intentional, and if yes, what purpose it solves? Are we hoping to capture many project files sprinkled in the host's system to be made available? or something else?

java-spring-boot2:0.3 stack has this mount:

.:/project/user-app
this is fine, but the extractor takes care of this already. If this is setup at every stack, then the extractor logic could be simplified not to worry about that, and vice versa.
In short, for the extractor to function well, these incosistencies need to sortred out by defining a standard, as well as documenting it.
I am raising this as an issue (rather than a PR) because I am not 100% sure of other use cases of these MOUNT variables than for extraction, and guessing that I may be potentially missing something.

Thanks @gireeshpunathil for raising this issue. This is something that has always bothered me too.
To clarify, in both the cases we are mounting user's current workspace to the specified path in appsody container. So / is same as ..
@appsody/cli team can one of you please explain what was the reason for using / instead of . for the mounts.

@skoh7645 Please can you test the stack by changing the mounts to use .:/project/user-app

@gireeshpunathil Sorry, why do you need every file to be copied? I would like to understand the use case better. We wrote the extract command as such to exclude certain files from being copied. This is to mimic what is inside the container, and create a clean project that is not polluted by files from the current workspace

@skoh7645 - if you are alluding to the full mount (/:/project/user-app), then:

that mount is not being honored when I checked; can you please confirm (that it works as you wanted)?
assuming that it works, then we don't want any other mounts - because this covers the entire file system of the host!

There's two topics of discussion in this issue:
1) Inconsistency between stacks using / and . in the mount var.
I believe either one would will equally, so we should pick one and be consistent in all stacks.
@gireeshpunathil I think your confusion here is is that appsody prepends the current dir (the appsody project dir) path to the host mount before sending the mount to docker. For example, if pwd is /home/user/appsodyproject and the mount config is /:/project/user-app, the final mount sent to docker becomes /home/user/appsodyproject/:/project/user-app. Thus the entire filesystem won't be mounted, only the appsody project. This should probably be better documented.
2) Extract is not copying all the projects in the current directory.
This is the topic original issue description. However, I believe it is working as designed. Extract is not meant to contain all the local configuration files, it should only contain the files required to build the final docker image. We gather these files by looking at what was mounted in the dev image.
@gireeshpunathil Please explain why you expect local configuration files to appear in extract.

@kylegc - thanks for the explanations. Definitely, a document that explains the contracts will greatly help!
ok, so if the project configuration file is not required in the extraction, I am fine by that. But does that also mean nothing in the current project folder is required?
Let us look at what happens to 2 files Foo.java and Foo.class that I kept in the project folder - they are abandoned. Is this an expected behavior?
[root@j1 javam]# pwd
/root/javam
[root@j1 javam]# ls -la
total 28
drwxr-xr-x.  5 root root  147 Sep  5 01:56 .
dr-xr-x---. 12 root root 4096 Sep  5 01:54 ..
-rw-r--r--.  1 root root   37 Sep  5 01:54 .appsody-config.yaml
drwxr-xr-x.  4 root root  184 Sep  2 05:41 .appsody_init
-rw-r--r--.  1 root root    6 Sep  5 01:56 Foo.class
-rw-r--r--.  1 root root    6 Sep  5 01:56 Foo.java
-rw-r--r--.  1 root root  271 Sep  5 01:54 .gitignore
-rwxr-xr-x.  1 root root 7147 Sep  5 01:54 pom.xml
drwxr-xr-x.  4 root root   30 Sep  5 01:54 src
drwxr-xr-x.  2 root root   43 Sep  5 01:54 .vscode
[root@j1 javam]# appsody extract
Extracting project from development environment
Running command: docker[pull appsody/java-microprofile:0.2]
[Warning] The stack image does not contain APPSODY_PROJECT_DIR. Using /project
[Warning] Could not mount /root/.m2/repository:/mvn/repository because the local file was not found.
Running command: docker[create --name javam-extract -v /root/javam/src:/project/user-app/src -v /root/javam/pom.xml:/project/user-app/pom.xml appsody/java-microprofile:0.2]
Running command: docker[cp javam-extract:/project /root/.appsody/extract/javam]
Running command: docker[rm javam-extract -f]
Project extracted to /root/.appsody/extract/javam
[root@j1 javam]# ls -la /root/.appsody/extract/javam
total 44
drwxr-xr-x. 4 root root   184 Sep  2 05:41 .
drwxr-xr-x. 4 root root    30 Sep  5 01:56 ..
-rwxrwxr-x. 1 root root    33 Sep  2 05:39 .appsody-init.bat
-rwxrwxr-x. 1 root root    47 Sep  2 05:39 .appsody-init.sh
-rw-rw-r--. 1 root root   378 Sep  2 05:39 Dockerfile
-rw-rw-r--. 1 root root    42 Sep  2 05:39 .dockerignore
drwxr-xr-x. 3 root root    21 Sep  2 05:41 .mvn
-rwxrwxr-x. 1 root root 10078 Sep  2 05:41 mvnw
-rw-rw-r--. 1 root root  6609 Sep  2 05:41 mvnw.cmd
-rw-rw-r--. 1 root root  3618 Sep  2 05:39 pom.xml
drwxr-xr-x. 3 root root    32 Sep  5 01:56 user-app
-rwxrwxr-x. 1 root root  2963 Sep  2 05:39 validate.sh
[root@j1 javam]# ls -la /root/.appsody/extract/javam/user-app/
total 8
drwxr-xr-x. 3 root root   32 Sep  5 01:56 .
drwxr-xr-x. 4 root root  184 Sep  2 05:41 ..
-rwxr-xr-x. 1 root root 7147 Sep  5 01:54 pom.xml
drwxr-xr-x. 4 root root   30 Sep  5 01:54 src
[root@j1 javam]#

Clearly, this is a side effect of deep mount ( /root/javam/src:/project/user-app/src) superseding the outer mount (/:/project/user-app) and I find no way to reason this.

Well, for this stack /:/project/user-app is not mounted:
https://github.com/appsody/stacks/blob/29d191bf76b8d59d22cb8a394ec1effb14673002/incubator/java-microprofile/image/Dockerfile-stack#L21
Thus, yes this is the expected behavior. The stack developers require you to put all code in the src dir for this stack.

@kylegc - thanks for the explanations; I see your point now. Closing this, the only action is to improvement on the documentation ,specifically on the layout of the stack, what are  mounted and will be picked up for extraction and deployment thereon.

FYI I created https://github.com/appsody/website/issues/233 to improve the documentation.

Thanks @kylegc
Along with clearer documentation, we should favour . over / as that could avoid confusion in the first place.

@appsody/stacks team what do you think of favoring . over / to start the mount path?

@neeraj-laad should we update the existing stacks to use . then?

For those that don't already use ., I think they should be updated. . is much more intuitive / understandable


Support writes from any region

I believe there's an issue open about this somewhere, but I can't find it.
Here's my use case:
I'm using SQLite to cache a lot of things in my app like third party APIs and slow queries. Here are two conflicting problems:

I can't use LiteFS for this cache because I write to this cache during GET requests all the time and I don't want to replay requests to the primary to update the cache. It would undo the benefits of multi-region because almost every request would be replayed.
The caches can (and do) diverge. So a user can hit refresh and see different data because the second cache has stale data that hasn't been refreshed yet. On top of that, when I want to trigger a cache revalidation explicitly, I will have to trigger it across all regions which is a big pain.

Write speed is not important for this cache (I can fire-and-forget), so I'd like to be able to support writes from any region for this specific database. In my use case I'll need this support to not be at the global litefs level, but at the specific database level. This is because I also have another sqlite database that serves as the actual data store for my app and write speed matters for that.
Let me know if you have questions or if I'm missing something. Thanks!

I think the issue you might be referring to is Write Forwarding (https://github.com/superfly/litefs/issues/56), however, that has a lot of latency when you try to do it from distant regions. LiteFS is built around a strong consistency model (serializable) so implementing multi-master isn't currently something it can do.
I'm not opposed to allowing for weaker consistency models but I'd just have to figure out how to do it cleanly. Tools like Mycelial are built around these kinds of models. There's also the session extension which can be used to ship logical changes.
I'll take a look and see if we could integrate something like the session extension into LiteFS for cache data.

that has a lot of latency when you try to do it from distant regions

That's actually fine for me because I'd just fire-and-forget in this case (it's a cache after all).

Again, I want to call out that I would need this to work on a per-database basis. I have one database for my app data and a separate one for the cache and I want to keep the existing behavior for my app data, but have this new behavior for the cache.

that has a lot of latency when you try to do it from distant regions
That's actually fine for me because I'd just fire-and-forget in this case (it's a cache after all).

Another more important downside is that SQLite is single writer so the write lock has to be held for the length of at least 1 round trip. If you have your primary in Denver and you write from Sydney then you might have 250ms of time where the database is locked for writes. That would limit you to 4 writes per second.

I want to call out that I would need this to work on a per-database basis

Good call out. The databases in LiteFS are pretty isolated so most features like this will be on a per-database level.

To be clear, the Sydney cache database would be the one that's locked right? The Denver cache wouldn't be locked right? And just because the database is locked for writes doesn't impact reads right? And if another write comes in, it'll just wait, or will it error out?

The write lock exists on the primary but with Write Forwarding the replicas can borrow the lock temporarily. It's still global so all copies of the database would be locked for writes. Write locks don't affect reads so long as you're using the WAL journaling mode. Writes will get queued if they can't acquire the write lock immediately (and eventually timeout).

It's possible that I should just make an internal API call to trigger a cache update that one region can send to the primary so cache writes only happen in the primary, but don't have to involve a fly-replay... 🤔

This is probably the best approach and it'll work right now. With this approach, the write lock is only acquired for a few milliseconds since all the processing occurs on the primary node.

Makes sense. Yeah, the internal API call sounds the most sensible.

Here's my implementation of that:
https://github.com/kentcdodds/kentcdodds.com/blob/ec9c0d5a652d97c97ee98ffe0d33e38c592ce962/app/routes/resources/cache.sqlite.ts
And here's how I handle when cache.set and cache.delete is called: https://github.com/kentcdodds/kentcdodds.com/blob/ec9c0d5a652d97c97ee98ffe0d33e38c592ce962/app/utils/cache.server.ts#L73-L132

I'm getting this:
2023-01-24T05:15:47Z app[2862cf95] ams [info]FetchError: request to https://3f8f0b85.vm.kcd.internal/resources/cache/sqlite failed, reason: connect ECONNREFUSED fdaa:0:23df:a7b:d826:3:5d51:2:443

What am I doing wrong? I'm guessing my URL is incorrect or something?

If you’re hitting the “internal” DNS then you should use http instead of https. You’ll also need to use the internal port that your server running on (if it’s not using port 80).

That worked 👍 I think this is the best approach. I'm still able to avoid using (or hosting) another service, and the cache is at the edge next to my app 🔥


Modify charter and merge with mission

This PR updates the WG AI charter and merges with the mission document to avoid confusion.
It should preliminary address https://github.com/cncf/tag-runtime/issues/178

/hold for some reason, the page is not rendering correctly.

@raravena80  any idea of why WG AI is not correctly rendered with this PR?


Image shadows

The current way of having a shadow behind an image only seems to work with iOS and not Android.

The logo for the Wizards(between the Jazz and Kings) is barely visible.

I guess shadows cannot be implemented on Android. Maybe I'll have to use a darker background color for Android and keep the lighter background color for iOS.


NDArrayTestsFortran and   Nd4jTestsC  test cases failure

Failed tests:
NDArrayTestsFortran.testTensorDot:1055 expected:<[[440.00,1,232.00]
[1,232.00,3,752.00]
[2,024.00,6,272.00]
[2,816.00,8,792.00]
[3,608.00,11,312.00]]> but was:<[[0.00,0.00]
[0.00,0.00]
[0.00,0.00]
[0.00,0.00]
[0.00,0.00]]>
Nd4jTestsC.testMultiSum:496 expected:<[ 12.00, 16.00]> but was:<[ 12.00, 10.00]>
Nd4jTestsC.testTemp:1669 expected:<1> but was:<0>
Nd4jTestsC.testTensorDot:1320 expected:<[[4,400.00,4,730.00]
[4,532.00,4,874.00]
[4,664.00,5,018.00]
[4,796.00,5,162.00]
[4,928.00,5,306.00]]> but was:<[[0.00,0.00]
[0.00,0.00]
[0.00,0.00]
[0.00,0.00]
[0.00,0.00]]>
OpExecutionerTestsC.testMeanSumSimple:448 expected:<-6.247787702242928E24> but was:<16.0>
Tests in error:
LossFunctionTests.testRMseXent:60 » NullPointer
OpExecutionerTests.testPow:266 » NullPointer
OpExecutionerTestsC.testPow:278 » NullPointer
Tests run: 421, Failures: 5, Errors: 3, Skipped: 11
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] nd4j ............................................... SUCCESS [  1.633 s]
[INFO] nd4j-common ........................................ SUCCESS [  2.923 s]
[INFO] nd4j-context ....................................... SUCCESS [  0.271 s]
[INFO] nd4j-buffer ........................................ SUCCESS [  0.615 s]
[INFO] nd4j-backends ...................................... SUCCESS [  0.037 s]
[INFO] nd4j-api-parent .................................... SUCCESS [  0.030 s]
[INFO] nd4j-api ........................................... SUCCESS [  6.982 s]
[INFO] nd4j-jdbc .......................................... SUCCESS [  0.041 s]
[INFO] nd4j-jdbc-api ...................................... SUCCESS [  0.647 s]
[INFO] nd4j-native-api .................................... SUCCESS [  0.703 s]
[INFO] nd4j-backend-impls ................................. SUCCESS [  0.184 s]
[INFO] nd4j-native ........................................ FAILURE [ 43.917 s]
[INFO] nd4j-cpu ........................................... SKIPPED
[INFO] nd4j-jdbc-mysql .................................... SKIPPED
[INFO] nd4j-instrumentation ............................... SKIPPED
[INFO] nd4j-perf .......................................... SKIPPED
[INFO] nd4j-serde ......................................... SKIPPED
[INFO] nd4j-jackson ....................................... SKIPPED
[INFO] nd4j-bytebuddy ..................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 58.543 s
[INFO] Finished at: 2016-03-21T18:02:24+08:00
[INFO] Final Memory: 40M/675M
my env:
code base f9d14f096f2bff102b84ff36446d45e3c706ace7
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
OS:
Linux gao-VirtualBox 4.2.0-34-generic #39~14.04.1-Ubuntu SMP Fri Mar 11 11:38:02 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
OpenBLAS-0.2.16

pass this test with code base :13ccf70279c3c166815145a64f6a92158fc698c2


fix

https://github.com/customerio/issues/issues/8857
The function that should handle replacements in .plist file calls injectCodeByMultiLineRegex, which is wrong since this function does not replace the values; it only injects a new value.
This PR adds a new function, replaceCodeByRegex which does the replacement correctly

Hey, there @xtreem88 👋🤖. I'm a bot here to help you.
I think the title of this pull request is not in the correct format. Follow the instructions below and then edit the pull request title to a valid format. I'll check again after you make an edit 👍.

This project uses a special format for pull requests titles. Expand this section to learn more (expand by clicking the ᐅ symbol on the left side of this sentence)...

This project uses a special format for pull requests titles. Don't worry, it's easy!
This pull request title should be in this format:
<type>: short description of change being made

If your pull request introduces breaking changes to the code, use this format:
<type>!: short description of breaking change

where <type> is one of the following:

feat: - A feature is being added or modified by this pull request. Use this if you made any changes to any of the features of the project.

fix: - A bug is being fixed by this pull request. Use this if you made any fixes to bugs in the project.

docs: - This pull request is making documentation changes, only.

refactor: - A change was made that doesn't fix a bug or add a feature.

test: - Adds missing tests or fixes broken tests.

style: - Changes that do not effect the code (whitespace, linting, formatting, semi-colons, etc)

perf: - Changes improve performance of the code.

build: - Changes to the build system (maven, npm, gulp, etc)

ci: - Changes to the CI build system (Travis, GitHub Actions, Circle, etc)

chore: - Other changes to project that don't modify source code or test files.

revert: - Reverts a previous commit that was made.

Examples:
feat: edit profile photo
refactor!: remove deprecated v1 endpoints
build: update npm dependencies
style: run formatter

Need more examples? Want to learn more about this format? Check out the official docs.
Note: If your pull request does multiple things such as adding a feature and makes changes to the CI server and fixes some bugs then you might want to consider splitting this pull request up into multiple smaller pull requests.

Closing this PR because we want to release this fix on alpha and not wait for beta release
Another PR has been created to the alpha branch
https://github.com/customerio/customerio-expo-plugin/pull/18


The properties doesn't preserve after pasting one ADLS Gen2 folder with added properties

Storage Explorer Version: 1.13.0
Build: 20200410.5
Branch: rel/1.13.0
Platform/OS: Windows 10/ Linux Ubuntu 18.04/ macOS High Sierra
Architecture: ia32/x64
Regression From: Not a regression
Steps to reproduce:

Expand one ADLS Gen2 storage account -> Blob Containers.
Created a new blob container -> Upload one folder with blobs to it.
Right click the folder -> Click  'Properties...' -> Add properties  -> Save.
Copy the folder to another ADLS Gen2 account.
Check the properties of the pasted folder.

Expect Experience:
The added properties shows well in Properties dialog.
Actual Experience:
The added properties doesn't preserve in Properties dialog.
More Info:
This issue doesn't reproduce when pasting one ADLS Gen blob.

Figure out when AzCopy is planning on doing this/if they are planning on doing this, and then move to the correct milestone.

This issue also reproduces for folders copy&paste between file shares.

Move to 1.17.0 since AzCopy don't have the capacity to support this.

Let's try enable the include stub blob flag to see if this is already fixed.


cmake fails with mechanisms component

This occurs when -DCOMPONENTS=mechanisms is specified.
Apparently, the mechanisms component uses an old swig_module_setup instead of  add_swig_sub_module:
-- Set up for siconos_mechanisms library ...

CMake Error at mechanisms/swig/CMakeLists.txt:27 (swig_module_setup):
  Unknown CMake command "swig_module_setup".

```T

fixed


Thoughtworks - The jobs city is  "Bucuresti-Dorobanti" instead of "Bucharest" on solr.peviitor.ro

ENVIRONMENT: production
URL: https://solr.peviitor.ro
Browser: Microsoft Edge
Device: Laptop
OS: Windows 10
STEPS TO REPRODUCE:

Open the URL in the browser
Execute Query for "Thoughtworks" Company
Check the job locations
Open https://www.thoughtworks.com/careers/jobs
Check the job locations
Open https://scrapers.peviitor.ro
Run scraper for "Thoughtworks" company and check the location of the jobs

EXPECTED RESULTS:
The jobs city is "Bucuresti" as on the company's website
ACTUAL RESULTS:
The city of the job is "Bucuresti-Dorobanti" instead of "Bucharest"
On the scrapers.peviitor.ro the message "Bucuresti-Dorobanti is not a city in Romania" is displayed
The following jobs have "Bucuresti-Dorobanti" as city:

Lead Data Engineer
Senior Android Developer (RX knowledge)
Senior Android Developer (SD UI experience)
Senior Infrastructure Developer (DevOps)
Senior iOS Developer

Fixed!

After retesting, all jobs have a city as location


org.apache.beam.sdk.transforms.ParDoLifecycleTest.testTeardownCalledAfterExceptionInProcessElementStateful is flaky in Java ValidatesRunner Flink suite.

Sample run: https://ci-beam.apache.org/job/beam_PostCommit_Java_ValidatesRunner_Flink/9666/testReport/junit/org.apache.beam.sdk.transforms/ParDoLifecycleTest/testTeardownCalledAfterExceptionInProcessElementStateful/
Saw at least 2 other instances this week.

Error Message
java.lang.AssertionError: Expected to have a processing method throw an exception
Stacktrace
java.lang.AssertionError:
Expected to have a processing method throw an exception
	at org.junit.Assert.fail(Assert.java:89)
	at
org.apache.beam.sdk.transforms.ParDoLifecycleTest$ExceptionThrowingFn.after(ParDoLifecycleTest.java:439)
Standard
Error
Nov 23, 2021 12:07:43 PM org.apache.beam.runners.flink.FlinkRunner run
INFO: Executing pipeline
using FlinkRunner.
Nov 23, 2021 12:07:43 PM org.apache.beam.runners.flink.FlinkRunner run
WARNING:
For maximum performance you should set the 'fasterCopy' option. See more at https://issues.apache.org/jira/browse/BEAM-11146
Nov
23, 2021 12:07:43 PM org.apache.beam.runners.flink.FlinkRunner run
INFO: Translating pipeline to Flink
program.
Nov 23, 2021 12:07:43 PM org.apache.beam.runners.flink.FlinkExec
...[truncated 869358 chars]...
ction.open(WrappingFunction.java:46)
	at
org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:34)
	at org.apache.flink.runtime.operators.BatchTask.run(BatchTask.java:508)
	...
4 more
Caused by: java.lang.Exception: Hasn't yet thrown
	at org.apache.beam.sdk.transforms.ParDoLifecycleTest$ExceptionThrowingFn.throwIfNecessary(ParDoLifecycleTest.java:432)
	at
org.apache.beam.sdk.transforms.ParDoLifecycleTest$ExceptionThrowingFn.before(ParDoLifecycleTest.java:395)

Imported from Jira BEAM-13311. Original Jira may contain additional context.
Reported by: tvalentyn.

This is the same as #19814


[SHIRO-882] Upgrade to apache pom parent 26

Cherry-picked from: #356

Is this the root cause?
15:20:52.854 [main] WARN  org.apache.shiro.web.config.IniFilterChainResolverFactory - The [filters] section has been deprecated and will be removed in a future release!  Please move all object configuration (filters and all other objects) to the [main] section.
15:20:52.860 [main] ERROR org.apache.shiro.web.servlet.AbstractFilter - Unable to start Filter: [There is no servlet context resource corresponding to configPath '/WEB-INF/foo.ini'  If the resource is located elsewhere (not immediately resolveable in the servlet context), specify an appropriate classpath:, url:, or file: resource prefix accordingly.].
org.apache.shiro.config.ConfigurationException: There is no servlet context resource corresponding to configPath '/WEB-INF/foo.ini'  If the resource is located elsewhere (not immediately resolveable in the servlet context), specify an appropriate classpath:, url:, or file: resource prefix accordingly.
	at org.apache.shiro.web.servlet.IniShiroFilter.convertPathToIni(IniShiroFilter.java:347) ~[classes/:?]

I'm not sure, it's building locally fine 😰


Add Spinnaker CLI download support

What this PR dose
Add Spinnaker CLI download support.
Which issue dose this PR fix?
Fix #86

Because Spinnaker CLI has no releases but have some tags, our http-downloader cannot determine the latest release while downloading it. As I mentioned in https://github.com/LinuxSuRen/hd-home/blob/a6581894c90e45310b122aa9f216b94f727a506e/config/spinnaker/README.md#L5, we have to append a specific version at the end of repo/project.


"Help" menu: Index and Contents

"Index" and "Contents" show the same HTML. Is it intended?

Yeah, it was a left over from previous .chm help file which really did have a help index.  So the index option will be removed in the next update.

Fixed in <IP_ADDRESS>

Fixed in <IP_ADDRESS>


added $Exact to spread withStateHandlers properly

To allow spread working properly, all it items should be $Exact types. Maybe previously it wasn't working this way, but in current version of flow, it's required.

Can you provide a code example which shows the problem without $Exact? Thanks!

Also HOCs are broken with latests flow versions, better to wait until flow fixes that or not.


[Feature Request]: Enhance "Enhanced JSON Output" to generate Arrays

What would you like to happen?
When using the grouping functionality of "Enhanced JSON Output", each result row gets an Array of JSON items. With an additional flag I wish to generate a single JSON item result, but the values should be arrays.

Nr
Name

1
Feature

1
Request

Current result grouped by Nr.:

outputValue
Nr

{"result":[{"name":"Feature"}, {"name":"Request"}]}
1

With "Force Single Item" flag active, grouped by Nr.:

outputValue
Nr

{"result":{"name":["Feature", "Request"]}}
1

Issue Priority
Priority: 2
Issue Component
Component: Transforms

.take-issue

We have the same issue
the result shall be
{"result":["Feature", "Request"]}
and not that one
{"result":{["Feature", "Request"]}}

I agree this feature should come out of the box with an extra flag on the field handling.
Currently, this result can be achieved with a bit of a workaround:

Aggregate the strings to an array to have the [ "value1" , "value2" ...] format
Use the JSON Fragment option on the field

I have created a simplified sample which can be found here

I will mark this one as completed and created a follow up #3395 I think it would still be useful to have this option on field/element level


Question about offline calibration

@andy-yang-1 My team really appreciate your work on Double Sparsity! Thank you for everything you do!
Question - In group_channel_config.py, the scores for identifying outlier channels are decided via q * k, which is the dot product of an individual token's query and key vectors.
However, it is possible that an outlier (or feature detection) occurs via channel C' during the interaction of query vector of token T and the key vector of let's say token T-3 (and this channel C' does not show strong outlier behavior when multiplied within key-value vectors of either token T or T-3)
I am curious about how the offline calibration approach works, if only interactions between query and key vectors of the same token is considered to measure strength of outlier channels. Thanks!

@vnkc1 Thank you very much for your reply! I think what you said makes sense. In my experiments, I only verified the effect of q * k for the same token, but it’s very likely that cross attention might yield better results. I will try the method you suggested.


fix(drag-drop): error when dragging items inside transplanted views with OnPush change detection

This is a bit of an edge case, but nevertheless it's something that can happen. The way the dragging sequence works is that the drop list keeps track of its items via ContentChildren and it registers itself with them once they're picked up by the QueryList. If an item doesn't have a container when the drag sequence is started, it is considered a "standalone" drag.
This becomes a problem with transplanted views (e.g. ones created by cdk-table) that use OnPush where we could end up in a situation where the items aren't picked up during the first pass, but when the user starts dragging, we trigger change detection and the QueryList is updated, but at that point it's too late, because we've already started the dragging sequence with a different set of information.
These changes work around the issue by assigning the container manually again through the drag directive.
A couple of notes:

This is a second iteration of the fix. I went with this approach, because it doesn't require hacky timeouts and triggering change detection again. See the origin approach here: https://github.com/angular/components/commit/22afc3723258e6431b4603d96442daaffaa02f22
It's difficult to capture this in a test, because we'd have to duplicate half of the logic from CdkTable and we might still not be able to get the same change detection timing due to TestBed.

Fixes #18341.

Confirmed in cl/293831687 that this fixes https://github.com/angular/components/issues/15948.


Check for previous/existing GitHub issues/module proposals

[x] I have checked for previous/existing GitHub issues/module proposals.

Check this module doesn't already exist in the module indexes

[x] I have checked for that this module doesn't already exist in the module indexes.

Bicep or Terraform?
Terraform
Module Classification?
Resource Module
Module Name
avm-pnt-subnet-nsg-rt-associations
Module Details
We would like to create an AVM pattern module to deploy subnets associated with network security groups and route tables if needed.
Do you want to be the owner of this module?
Yes
Module Owner's GitHub Username (handle)
VeronicaSea
(Optional) Secondary Module Owner's GitHub Username (handle)
No response

Hi, check this request #1453

Tracking the request https://github.com/Azure/Azure-Verified-Modules/issues/1453


Wrong encoding inside K. 1247 ?

Dear @chhomkunthea,
I found this strange encoding on K. 1247 at the xml line 135:
<lb n="B17"/>der· tai <num value="2">II</num> ku rok· <num value="1">Iseg</num> pau tai

Should seg really be inside the <num>tag? Can you check it please?
Best,

@chhomkunthea : please react to this.

Dear Axelle,
The ‘seg’ inside ‘num’ was a mistake. I’ve just corrected that. Thank you.
See you,
Kunthea

Le 21 avr. 2020 à 12:59, arlogriffiths<EMAIL_ADDRESS>a écrit :
@chhomkunthea https://github.com/chhomkunthea : please react to this.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/erc-dharma/tfc-khmer-epigraphy/issues/13#issuecomment-616969995, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM4GVN5G7Y67PS4NNNUWGADRNUY5LANCNFSM4MFIM3PQ.


Is Brew Services supported again?

In the latest brew info postgresql, it tells me to use brew services to start postgresql, does this mean brew services is maintained by someone now?  Thanks!

Yep!


[Event additional Parameters] Codeunit 80 - Sales-Post - OnBeforePostResJnlLine

Dear ALAppExtensions team,
Through this issue we would like to request event publisher OnBeforePostResJnlLine of Codeunit 80 Sales-Post to get additional parameters. We therefore request the following signature:
    [IntegrationEvent(false, false)]
    procedure OnBeforePostResJnlLine(var SalesHeader: Record "Sales Header"; var SalesLine: Record "Sales Line"; var JobTaskSalesLine: Record "Sales Line"; DocNo : Code[20]; ExtDocNo : Code[35]; SourceCode : Code[10]; SalesShptHeader: Record "Sales Shipment Header"; ReturnRcptHeader: Record "Return Receipt Header"; var ResJnlPostLine: Codeunit "Res. Jnl.-Post Line"; var IsHandled: Boolean)
    begin
    end;

which would be called as follows from PostResJnlLine:
    local procedure PostResJnlLine(var SalesHeader: Record "Sales Header"; var SalesLine: Record "Sales Line"; var JobTaskSalesLine: Record "Sales Line")
    var
        ResJnlLine: Record "Res. Journal Line";
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforePostResJnlLine(SalesHeader, SalesLine, JobTaskSalesLine, GenJnlLineDocNo, GenJnlLineExtDocNo, SrcCode, SalesShptHeader,ReturnRcptHeader, ResJnlPostLine, IsHandled);
        if IsHandled then
            exit;

This will open the possibility to do some resource shipment posting.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Implement Bridge in playground in Vue3

https://github.com/threefoldtech/tfgrid-sdk-ts/issues/1015

I really like this one, maybe can we add some spaces in the left panel?
STELLAR -> should be Stellar
@ehab-hassan
Can we also make the icon on the left instead of being on a row of its won ?

when I entered a small amount, it says Amount cannot exceed balance. however, I have trillions.

@xmonader title fixed

when we update all at development I ll go through all cards and make sure that all icons and titles are in the same row Also, the color ll change to darker green

While mounting and loading grid for the user we should show him a loading circle also prevent him from closing the dialog unless the loading is done so we can remove destroyed property

While mounting and loading grid for the user we should show him a loading circle also prevent him from closing the dialog unless the loading is done so we can remove destroyed property

Loading circle while waiting for receiving tfts.

https://github.com/threefoldtech/tfgrid-sdk-ts/assets/54944491/719f3ddd-32dc-4494-8c14-6d8a14fd39a1

replace loading circle with text to make dialog looks better.

https://github.com/threefoldtech/tfgrid-sdk-ts/assets/54944491/04421f99-bacd-4c6b-bcb0-38c0f6d7b324


Working with Eloquent's lists() Method

Hey @dimsav, first thanks for this amazing package.
When I want to get translatable data with lists() I got "Fields couldn't find" errors. Code is here:
Category::lists('name', 'slug');

But I got data with this:
Category::all()->lists('name', 'slug');

But, this way couses a performance problem. First we get all lines, after select them. Is there any way to get data like first code?

@beratdogan the scope is coming in the next update.


Windows Github CI: test in Windows 2016 as well

This brings an older version of MSVC, which may bring some "interesting"
failures.
We also introduce the use of --strict-warnings

This brings our github CI setup to the same level of build control we had with appveyor, at least for building.
The reason I did this is because I noticed a build error in AppVeyor, and now we see it here too:
https://github.com/openssl/openssl/pull/15709/checks?check_run_id=2799325623#step:7:76

Something I find painful is that we can't currently use --strict-warnings with VC-WIN64A builds.  There are just too many warnings that we've ignored for ages (assuming they aren't actual errors)

Yep size_t casts :)

This PR is dependent on #15710 being merged.

#15710 got merged, so I'm rebasing this now

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Merged.


MUXF8 vivado compatibility

A number of fuzzers (and associated minitests) work on Vivado 2017.2 but are broken on Vivado 2017.3. A quick analysis shows its related to MUXF8.

Added some additional info to a minitest: https://github.com/SymbiFlow/prjxray/pull/19

More recent Vivado versions have more severe issues like renaming ports on LUT6_2. Given this and other minor changes that will cause a lot of maintenance issues without a huge impact on the success of this project, I'm going to declare this "won't fix" until we have a more specific reason to fix this.

I'm saying that I don't think its worth the effort. The return on investment is not good

Depends on if we want to support devices only in newer releases.

Just if anyone looks at this in the future. It also looks like the newest Vivado (2018.02) doesn't like some of the things we are doing with LUTs.
ERROR: [Opt 31-67] Problem: A LUT6 cell in the design is missing a connection on input pin I0, which is used by the LUT equation. This pin has either been left unconnected in the design or the connection was removed due to the trimming of unused logic. The LUT cell name is: roi/dos[0].lut.
Resolution: Please review the preceding OPT INFO messages that detail what has been trimmed in the design to determine if the removal of unused logic is causing this error. If opt_design is being specified directly, it will need to be rerun with opt_design -verbose to generate detailed INFO messages about trimming.

Right. Before it was a recommendation now it's a requirement. We should
fail maybe during settings.sh if a non complaint version is tried
On Fri, Jan 4, 2019, 9:21 AM Tim Ansell<EMAIL_ADDRESS>wrote:

Just if anyone looks at this in the future. It also looks like the newest
Vivado (2018.02) doesn't like some of the things we are doing with LUTs.
ERROR: [Opt 31-67] Problem: A LUT6 cell in the design is missing a connection on input pin I0, which is used by the LUT equation. This pin has either been left unconnected in the design or the connection was removed due to the trimming of unused logic. The LUT cell name is: roi/dos[0].lut.
Resolution: Please review the preceding OPT INFO messages that detail what has been trimmed in the design to determine if the removal of unused logic is causing this error. If opt_design is being specified directly, it will need to be rerun with opt_design -verbose to generate detailed INFO messages about trimming.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SymbiFlow/prjxray/issues/14#issuecomment-451381414,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AANj21bpiMQlOhH1wOW0LPwnbJjORgV1ks5u_w8JgaJpZM4RLVMT
.

Vivado 2017.2 is no longer even available for download. Could you please reconsider planning a fix for this issue? Especially with @daveshah1 's nextpnr-xilinx dependence on prjxray (which probably should not even be affected by the MUXF8 compatibility?)

@kammoh 2017.2 is available in the archive @ https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/archive.html
Vivado HLx 2017.2: WebPACK and Editions - Windows Self Extracting Web Installer
Vivado HLx 2017.2: WebPACK and Editions - Windows Self Extracting Web Installer
(EXE - 51.59 MB)
MD5 SUM Value : c0f1f42b33a39957d85b0d4548717f80
Vivado HLx 2017.2: WebPACK and Editions - Linux Self Extracting Web Installer (BIN - 85.24 MB)
MD5 SUM Value : eaee62b9dd33d97955dd77694ed1ba20
Vivado HLx 2017.2: All OS installer Single-File Download (TAR/GZIP - 22.13 GB)
MD5 SUM Value : 958f190a089ad3f39d327d972c7dcf35

We would welcome someone fixing the problem but it isn't a high priority for the current contributors.

Also, there are is pre-built output from this repo at https://github.com/SymbiFlow/prjxray-db

Just curious, can we delete the following instructions on the quick start page now? It appears to me that this issue has been addressed.

Why 2017.2? Currently the fuzzers only work on 2017.2, see Issue #14 on prjxray.
Is 2017.2 really required? Yes, only 2017.2 works. Until Issue #14 is solved, only 2017.2 works and will be supported.

@nalzok - I don't believe t

@nalzok -- I'm not sure why this issue ended up getting closed -- I don't believe the MUXF8 issue has been solved in the latest Vivado versions?

how does the error manifest? i was able to build clb-muxf8 on 2017.2, 2018.3 and 2021.1
a bitstream file was generated without error. didn't go anywhere beyond generating the bitstream.

why not define a custom LUT6_2 module that overrides the vivado module.
the problem seems to originate in the unisim transformations that automatically create a LUT5 and LUT6 for the LUT6_2 during synthesis. do this mapping manually and there is no problem with placement of the muxf8.

Hi,
There are several concerns about sticking to Vivado 2017.2:

availability of that particular release
impact on system libs necessary to have it still running in near future
support of newer fpga references
Willingly or not, support of Vivado > 2017.2 will have to come.

For the sake of adding support of new chips references,
it should be better to fuzz based on a slightly reduced set slice configs, than to forbid even trying that for reasons that are after all relatively tiny.
Three issues have been mentioned in this discussion.
Can I propose some candidate solutions and workarounds ?

The original muxf8 issue:
Would it be acceptable to add a small check in the fuzzers ? Only used for Vivado version > 2017.2, it would just check if muxf8 usage is acceptable for Vivado, and reject the generated design if not acceptable. Or, more generic behavior even though it would waste more computer time : in case Vivado crashes with error, just disregard that generated design and continue fuzzing.
The LUT input reordering : Vivado can be prevented to do that with an attribute on the LUT, such as DONT_TOUCH
The LUT input optimization when constant-driven : Similarly, attributes DONT_TOUCH should fix that behavior, but just in case I would recommend placing KEEP and DONT_TOUCH attribute on all primitives generated by the fuzzers. Just to keep in control of the design structure between before and after Vivado.

@marzoul - Someone needs to do the work to make sure that a stable prjxray-db can be produced on a newer version. If someone does that we can probably move everything to use a newer version.

@mithro - What is the indication of muxf8 failure? Is there a specific error expected?

Just if anyone looks at this in the future. It also looks like the newest Vivado (2018.02) doesn't like some of the things we are doing with LUTs.
ERROR: [Opt 31-67] Problem: A LUT6 cell in the design is missing a connection on input pin I0, which is used by the LUT equation. This pin has either been left unconnected in the design or the connection was removed due to the trimming of unused logic. The LUT cell name is: roi/dos[0].lut.

I was recently doing some testing related to #1794 using Vivado 2021.1 (running only fuzzers for xc7k325) and I did not observe any errors similar to what is shown above. What other clues might exist for the muxf8 issue or could it not appear until very late in the fuzzing process?

why not define a custom LUT6_2 module that overrides the vivado module.
the problem seems to originate in the unisim transformations that automatically create a LUT5 and LUT6 for the LUT6_2 during synthesis. do this mapping manually and there is no problem with placement of the muxf8.

This seems like a clever / clean solution @bunker-bunk567 , any chance you can elaborate a bit more on how to do this?

i am backpaddling on that statement. i looked at the problem a bit longer and ran into obstacles. my memory is fading, but i think i came to the conclusion that it might be best to not have a test that requires 6 inputs and 2 outputs at the same time. a 5-input/2-output and a 6-input/1-output set of separate tests should have identical coverage.
maybe there is a way to work around it, but vivado was stubborn with great endurance about this. i threw maybe half a dozen tricks at the problem and all failed.

Any updates ?


Stateful auto compaction

Motivation
In auto compaction, the coordinator searches for segments to compact based on their byte size. This algorithm is currently a stateless algorithm. At each coordinator run, it traverses all segments of all datasources from the latest one to the oldest one, compares their size against targetCompactionSizeBytes (this is currently missing which causes #8481), and issues a compaction task if it finds some segments smaller than targetCompactionSizeBytes.
However, only comparing the segment size against targetCompactionSizeBytes is not enough to tell that a given segment requires a further compaction or not because the segment could be created with various types of partitionsSpec and later compacted with one of them. (As of now, auto compaction supports only maxRowsPerSegment, maxTotalRows, and targetCompactionSizeBytes, but it should support all partitionsSpec types in the future.)
As of now, we have 3 partitionsSpec, i.e., DynamicPartitionsSpec, HashedPartitionsSpec, and SingleDimensionPartitionsSpec.

DynamicPartitionsSpec has maxRowsPerSegment, and maxTotalRows.
HashedPartitionsSpec has targetPartitionSize (target number of rows per segment), numShards, and partitionDimensions.
SingleDimensionPartitionsSpec has targetPartitionSize (target number of rows per segment), maxPartitionSize (max number of rows per segment), partitionDimensions.

In the coordinator, most of these configurations are not easy to use to search for segments which need compaction because the number of rows in each segment is not available in the coordinator. And even if we had that in the coordinator, hash or range partitioned segments could have totally different number of rows from targetPartitionSize, which makes hard to tell a given segment needs compaction or not. Note that a segment doesn't need further compaction if it's already compacted with the same partitionsSpec. Auto compaction based on parallel indexing can also make things complicated. In parallel indexing with DynamicPartitionsSpec, the last segment created by each task can have rows less than maxRowsPerSegment.
Proposed changes
To address this issue, I propose to store the state of auto compaction in the metadata store, so that auto compaction can search for compaction candidates from the segments which are not compacted yet.
DataSegment change
A new compactionPartitionsSpec will be added to DataSegment. compactionPartitionsSpec will be filled in only the coordinator.
public class DataSegment
{
  private final Integer binaryVersion;
  private final SegmentId id;
  @Nullable
  private final Map<String, Object> loadSpec;
  private final List<String> dimensions;
  private final List<String> metrics;
  private final ShardSpec shardSpec;
  @Nullable
  private final PartitionsSpec compactionPartitionsSpec;
  private final long size;
}

Changes in publishing segments
When a compaction task creates segments, it can add its partitionsSpec to them (Appenderator.add()). Other task types don't add it.
Changes in the coordinator
SQLMetadataSegmentManager loads DataSegment and keeps them in memory same as now. Since PartitionsSpec is not very diverse in general, interning would be useful to reduce memory usage.
DruidCoordinatorSegmentCompactor checks that the compactionPartitionsSpec is available for a given segment. If it's missing, that segment should be a new segment created by a non-compaction task, which means it will be a compaction candidate. If it exists, the coordinator compares the compactionPartitionsSpec with the partitionsSpec in auto compaction configuration. The segment will be a compaction candidate if it has a different partitionsSpec.
Rationale
Dropped alternative
The coordinator can get the number of rows of each segment from the system schema to find the compaction candidates. However, as mentioned in the motivation section, number of rows is not enough to determine that a given segment needs a compaction or not.
Operational impact
There should be no operational impact.
Test plan

Will add unit tests
Will test in our internal cluster

Future work
In DataSegment, similar to compactionPartitionsSpec, there are a couple of fields which are loaded only in some particular places; they are null or some default value elsewhere. But, even when they are null or default, they will still use 8 more bytes per segment. I think it would probably be worth to split DataSegment into several classes, so that only necessary fields are loaded to reduce memory usage.

just trying to wrap my head around compaction, I have few questions, it has evolved alot :)

Does coordinator auto compaction always do "minor compaction" ( described in https://github.com/apache/incubator-druid/issues/7491 )?
Same CompactionTask is used for both "minor" as well as "major" compaction. It is major compaction when either of "interval" or "segmentGranularity" fields are explicitly provided ?

If it exists, the coordinator compares the compactionPartitionsSpec that partitionsSpec in auto compaction configuration. The segment will be a compaction candidate if it has a different partitionsSpec.

or else auto/minor compaction would produce exactly same result because it doesn't change segmentGranularity... right ?

@himanshug thank you for taking a look!

Does coordinator auto compaction always do "minor compaction" ( described in #7491 )?

For now, auto compaction doesn't support minor compaction. You can do minor compaction with the compaction task by setting forceGuaranteedRollup.
The future plan I'm thinking of is supporting both minor and major compaction in auto compaction. Like, it will do minor compaction for recent segments while doing major compaction for old ones. There are a couple reasons why we still need major compaction. One reason could be, we can do secondary partitioning with major compaction which could accelerate query performance by further pruning segments.

Same CompactionTask is used for both "minor" as well as "major" compaction. It is major compaction when either of "interval" or "segmentGranularity" fields are explicitly provided ?

Good question. It is the major compaction if 1) forceGuaranteedRollup is true or 2) segmentGranularity is provided explicitly. The second condition should actually be "if the provided segment granularity is different from that of input segments". But I was lazy to implement it in #7547..

If it exists, the coordinator compares the compactionPartitionsSpec with the partitionsSpec in auto compaction configuration. The segment will be a compaction candidate if it has a different partitionsSpec.

or else auto/minor compaction would produce exactly same result because it doesn't change segmentGranularity... right ?

You mean if the compaction task has the exactly same tuningConfig? Then I think yes.

You mean if the compaction task has the exactly same tuningConfig? Then I think yes.

I see, but then why segment is not candidate for compaction when it has same partitionSpec .. if tuningConfig is different then it could still produce different result, no ?
Thanks for clarifications around major/minor compaction. I think confusion arises because there is no trace of major/minor compaction in the code. Do you think it makes sense to create two new classes , MajorCompactionTask and MinorCompactionTask , both extend CompactionTask but automatically have conditions/restrictions, you noted, taken care of . Then it will be very easy to see from code what type of compaction is happening in a certain situation.
I totally recognize the need for major compaction as ,I think, minor compaction is limited to compact segments in same partition set (i.e. segments with same dataSource, interval and version) only.

I see, but then why segment is not candidate for compaction when it has same partitionSpec .. if tuningConfig is different then it could still produce different result, no ?

That's a good point! I just checked IndexTuningConfig and ParallelIndexTuningConfig and it looks like only partitionsSpec and indexSpec can change the result. forceGuaranteedRollup can also change the result but it requires to use HashedPartitionsSpec or SingleDimensionPartitionsSpec. (Perhaps we can just remove forceGuaranteedRollup and use only partitionsSpec.) It means, probably indexSpec also needs to be stored for stateful auto compaction.

Thanks for clarifications around major/minor compaction. I think confusion arises because there is no trace of major/minor compaction in the code. Do you think it makes sense to create two new classes , MajorCompactionTask and MinorCompactionTask , both extend CompactionTask but automatically have conditions/restrictions, you noted, taken care of . Then it will be very easy to see from code what type of compaction is happening in a certain situation.

Hmm, yes it sounds good to me. For now, MinorCompactionTask needs to use DynamicPartitionsSpec in tuningConfig and forceTimeChunkLock = false in its context (I forgot to mention the task context thing earlier). But in the future, I think it might be useful to support all kinds of partitionsSpec for minor compaction as well. Like, you may want to do range-based partitioning for published segments while new stream data is coming into the same time chunk to take advantage of the segment pruning at query time.

I totally recognize the need for major compaction as ,I think, minor compaction is limited to compact segments in same partition set (i.e. segments with same dataSource, interval and version) only.

That's also correct. Minor compaction can compact only the segments in the same time chunk.


Error: (stanza 0 0) Failed to decrypt YubiKey stanza

Environment

OS: NixOS
rage version: rage 0.9.1

What were you trying to do
I'm trying to use rage with age-plugin-yubikey.
What happened
# create the identity file; It'll be stored as `yubikey-identity.txt`
age-plugin-yubikey
# create a test file
echo "test" > test.txt
# encrypt and try to decrypt the file.
cat test.txt | rage -r age1yubikey1qgtar0k2elwymtm92ws84zpw2c3ehalxwj8cnevf7lunnva7l8xju03lfl5 -o test.age
# this one fails:
cat test.age | rage -d -i yubikey-identity.txt

The error message if I'm trying to decrypt:
Waiting for age-plugin-yubikey...
Error: (stanza 0 0) Failed to decrypt YubiKey stanza

[ Did rage not do what you expected? Could an error be more useful? ]
[ Tell us: https://str4d.xyz/rage/report

I also created an issue in age-plugin-yubikey (I'm unsure in which repository I should open this issue): https://github.com/str4d/age-plugin-yubikey/issues/150

Ok, I found the solution: I needed to press on my yubikey.


File naming change for issue #48

Here is the re-done function like in the issue  #48 .
Tests were done with local storage and s3 storage backend.
Example of uploaded files:
./netbox-attachments
./netbox-attachments/device
./netbox-attachments/device/1
./netbox-attachments/device/1/tarife_de.pdf
./netbox-attachments/device/1/test.pdf
./netbox-attachments/device/1/abc.pdf

This PR is the solution if you want to go the "easy" way and not store additional metadata of the files in the DB. As i never worked with Django DB migrations i could not help you with the other way,.

Closed by #51


Pseudo-elements don't update with changes to the DOM

Any time the DOM changes (viewport resizes or zooms; sidebar is collapsed or expanded) the pseudo-elements that contain the noise and gradient texture overlays don't update their sizes and locations accordingly.
Workaround: refresh the page.

Fixed in https://github.com/th3jesta/ha-lcars/commit/d3f56ae99ba5f72a30c67dcd2891d68bb57a52fe


style(workspace): fix typo

Fix a small typo in an information message.

:tada: This PR is included in version 1.5.2 :tada:
The release is available on:

Visual Studio Marketplace
GitHub release

Your semantic-release bot :package::rocket:


SSH connection without SSH-agent

I'm having an issue connecting to git repository over ssh on windows, where I don't have an SSH agent running.
In ssh/common.go, the command.connect method calls c.setAuthFromEndpoint() which in turn tries to connect with SSH agent and fails. The method's comments note:
connect connects to the SSH server, unless a AuthMethod was set with
SetAuth method...

but for me, that does not work. Here is a brief program that reproduces this issue:
func main() {
	repoURL := "ssh://git@hostname:portnum/testing.git"
	signer := getSSHSigner()
	r := git.NewMemoryRepository()
	err := r.Clone(&git.CloneOptions{
		URL:  repoURL,
		Auth: &gitssh.PublicKeys{User: "git", Signer: signer},
	})
	check(err)
}

The error returned is dial unix: missing address, which is correct (in a way), since there is no SSH agent environment variable available, so there's nowhere to connect to. The getSigner function above retrieves the ssh.Signer from a private key, supplied to the program.
I can prepare a pull request with a fix, if you'd like that; it seems to me, that we would need to reorganise some code, as currently, Auth does not get propagated down to the actual transport layer.

I have the same problem as @skyflyer (on linux where I don't want to use the ssh-agent but pass in a privatekey).

Exactly the CloneOptions.Auth field is totally unused, the only viable method to provide an auth config right now is using the endpoint and this is not enough or valid. We will find a solution in the next days.

I've been trying to find a way to implement this and it seems tricky without changing the interfaces significantly.
The general flow for transport/http interface is: create the session using NewFetchPackSession (which basically initializes a struct with an http.Client), optionally call session.SetAuth(auth) if needed, and call FetchPack() to execute the actual network connections.
The above flow works great because the initialization doesn't perform any network activity and it follows the Session interface in transport/common.go. The general flow for the transport/ssh interface is: create the session and Dial the SSH server using SSH agent for authentication and call FetchPack() to read from stdin/stdout.
I think the SSH transport needs to be broken out so that network connectivity happens during FetchPack() instead of in the session init, however, this is a rather large modification to the architecture.
I'm keen to get this issue fixed (I've got a temporary hack locally because I need SSH keys). Happy to help with discussion / design / code if possible.

This is fixed now, thanks to @amlweems!

hey guys, is it possible to use deploy-key only for verification? I don't want to use ssh-agent.
signer, err := ssh.ParsePrivateKey([]byte(sshKey))
	auth := &sshGit.PublicKeys{User: "git", Signer: signer}
	_, err = git.PlainClone(Destination, false, &git.CloneOptions{URL: repo, Auth: auth})
	if err != nil {
		log.Printf("unable to clone repo %v", err)
	}


Document how OrdinaryDiffEq.jl is built on

Codecov Report

Merging #176 (515fe9b) into main (7a287cf) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #176   +/-   ##
=======================================
  Coverage   90.28%   90.28%
=======================================
  Files          24       24
  Lines         947      947
=======================================
  Hits          855      855
  Misses         92       92

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add Character Customization

Add a character customization screen
Screen should allow player to change at least head, chest, and legs.
Also add setting to display backpack or armor on model or not
Model should be used in Player scene going forward.

Leaning into the PSX approach of having different meshes for each bodypart would probably make this easier.
1 part -> 1 bone mapping


Why does capslock = home; alt+capslock = end not bind end?

This isn't really a "problem" since I've solved it, but it's unintuitive to me so I'm just seeking knowledge.  Under my understanding, this config should bind home to capslock and end to alt+capslock.
[ids]
*
[main]
capslock = home
alt+capslock = end

However, it doesn't bind end; I get alt+home out of keyd monitor.  Instead I have to do this.
[ids]
*
[main]
alt = layer(alt_capslock_is_end)
capslock = home

[alt_capslock_is_end:A]
capslock = end

It makes sense to me why this latter version works, but I'm just interested to know why the first shouldn't.

What you need to do is this:
[main]
capslock = home

[alt]
capslock = end

The reason why alt+capslock does not work is because it is a chord, that is, it only gets activated when alt (or leftalt) and capslock are struck simultaneously, whereas binding capslock in the alt layer means that it gets activated anytime you press capslock while holding down a key that activates the alt layer.

Ah I see, thank you very much; this makes sense.


Fixed some warnings found with Cppcheck

These are by no means all of them, there where a lot of other type of warns about no explicit constructors, uninitialized variables in the constructor, and C-style casts. But I don't know which are intentional or not, so I chose to fix the ones that were clearly mistakes:

Removed a overriding variable that doesn't seem to have any purpose in rich_text_label.
Removed a unused struct in split_container.
Removed various pointless variable assignments.
Reduced various scopes.

Thanks!


virus

its a virus

its not a virus

its not a virus

No, its not a virus and the project is out of date.


Add tests

Description
Initial sample of a component test. I would like to add tests to all components step by step. What do you think @langehm ?
If you support this I would open an issue to track the progress.
Reference
not yet available

further progress will be tracked in https://github.com/it-at-m/muc-patternlab-vue/issues/326


Compiling with C++, Problem on FreeBSD : "<JavaScriptCore/JavaScript.h> no such file or directory"

Hello, i am try to build and run my application made with webview.h
I am using this command for compiling project :
g++ main.cpp -std=c++11 -DWEBVIEW_GTK=1 pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0-lX11 -lstdc++fs -o main
But i got this error  "<JavaScriptCore/JavaScript.h> no such file or directory"
I can see the javascript.h under  /usr/local/include/webkitgtk-4.0/JavaScriptCore/
But compiler gives error.
I installed these packages in freebsd package manager :
pkg install gtk3.0
pkg install webkit2-gtk3

(i also installed X11 or another things)
I can build and run project in debian distributions but it seems does not work in freebsd.
Is there any solution ?

Maybe you need to install the development version of those libraries? I don't know much about FreeBSD's packaging scheme.

2020-10-14 23:16, Josias yazmış:

Maybe you need to install the development version of those libraries?
I don't know much about FreeBSD's packaging scheme.
--
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub [1], or unsubscribe
[2].
Links:
[1]
https://github.com/webview/webview/issues/484#issuecomment-708636220
[2]
https://github.com/notifications/unsubscribe-auth/AIAZ72WLSQPJWZNHURS4WCLSKYBJFANCNFSM4SOQLNPQ

Thank you for your reply Joias,
there is a bad luck for freebsd.
I read about some versions of BSD does not support pkg-config port as
expected.
I fixed this problem
I solved the problem by adding the all dependency package libraries as
-I directory and it works.
In that case "pkg-config" recursive scanning will not working.

Thank you for your reply,
there is a bad luck for freebsd.
I read about some versions of BSD does not support pkg-config port as expected.
I solved the problem by adding the all dependency package libraries as -I directory and it works.
In that case "pkg-config" recursive scanning will not working.


add toss to the organizations using Pinpoint

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

Thanks a lot for sharing it with us. :)


fix: synthetic events creation right before marking an import as fini…

This PR adds synthetic event (project.planningUnits.finished/v1/alpha) for cloned projects
Feature relevant tickets
cannot create new scenarios in a project cloned from published project

Sure! 👍


Handle *ast.InterfaceType as any type (no type)

Describe the PR
Allow defining models with interface{} type of fields
Additional context
Interface type meaning any type (or no type) in swagger terms:
https://swagger.io/docs/specification/data-models/data-types/#any
If you ready to accept changes I'll write some tests for that

LGTM

@ViktorPegy is this related to any open issue? If yes, please edit the PR and add the reference.
Unfortunately, I don't see the CI running the code tests so I can't tell you at this time if we can accept or refuse it.
Kindly please do another commit in order to trigger the CI and I will try to take a look at it ASAP.

https://github.com/swaggo/swag/issues/850
https://github.com/swaggo/swag/issues/853

@rizalgowandy, the tests are failing on https://github.com/ViktorPegy/swag, and @ViktorPegy doesn't seem to be available to update the PR.

He has archived his repository.
Kinda need to recommit his code.
This repository has been archived by the owner. It is now read-only.

Is this PR going to be merged anytime soon?  I am having to update to go 1.17 and this issue is blocking me from doing so.  If not, I guess I will be forced to have incomplete docs.  Thanks!

Unfortunately, there is no way we can merge this PR due to its conflicts and missing CI results.

It looked pretty simple and straight forward, can it not be recreated?
On a side note, I was able to resolve my critical issue by adding the
"--parseDependency" option to my swag init call in our CI/CD script, but
would be nice to see this fixed.  Thanks for the reply!
On Tue, Aug 24, 2021, 5:06 PM Bogdan U @.***> wrote:

Unfortunately, there is no way we can merge this PR due to its conflicts
and missing CI results.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/swaggo/swag/pull/884#issuecomment-904974217, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH5DI7RNK2YH7ONTCOHMC3T6QCUZANCNFSM4XU7FAIA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

Closing reason: Outdated.
An rework regarding this can be found here #988

The feature was implemented and will be released in v1.7.2.


Presence of a non-optional shutdown hook messes up with shutdown sequence

Related somewhat  to #213. I have an application that properly manages component dependencies, including the order of initialisation and shutdown. pi4j context is just another component in the app that is initialised before it's used by other components, and is shut down via Context.shutdown() (which shuts down the Runtime) just after all the components that use it have already shut down.
However, DefaultRuntime adds a shutdown hook that is executed concurrently with my application shutdown sequence and obliterates the context before the components that use pi4j are stopped, causing exceptions (example is below, but it does not matter).
I think a component based library that has clear start/stop points (which pi4j does) should not unconditionally start shutting itself down. I agree it's useful for apps don't care about shutdown sequences or exceptions, but for more organised apps like mine it would be very useful to make the shutdown hook optional.
I can raise a PR, possibly by adding a property that disables it so that a user could do:
newContextBuilder().autoDetect().property("noShutdownHook", "true").build()

, but please recommend the best way of doing this.
2024-07-29T18:57:10,352 ERROR [Thread-8] n.y.a.d.p.Ads1115 Uncaught exception in continuous reading thread
com.pi4j.exception.Pi4JException: Failed to execute action for device 72 on bus 1
        at com.pi4j.io.i2c.I2CBusBase._execute(I2CBusBase.java:57) ~[automator.jar:?]
        at com.pi4j.plugin.linuxfs.provider.i2c.LinuxFsI2CBus.executeIOCTL(LinuxFsI2CBus.java:84) ~[automator.jar:?]
        at com.pi4j.plugin.linuxfs.provider.i2c.LinuxFsI2C.readRegister(LinuxFsI2C.java:311) ~[automator.jar:?]
        at com.pi4j.plugin.linuxfs.provider.i2c.LinuxFsI2C.readRegister(LinuxFsI2C.java:173) ~[automator.jar:?]
        at com.pi4j.io.i2c.I2CRegisterDataReader.readRegister(I2CRegisterDataReader.java:206) ~[automator.jar:?]
        at com.pi4j.io.i2c.I2CRegisterDataReader.readRegister(I2CRegisterDataReader.java:220) ~[automator.jar:?]
        at com.pi4j.io.i2c.I2CRegisterDataReader.readRegisterWord(I2CRegisterDataReader.java:706) ~[automator.jar:?]
        at net.yudichev.automator.devices.pi4j.I2CDevice.readRegister(I2CDevice.java:43) ~[automator.jar:?]
        at net.yudichev.automator.devices.pi4j.Ads1115.readSingleValue(Ads1115.java:199) ~[automator.jar:?]
        at net.yudichev.automator.devices.pi4j.Ads1115.lambda$readAllChannels$0(Ads1115.java:228) ~[automator.jar:?]
        at java.util.HashMap.forEach(HashMap.java:1429) ~[?:?]
        at net.yudichev.automator.devices.pi4j.Ads1115.lambda$readAllChannels$1(Ads1115.java:226) ~[automator.jar:?]
        at java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: com.pi4j.exception.Pi4JException: Failed to execute ioctl for device 72 on bus 1
        at com.pi4j.plugin.linuxfs.provider.i2c.LinuxFsI2CBus.lambda$executeIOCTL$2(LinuxFsI2CBus.java:91) ~[automator.jar:?]
        at com.pi4j.io.i2c.I2CBusBase._execute(I2CBusBase.java:44) ~[automator.jar:?]
        ... 12 more
Caused by: java.io.IOException: failed to get POSIX file descriptor!
        at com.pi4j.library.linuxfs.LinuxFile.getPosixFD(LinuxFile.java:197) ~[automator.jar:?]
        at com.pi4j.library.linuxfs.LinuxFile.ioctl(LinuxFile.java:167) ~[automator.jar:?]
        at com.pi4j.plugin.linuxfs.provider.i2c.LinuxFsI2CBus.lambda$executeIOCTL$2(LinuxFsI2CBus.java:87) ~[automator.jar:?]
        at com.pi4j.io.i2c.I2CBusBase._execute(I2CBusBase.java:44) ~[automator.jar:?]
        ... 12 more

I'm not quite sure I'm following. Pi4j only stops everything, when shutdown is called. Maybe you are just calling it too soon? Do you have a more detailed example of how you are managing pi4j's lifecycle?

@eitch

Pi4j only stops everything, when shutdown is called.

So intuitively it should, but unfortunately this is not the case. As you can see, the DefaultRuntime installs a global JVM shutdown hook and shuts the context down when that hook fires. As a result:

The JVM receives SIGTERM - this initiates JVM shutdown which calls all JVM shutdown hooks in unspecified order.
My application's shutdown hook is fired, application starts stopping its services
At the same time, concurrently and in unspecified order, the pi4j shutdown hook is fired, shutting down the pi4j context.
The shutdown sequence reaches the service that uses pi4j too late - this service manages to still invoke a few methods like reading from the I2C bus seen in the stack trace I posted. But because (3) has already shut down pi4j, it results in exceptions.
The shutdown sequence closes all components that use pi4j
The shutdown sequence now calls pi4j context's shutdown(), however it does nothing as it's already been called by (3)

My point is that the global shutdown hook that you can't turn off is not a good idea to have in a library, because the application that uses the library loses full control of the shutdown sequence.
Hope this is clear.

The workaround for this is to register a pi4j shutdown listener and block the pi4j shutdown until all the components that use it have shut down:
final class Pi4jContextProvider extends BaseLifecycleComponent implements Provider<Context> {
    private static final Logger logger = LoggerFactory.getLogger(Pi4jContextProvider.class);

    private final CountDownLatch shutdownBlocker = new CountDownLatch(1);
    private Context gpio;

    @Override
    public Context get() {
        return whenStartedAndNotLifecycling(() -> gpio);
    }

    @Override
    public void doStart() {
        gpio = Pi4J.newAutoContext();
        // TODO this is a workaround for https://github.com/Pi4J/pi4j-v2/issues/371 - remove when fixed
        gpio.addListener(new ShutdownListener() {
            @Override
            public void beforeShutdown(ShutdownEvent event) {
                logger.debug("Blocking pi4j shutdown until this component is closed");
                asUnchecked(() -> {
                    var stopTriggered = shutdownBlocker.await(1, MINUTES);
                    if (stopTriggered) {
                        logger.debug("Stopping - pi4j shutdown released");
                    } else {
                        logger.warn("Timed out waiting for this component to be stopped");
                    }
                });
            }

            @Override
            public void onShutdown(ShutdownEvent event) {
            }
        });
    }

    @Override
    protected void doStop() {
        logger.debug("Releasing pi4j shutdown gate and shutting down pi4j");
        shutdownBlocker.countDown();
        gpio.shutdown();
    }
}

Hi @ylexus
How about this: https://github.com/Pi4J/pi4j-v2/pull/372
You can now simply disable the shutdown hook using this:
Pi4J.newContextBuilder().autoDetect().disableShutdownHook().build();

I never really realized, that pi4j add this shutdown hook, all my test apps, which are simple console apps, etc. add their own shutdown hook to shutdown pi4j. Apps should really control the life cycle, not the library, i totally agree.

not the library

what should be the default then?

Hi @ylexus
How about this: https://github.com/Pi4J/pi4j-v2/pull/372
You can now simply disable the shutdown hook using this:
Pi4J.newContextBuilder().autoDetect().disableShutdownHook().build();

Yes that would totally work, thanks. This is exactly what I asked.

@eitch been a long time without releases - time to do one maybe?


common: fix empty templates exception

(Copied from https://github.com/helm/helm/issues/4495)
In many of the docs of the common chart, the documentation suggest using the templates as follows, because everything is taken care of in the common package directly :
{{- template "common.persistentvolumeclaim" (list . "pypicloud.persistentvolumeclaim") -}}
{{- define "pypicloud.persistentvolumeclaim" -}}
{{- end -}}

However, doing this will make the chart impossible to render, raising the following error Error: rendering template failed: assignment to entry in nil map.
I have found that by overriding a known key is enough to overcome the error. I found the best to just override the metadata.name with the common template.
{{- template "common.persistentvolumeclaim" (list . "pypicloud.persistentvolumeclaim") -}}
{{- define "pypicloud.persistentvolumeclaim" -}}
metadata:
  name: {{template "common.fullname" .}}
{{- end -}}

If using helmsman, an error to render the template will throw an error like the following:
2018/08/20 00:27:07 INFO: namespace validation -- Tiller is desired to be deployed WITHOUT TLS in namespace [ kube-system ].
2018/08/20 00:27:07 INFO: namespace validation -- Tiller is desired to be deployed WITHOUT TLS in namespace [ javier-domingo ].
2018/08/20 00:27:07 WARN: I could not create namespace [kube-system ]. It already exists. I am skipping this.
2018/08/20 00:27:08 WARN: I could not create namespace [javier-domingo ]. It already exists. I am skipping this.
2018/08/20 00:27:08 INFO: deploying Tiller in namespace [ kube-system ].
2018/08/20 00:27:09 INFO: deploying Tiller in namespace [ javier-domingo ].
2018/08/20 00:27:20 INFO: checking what I need to do for your charts ...
2018/08/20 00:27:20 INFO: mapping the current helm state ...
2018/08/20 00:27:22 INFO: checking if any Helmsman managed releases are no longer tracked by your desired state ...
2018/08/20 00:27:23 INFO: no untracked releases found.
2018/08/20 00:27:23 INFO: sorting the commands in the plan based on priorities (order flags) ...
----------------------
2018/08/20 00:27:23 INFO: Plan generated at: Sun Aug 19 2018 23:27:20
DECISION: release [ pypicloud-javier ] is desired to be enabled and is currently enabled.I will upgrade it in case you changed your values.yaml! -- priority: 0
2018/08/20 00:27:23 INFO: sorting the commands in the plan based on priorities (order flags) ...
2018/08/20 00:27:23 INFO: Executing the plan ...
2018/08/20 00:27:24 Command returned with exit code: . And error message: Error: UPGRADE FAILED: cannot re-use a name that is still in use

This PR fixes these situations by adding an empty dict as default value, so that common package README instruction can be followed.

/check-cla

I have found that saying something like
{{- template "common.persistentvolumeclaim" (list . "pypicloud.persistentvolumeclaim") -}}
{{- define "pypicloud.persistentvolumeclaim" -}}
{}
{{- end -}}

is enough to satisfy the chart without having to specify any keys. It's not exactly optimal, though.

Oh, that's a nice trick, thanks!

@mattfarina can we push this forward somehow?

/ok-to-test

@txomon please rebase and bump the chart/app version

@cpanato done!

/lgtm

/assign @foxish

Guys, can you merge?
On Sun, Oct 7, 2018, 12:04 stale[bot]<EMAIL_ADDRESS>wrote:

This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Any
further update will cause the issue/pull request to no longer be considered
stale. Thank you for your contributions.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/helm/charts/pull/7261#issuecomment-427640904, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAN7mmtaqeBYjVcBxImf9TzjJN5A7xmJks5uidGygaJpZM4WD-Qs
.

can you take a look @davidkarlsen ? thanks!

guys.... this is ridiculous.... it's one line patch....

/approve
Sorry for the delay! Didn't notice. Too many PRs to cope with


Bitcoin Cash branding.

Fetch mempool size and update UI
Bring branding in line w/ BitcoinCash.org's branding guidelines

@GitCash tip 128256 satoshis to @cgcardona

Hey cgcardona, user SpendBCH tipped you 1282 bits in Bitcoin Cash ( ~ $0.9337 ).
Click here to claim it!
You can also add the :-1: reaction to SpendBCH's comment above to prevent future tips.


test: key features (retrospective)

test cases:

[x] HELPER: no duplicate pokemons generated
[ ] APP: score increments if pokemon has not been chosen before
[ ] HEADER: if score is a new high score, the high score increases to that (current) score
[ ] HEADER/APP: if score is less than existing high score, as correct cards are chosen, high score does not change
[ ] APP: score resets to zero if pokemon has been chosen before, alert shown
[ ] USE-ALL-POKEMON HOOK: (#17) - if any (even 1) of the pokemons are in "loading" state, then the loading screen is shown, even if every other Pokemon has been loaded (#12)
[x] CARD: not clickable when cards are still loading (#10)

NB: new features from here will have their tests as part of those features

Running into some challenges mocking the API call(s) from the useAllPokemon() hook to test it. Initial state can have expect statements, but I'm not sure how to actually test

whether the correct data is returned
whether the loading state is set correctly,
whether errors are handled correctly

closing ticket - subtasks will be handled in their own tickets


Reduce allocations in Tree::flatten()

Initial draft for eliminating allocations in Tree::flatten.
Warning: this code is untested so far.
Fixes #1795

Here is a recursive alternative that just requires one Vec:
    pub fn flatten(&'a self) -> Vec<&'a Self> {
        fn visit<'a>(this: &'a Tree<'a>, res: &mut Vec<&'a Tree<'a>>) {
            res.push(this);

            for child in this.nested.values() {
                visit(child, res);
            }
        }

        let mut res = Vec::new();
        visit(self, &mut res);
        res
    }```

Thanks! I'd be interested to see the difference in performance before accepting an alternative.

Note that I haven't actually measured flatten and it may be negligible to begin with in which case the simplest implementation would probably be best. I'd just prefer to return an iterator on principle. 😏

Thanks! I'd be interested to see the difference in performance before accepting an alternative.

 As I am unfamilar on how the API is used, before doing performance testing I'd require some real world data. It would be very helpful If someone could export the biggest flattened list of namespaces so I can conduct some performance testing.

Note that I haven't actually measured flatten and it may be negligible to begin with in which case the simplest implementation would probably be best. I'd just prefer to return an iterator on principle. 😏

The question is, how many namespaces are there in total? It's probably relatively small to begin with, but considering Windows' large API surface I wouldn't be surprised if it is very large. Yeah I must admit the current approach is "elegant" in a way and probably easier to maintain and update.

You can test it as follows:
https://github.com/microsoft/windows-rs/blob/75260cab4c2acc3b6c8f3a767ec5fdf9c82e2d89/crates/tools/windows/src/main.rs#L11-L15

I've added a criterion benchmark to the branch and tested all three variations:

flatten_master - current upstream solution
flatten_iterative - the Iterative approach
flatten_recursive - the recursive approach

Results:
flatten/flatten_master  time:   [61.644 us 62.214 us 63.127 us]
Found 11 outliers among 100 measurements (11.00%)
  2 (2.00%) high mild
  9 (9.00%) high severe
flatten/flatten_iterative
                        time:   [5.7593 us 5.8906 us 6.0513 us]
Found 12 outliers among 100 measurements (12.00%)
  3 (3.00%) high mild
  9 (9.00%) high severe
flatten/flatten_recursive
                        time:   [4.9838 us 5.0445 us 5.1263 us]
Found 13 outliers among 100 measurements (13.00%)
  8 (8.00%) high mild
  5 (5.00%) high severe

VIsualization:

Thanks for taking a look - based on the results it isn't worth fixing and we should just remove the comment and move on. 😃


[docs-only] update storage docs

some doc fixes and clarification for storage drivers related to https://github.com/owncloud/ocis/issues/4638

Adding myself to see what / how we can use this in the admin docs