plugin can't handle volumes in docker-compose v2

We successfully used the plugin for nfs mounts with docker volume create, followed by docker run -v.
However with docker-compose we ran into a problem (http://jbu.io/2015/10/23/mount-nfs-efs-or-cifssamba-volumes-in-docker/#comment-2584967532).
As far as I understand we have the follwing problem: Given this docker-compose.yml file in a projectdir test:
version: '2'

volumes:
  data:
    driver: nfs

services:
  some_service:
    image: my_image
    volumes:
      - data:/mnt

docker-compose asks the plugin to create a volume test_data which in turn tries to mount something from a host test_data (which of course does not exist).
Solution would be to add a driver option to be used as follows
volumes:
  data:
    driver: nfs
      driver_opts:
        share: my.nfs.host:/path/to/share

Thus the plugin knows that the requested volume with name test_data refers to a share my.nfs.host:/path/to/share to be mounted under /var/lib/docker-volumes/netshare/nfs/my.nfs.host/path/to/share.
This way we are even compatible with mixed docker-compose and pure docker client runs.
BTW: an in advance docker volume created volume can be used the following way
volumes:
  data:
    external:
      name: my.nfs.host/path/to/share

So instead my proposed option share: my.nfs.host:/path/to/share you might implement name: my.nfs.host/path/to/share

Maybe you got my proposal wrong since you tagged it "Blocked - 3rd Party". This is something you could do with w/o any changes to docker-compose. Should I explain in more detail?

Yes, please ellaborate

Okay, let's do it. Actually I have two proposal: one workaround and the other is something to be implemented in docker-volume-netshare.
Workaround: How to mount a nfs share with docker-volume-netshare in a docker-compose env
[ I just write this down as an example on how to use it ]
First mount a share with
docker volume create -d nfs  --name my.nfs.host/path/to/share
Then in your compose file you can use this share as follows
volumes:
  data:
    external:
      name: my.nfs.host/path/to/share

[ this is from scratch but I tested it before ]
disadvantage: you have to provide the share externally .
usage of existing docker-compose file syntax
A volume in a docker-compose file you can provide a driver and driver_opts. Th einteresting part is driver_opts. As Those options are driver-dependent I'd expect, that docker-compose forwwards those otions to docker daemon and docker daemon in turn would forward it to the driver(like --optof docker volume).
Thus I think it is possible to specif the following as a docker-compose file:
volumes:
  data:
    driver: nfs
      driver_opts:
        share: my.nfs.host:/path/to/share

I'd expect, that option in last line would be handed over to volme plugin as key-value Pair share=my.nfs.host:/path/to/share. docker-volume-compose could use this option to identify, which host:/share combination should be mounted als volume data: instead of data.
This compose file is a valif one (i.e. docker-compose will accept it), however it does not work since option share is not evaluated by volume plugin (this is your turn ;-)
These are only ideas, I hope you get the ghist and have the skills to find out, whether is could work along those lines!
(If not, just tell me what is unclear and I try to dig a bit deeper)

Ok totally makes sense.  Thanks for the extra info.  I'll play around with it sometime this weekend.  Currently finishing up BlueGreen support in my Depcon project. Will tackle this after.

@holgerreif I've tried everything. The driver opts seem to never make it into the plugin.  I have found other similar issues filed on docker-compose regarding driver_opts so I'm convinced this is a known bug.
I've beefed up debug in each call we get from the daemon and am logging the current request and options coming in.  Options are always empty when using the driver_opts.  If you enable --verbose in the driver plugin for NFS you should see this too in the new 0.14 binary.
If you agree, I'll flag this as blocked and we can monitor docker-compose for a fix.

Hmmm... looking throught the issues at docker/compose the most issues didn't really dealt with driver_opts but with a bug in the driver implementation itself. In my test the correct driver (docker-volume-netshare) was used, so it seems to be a different problem.
However one specific issue #2899 seems to suggest, that some had working driver_opts with Rex-ray driver (problem was with type parsing, which is unreleated). I try to dig a bit into the code of the rexray volume driver on order to get a glue about it...

Please try on your stack. It could be versioning on my end.  The driver will print the incoming request from the docker daemon on every call in --verbose mode.  So if you figure out what in compose triggers the params coming through from the daemon, send it my way

I'm quite curious. Using docker 1.10.3 9e83765 I do the follwoing:
docker volume create -d nfs --opt username=user --name host/share

I can't see any log entry like Entering Create.
If I do
docker run -it -v  host/share:/mnt --rm  some/image /bin/bash

the log entries Entering Mount and the like are visible, however the options are shown as empty map[].
I havn't tried it (will do tomorrow), but since I followed the lines alonge the cifs example
$ docker volume create -d cifs --name cifshost/share --opt username=user ...

from README.md I would expect to see the options somehow...

Are you running the 0.14 binary with --verbose ? Also, I didn't add the debug in CIFS, just the NFS route right now

I did:
$ egrep -v '^(#|$)' /etc/sysconfig/docker-volume-netshare
DKV_NETSHARE_OPTS="nfs -v 3 --verbose=true"

The other debug messages appear as expected:
time="2016-04-05T16:58:47+02:00" level=debug msg="Entering Mount: {host/share map[]}"
time="2016-04-05T16:59:08+02:00" level=debug msg="Entering Unmount: {host/share map[]}"
time="2016-04-05T17:03:12+02:00" level=debug msg="Entering Get: {host/share map[]}"
time="2016-04-05T17:03:12+02:00" level=debug msg="Entering REmove: name: host/share, options map[]"
time="2016-04-05T17:03:42+02:00" level=debug msg="Entering Get: {host/share map[]}"

Perhaps I'll retest with anothzer docker engine version...

Thats what I see too.  The map[] (^^ which shows empty), is where the driver_opts get added.  Using compose I don't see them being forward through. Glad your seeing similar results

I did setup a samba server on host hostproviding a share share accessable by user userwith password password. The following worked:
docker-volume-netshare cifs -u username -p password &
docker volume create -d cifs --name host/share
docker run -it -v  host/share:/mnt --rm  some/image /bin/bash

However the following run into mount error(13): Permission denied
docker-volume-netshare cifs -u username &
docker volume create -d cifs --name host/share --opt password=password
docker run -it -v  host/share:/mnt --rm  some/image /bin/bash

It suggests, that the problem is with docker engine (again, 1.10.3).
This is even more surprising, since this is more or less taken from the example in README.md. Do yo know, which version of docker engine you used, when you tested this example?
Anyway, this looks like you should open an issue against docker project. I lokked through open issues w/o any success.

I haven't tested samba in a while to be honest.  It seems like more people use NFS so have had very little requests/issues related to it since I tested it last.  At the time I was using Docker 1.9.1 I believe.  Is there a quick/easy way to setup the Samba server for these tests?  I currently don't have one setup but have plenty of cloud/resources I can test with.   Just don't have  a lot of time to spend creating a server.

I did a downgrade from docker-1.10.3 to docker-1.9.1. What should I tell you? It worked:
1. With credentials provided at plugin start (works with 1.10.3 too)
$ docker-volume-netshare cifs -u username -p password &
[1] 37447
WARN[0000] Error: open /root/.netrc: no such file or directory
$ docker volume create -d cifs --name host/share
host/share
$ docker run -it -v  host/share:/mnt --rm alpine ash
INFO[0128] Mount: host/share, map[]
INFO[0128] Mounting CIFS volume //host/share on /var/lib/docker-volumes/netshare/cifs/host/share
/ # exit
INFO[0149] Unmounting volume //host/share from /var/lib/docker-volumes/netshare/cifs/host/share
$ docker volume rm //host/share
//host/share

2. Correct credential provided at create time - works as expected
$ docker-volume-netshare cifs  &
[1] 47512
WARN[0000] Error: open /root/.netrc: no such file or directory
$ docker volume create -d cifs --name host/share --opt username=username --opt password=password
host/share
root@tstsrdzsltc:~ # docker run -it -v  host/share:/mnt --rm alpine ash
INFO[0037] Mount: host/share, map[]
INFO[0037] Mounting CIFS volume //host/share on /var/lib/docker-volumes/netshare/cifs/host/share
/ # exit
INFO[0043] Unmounting volume //host/share from /var/lib/docker-volumes/netshare/cifs/host/share
$ docker volume rm  //host/share
//host/share

3. Wrong credentials provided at create time - fails as expected
$ docker volume create -d cifs --name host/share --opt username=username --opt password=pass
host/share
$ docker run -it -v  host/share:/mnt --rm alpine ash         INFO[0091] Mount: host/share, map[]
INFO[0091] Mounting CIFS volume //host/share on /var/lib/docker-volumes/netshare/cifs/host/share
2016/04/06 11:37:47 mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

INFO[0092] Unmounting volume //host/share from /var/lib/docker-volumes/netshare/cifs/host/share
2016/04/06 11:37:47 umount: /var/lib/docker-volumes/netshare/cifs/host/share: not mounted

Error response from daemon: Cannot start container 63a67a6d8baf7b14c8282f0758be7b7807ce2923bf4aa276bcd4c141ffc6f33d: Plugin Error: VolumeDriver.Mount, {"Mountpoint":"","Err":"exit status 32","Volumes":null,"Volume":null}
$ docker volume rm  //host/share                             //host/share

4. Finally just to test argument passing
docker volume create -d nfs --name host/share --opt blah=blub

And the log file tells us:
time="2016-04-06T11:39:46.815205876+02:00" level=info msg="POST /v1.21/volumes/create"
time="2016-04-06T11:39:46+02:00" level=debug msg="Entering Create: name: host/share, options map[blah:blub]"
time="2016-04-06T11:39:46+02:00" level=debug msg="Create volume -> name: host/share, map[blah:blub]"
time="2016-04-06T11:39:46+02:00" level=debug msg="Entering Path: {host/share map[]}"
time="2016-04-06T11:39:46+02:00" level=debug msg="Path for host/share is at /var/lib/docker-volumes/netshare/nfs/host/share"

So it looks like a bug in docker engine 1.10.3!

So it looks like a bug in docker engine 1.10.3!

After upgrade to 1.10.3 again I found an interesting fact. Running
$ docker volume create -d nfs --name host/share2 --opt blah=blub host/share2
host/share2
$ docker volume ls
DRIVER              VOLUME NAME
cifs                /var/lib/docker-volumes/netshare/cifs/host/share

The following output was logged
time="2016-04-06T16:11:19+02:00" level=debug msg="Entering Get: {host/share2 map[]}"
time="2016-04-06T16:11:19+02:00" level=debug msg="Get for host/share2 is at /var/lib/docker-volumes/netshare/nfs/host/share2"
time="2016-04-06T16:11:38+02:00" level=debug msg="Entering List: { map[]}"

Interestingly. Instead of calling Create from the plugin it is called with Get.
Even more interesting: The first docker volume create after plugin restart is not even forwarded to the plugin! Only after volume rm the next volume create is forwared as Get.
I think, you should open an issue at docker/docker. If you want I can do it as well, however I might need some support onece a few more technical question arise.

From issue (comment) it seems the first Get Call to the plugin returns something. As non-Go-skilled guy I'm unable to decide looking at the code what the plugin actually returns, but it sounds realistic.
@gondor Could you look at this?

Okay, I think I got it:Get() in nfs.go always returns something! It returns, where a volume would have been mounted (the same as Path()) independent whether this volume already exists.
Solution: you have to keep track of created mounts!

add a remove function for mountManager which deletes the rnty from m.mounts
nfsDriver.Remove function should call mountManager.Remove
nfsDriver.Get should check, whether mountManager knows about the volume (e.g. call GetVolumes and hcek whether this specific volume is in the returned map or implement a mountManager.GetVolume (VolName) function.

Once solved we could come back to the original problem ;-)

Try this version below.  I added the logic.
I've noticed however that in some cases where volumes fail to mount (Mount 32 error) you need to do the trailing /.  This has changed in 1.10.3 of docker (didn't need it before).  For example:
docker volume create -d nfs --name nfs.server.com/mnt/share/
docker run -it --rm -v nfs.server.com/mnt/share/:/data ubuntu bash

docker-volume-netshare-15dev.zip

docker volume create -d nfs --name nfs.server.com/mnt/share/
unfortunately gives
Error response from daemon: unable to find a node that satisfies node==nfs.server.com
when running on a docker swarm.
I guess the best solution would be to add a parameter to pass the "nfs.server/share" to the driver as option (not in the name of the share)

I played a little bit with your version. From looking at the --verbose output I I think it works as expected. Have not tested docker-compose yet (I'll finde some time over weekend).
One thing: instead of
Get: mount found for host/share -> /var/lib/docker-volumes/netshare/nfs/host/share

the log should read
Get: volume description found for host/share -> /var/lib/docker-volumes/netshare/nfs/host/share

Actually, according to the code it is in the mount[], however technically speaking it's not mounted yet ;-)
However cifs is not working, probably because you have not changed it's implementation. However following the same logis as nfs it should work.

@swoopster-sb I havn't actually tested with swarm, however the proposed parameter share for docker-compose file in my previous comment would perfectly solve your problem as well ;-)

I ended up doing a major refactor to simplify the same boiler plate between each driver.  This binary and associated branch I checked into reflects this.  I also added the share option.
For example:
docker volume create -d nfs --name myvol -o share=myserver:/share
docker run -it --rm -v myvol:/data ubuntu bash

This also works too (but noticed on my install daemon 1.10.3) wants the trailing /
docker run -it --rm -v nfs.server.orgmnt/share/:/data --volume-driver=nfs ubuntu bash

CIFS and EFS inherited the NFS changes but I didn't test.. So test NFS then CIFS to compare.  They all support the "share" option too
This refactor and binary also added the output on start to cover Issue #25 so can you close that is you are playing with this.
docker-volume-netshare-16.zip

Refactoring was an idea I had too. I'm glad you did it.
My test show, that share option works great.
I tested mit driver nfs both docker volume createand docker run --volume-driver.
BTW: For me it worked both with and w/o the trailing slash.
And -- keep your seatbelts fastened ;-) -- docker-compose can work now with your plugin as well!
I was able to get the follwoing docker-compose.yml to work.
version: '2'

volumes:
  data:
    driver: nfs
    driver_opts:
      share: host:/share

services:
  hello:
    image: alpine
    volumes:
      - data:/mnt
    command: ls /mnt

cifs however got broken, neither example from my comment does not work anymore, besides opts are handed passed to .
I'll treat this issue (usage in docker-compose) as solved (and leave it up to you to close). After digging a bit more I'll open a separate issue for broken cifs functionality.

Awesome, thanks for testing this.  I'll see if I can figure out how to test CIFS.  I'm all OSX and Linux so typically use NFS based variants.  Let's create a separate ticket for CIFS

@swoopster-sb Meanwhile I understood why you had probs with swarm: host:/share is the syntax to get a local share on a specific node in cluster.
Could you re-test within your swarm setup and post the result here as well as the outup of docker volume ls. Should serve as a reference!

docker volume create --driver=nfs --name gv0 -o share=nfs.server.com:/gv0
docker volume ls

gives
DRIVER              VOLUME NAME
nfs                 gv0
nfs                 gv0

not sure if it is a good sign that it shows up twice (currently running 2 nodes in swarm, maybe its because of that!?)
docker run -it --rm -v gv0:/data  alpine ls /data works fine.
Also seems to be working in docker-compose with
volumes:
 gv0:
  driver: nfs
  driver_opts:
   share: "nfs.server.net:/gv0"

not sure if it is a good sign that it shows up twice

@swoopster-sb  Actually the plugin on both nodes creates a volume. For listing it reports the same volume on both nodes since they do not know from each other (in contrats to a storage cluster driver). What is the expected listing? What is logged from the plugin wenn started in --verbosemode?

This is actually expected.  Swarm will call out to all nodes on "ls, create, etc".  Even the test cases around swarm and volume show this:
https://github.com/docker/swarm/blob/master/test/integration/api/volume.bats

ok, so i think it works perfectly as expected! Nice.


e2e environment name not allowed

I was aiming to write an ods.yaml file for an environment (to be created) called e2e as follows:
branchToEnvironmentMapping:
  - branch: 'master'
    environment: prod
  - branch: 'release/*'
    environment: test
  - branch: 'e2e/*'
    environment: e2e
...
environments:
  - name: dev
    namespace: project-dev
    stage: dev
  - name: e2e
    namespace: project-e2e
    stage: dev
...

As a result the pipeline manager logs the following error:
2022-11-28T16:09:20Z | ERROR | receiver: could not download ODS config for repo project-deploy: could not unmarshal config: name of environment must match ^[a-z-]*$

The check is done at the following place:
https://github.com/opendevstack/ods-pipeline/blob/01a67e7a6a1dcb98045e73bbefc939cb854084c9/pkg/config/ods.go#L142
The namespace naming rules are captured at Namespaces and DNS  and in particular in Names. Perhaps the pattern could be relaxed to  ^[a-z-][a-z0-9-]*$

After discussion, the best regex seems to be ^[a-z][a-z0-9-]{0,61}[a-z]$. It requires >= 2 chars, but that should be fine.


Unable to run go file via editor

In a project that contains some go files, I'm used to being able to click the little green run icon in the editor gutter. I'm in the process of migrating to Bazel but this feature doesn't appear to be available anymore:

Is there something I'm missing in my setup that's causing this not to work or is this a real bug?
Setup

Some java, some go packages separated by a top level language folder.
BUILD.bazel files generated using gazelle
Using go.mod

Versions
Plugin: v2<IP_ADDRESS>.2
IntelliJ IDEA 2018.3.4 (Ultimate Edition)
Build #IU-183.5429.30, built on January 29, 2019
JRE: 1.8.0_152-release-1343-b26 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

Can you share your .bazelproject file? Make sure go is enabled under addition_languages.

It's a default .bazelproject with go in additional_languages, exactly as you say

I haven't looked into this in detail but it appears that the issue is because the plugin associates the go file with the go_library rule, the check in GoBinaryContextProvider.java#L83 only exposes the 'run this file' functionality if the file is directly associated with a go_binary rule.

I should also say that changing our go_library rule to go_binary (and removing duplicates) reinstates this functionality. However, we are generating these rules via gazelle so will see if there's a way to do that instead.
Ideally the plugin would be expanded to provide the run target of 'closely related go_binary rules' if the actual target is a go_library

I wrote a quick patch (though there's probably a better way to do this) that searches a little father for a binary rule to run a file
Index: golang/src/com/google/idea/blaze/golang/run/producers/GoBinaryContextProvider.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- golang/src/com/google/idea/blaze/golang/run/producers/GoBinaryContextProvider.java	(revision e76fdadb0bdabbe2be913cba03d9014eb2366374)
+++ golang/src/com/google/idea/blaze/golang/run/producers/GoBinaryContextProvider.java	(date<PHONE_NUMBER>434)
@@ -17,21 +17,26 @@

 import com.goide.execution.GoRunUtil;
 import com.goide.psi.GoFile;
+import com.google.common.collect.ImmutableMultimap;
 import com.google.idea.blaze.base.dependencies.TargetInfo;
 import com.google.idea.blaze.base.ideinfo.TargetIdeInfo;
+import com.google.idea.blaze.base.ideinfo.TargetKey;
+import com.google.idea.blaze.base.ideinfo.TargetMap;
 import com.google.idea.blaze.base.model.BlazeProjectData;
 import com.google.idea.blaze.base.model.primitives.LanguageClass;
 import com.google.idea.blaze.base.model.primitives.RuleType;
 import com.google.idea.blaze.base.run.BlazeCommandRunConfiguration;
 import com.google.idea.blaze.base.run.producers.BinaryContextProvider;
 import com.google.idea.blaze.base.sync.data.BlazeProjectDataManager;
+import com.google.idea.blaze.base.targetmaps.ReverseDependencyMap;
 import com.google.idea.blaze.base.targetmaps.SourceToTargetMap;
 import com.intellij.execution.actions.ConfigurationContext;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.PsiElement;
 import com.intellij.psi.PsiFile;
 import java.io.File;
-import java.util.Objects;
+import java.util.Deque;
+import java.util.LinkedList;
 import javax.annotation.Nullable;

 /** Go-specific handler for {@link BlazeCommandRunConfiguration}s. */
@@ -76,13 +81,32 @@
       return null;
     }
     File file = new File(vf.getPath());
-    return SourceToTargetMap.getInstance(psiFile.getProject()).getRulesForSourceFile(file).stream()
-        .map(projectData.getTargetMap()::get)
-        .filter(Objects::nonNull)
-        .filter(t -> t.getKind().getLanguageClass().equals(LanguageClass.GO))
-        .filter(t -> t.getKind().getRuleType().equals(RuleType.BINARY))
-        .map(TargetIdeInfo::toTargetInfo)
-        .findFirst()
-        .orElse(null);
+
+    // attempt to find a go_binary rule that can run this file
+    // this ensures we support splitting go_library from go_binary rules (as gazelle does)
+    ImmutableMultimap<TargetKey, TargetKey> reverseDeps = ReverseDependencyMap.get(psiFile.getProject());
+    SourceToTargetMap sourceToTarget = SourceToTargetMap.getInstance(psiFile.getProject());
+    TargetMap targetMap = projectData.getTargetMap();
+
+    // while searching dependents we try to stay as close to the source files rule as possible
+    Deque<TargetKey> targetsToCheck = new LinkedList<>(sourceToTarget.getRulesForSourceFile(file));
+
+    while (!targetsToCheck.isEmpty()) {
+      TargetKey currentKey = targetsToCheck.removeFirst();
+      TargetIdeInfo t = targetMap.get(currentKey);
+      if (t != null) {
+        if (t.getKind().getLanguageClass().equals(LanguageClass.GO)) {
+          if (t.getKind().getRuleType().equals(RuleType.BINARY)) {
+            return t.toTargetInfo();
+          }
+
+          // the target isn't a BINARY target, but it might be depended on by something that is
+          // add to the end of the queue so we're searching in breadth first order
+          reverseDeps.get(currentKey).forEach(targetsToCheck::addLast);
+        }
+      }
+
+    }
+    return null;
   }
 }

Just to make sure, your go_library contains the main() method, right? And it has package name of "main"?
The same as files in the go_binary? Do their import paths match as well?

Correct, this is how gazelle generates the rules. One go_library per directory with .go files in, if the files are in package main and have a main method then generate a go_binary rule that embeds the go_library. The go_binary doesn't reference the files directly.

Here is an example application:
package main

import "fmt"

func main() {
	fmt.Print("Hello, World!")
}

And generated build file:
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")

go_library(
    name = "go_default_library",
    srcs = ["hello_world.go"],
    importpath = "example.com/go/playground/hello",
    visibility = ["//visibility:private"],
)

go_binary(
    name = "hello",
    embed = [":go_default_library"],
    visibility = ["//visibility:public"],
)

I've also hit this problem. No run or debug options. Clicking the little green run icon shows Nothing here. Go is uncommented in the .bazelproject

Is there any progress on this issue? Very annoying workaround with copying go_library contents to go_binary "by hands"...


Readme testing bump go version

I'm going to close these since we are testing through the pipeline now


Silenced failing small business test, needs refactoring w the rest

This content seems to have changed in the CMS. Silenced the test so we can look into it when we rewrite these tests.

:+1:


Created source code

Table of Contents
Description
Created source code
Contributing has more information and tips for a great pull request.

@zeobot set lc to pass

@zeobot set lc to pass


Extract more values from measurements

Also some cleanups.

0.67~pr410-213 deployed on -test on yesterday

0.67~pr410-213 deployed on prod


Add basic code action support

https://microsoft.github.io/language-server-protocol/specification#textDocument_codeAction
Can look at erlang-ls' implementation as an example. A good first code action to support is fixing unused variable warnings by prepending a _

Hey, I'll be glad to help with that

That would be great! Go for it :+1:


Configure project with default values such as env vars and python test

Not sure what I meant, maybe global pycharm settings?

Oh right this has the PyCharm API milestone, so yes!

I remember I struggled finding how PyCharm defined all their settings. I'm also worried they might break at any time.
If I do decide to pick up this PyCharm API again then I can try copy the whole folder -> change one setting -> compare to old folder to find how it's defined


Allow updating of default attributes by default?

I finished a rudimentary user profile feature today. In order to be able to update a user's name, I had to add devise_parameter_sanitizer.for(:account_update) << :name. Since name is an attribute that comes with Devise by default, it was confusing to me why I wasn't able to edit it and it took me kind of a long time to track down the reason.
I don't have a super strong opinion on this either way but it seems like maybe fields like name should be included in the attributes under :account_update by default.
As usual, I'd be willing to make it happen. I haven't looked into what that would involve but I'd assume it wouldn't be a huge amount of work.

FYI, I haven't forgotten I said I would do this, I'm just taking forever, sorry. I've been out of the Angular/Rails game for a while but now I'm back.

Hi there @jasonswett ,
In an effort to cleanup this project and prioritize a bit, we're marking issues that haven't had any activity in a while with a "close-in-7-days" label. If we don't hear from you in about a week, we'll be closing this issue. Obviously feel free to re-open it at any time if you're ready to contribute! Hope all is well.


App Design - Overall Map

Chun Li will handle the coding and the implementation of the foundational map as well as making it a heatmap with color dictated by price.

Design is finished


updating deprecated ubuntu ami version

The ubuntu version is deprecated, as a result, it returns the error shown in the picture when we run make infra-up. Changing the version to the one solves the issue.

error message


Terminology clarification

Dear all,
thanks a lot for keeping this repo up-to-date! There seems to be some confusion regarding the terminology: the infection rates refer to the infection with SARS-Cov-2, whereas the disease caused by the virus is called Covid-19.
Best wishes,
-Filippo

@filippo82 Could you please create a pull request with your suggestions where exactly the terminology should be changed? Thank you in advance!

Will do thanks! I need to engage my better half, she is the real doctor :)

Done.


Are you using angular-webpack-starter? Please comment here!

Hi everyone ✋
I would like to know who are using angular-webpack-starter and how you use it.
It'd be great if you can post your project/company logo too
Please share your experiences below!
Thank you ❤

Please don't post starter's issues here (it'll be removed without notice), but create new one

I use it for an internal big projet, mostly because it's an aot-ready starter; i added some loaders & rules (sass, pug, json, txt) and removed dashboard that had memory leaks... thank you :heart_eyes:

I want help How to load custom font file ?

I am using this and it was a great help to get all this built out. The one issue/complaint I have though is that when I do npm start sometimes node crashes but I get no indication of the issue. I have to do a clean and build:dll and sometimes that fixes it and sometimes it does not. I basically just have to play around to get npm start to launch things again. It is pretty frustrating. Seems to happen most when you add/remove a package or change your components structure around.

@antonybudianto just came across this wonderful project from angular2 starter page. You rock!! I have three questions: 1) How is this project different than angular2 starter? What I understood is angular2 starter uses gulp as oppose to this one does webpack + ang cli compilation. Any other difference? Which one you recommend? 2) I setup and compiled project fine but unable to browse site. It didn't launch and get 404 on localhost:8080. Any ideas? 3) I dont know how but this link also came up https://github.com/AngularClass/angular2-webpack-starter. Is this same project or you involved? Thank you so much.

@ManishJainGitHubUser

I'd recommend using this webpack starter since it used stable webpack rather than unstable systemjs, also this starter featuring Hot module reload, tree shaking, lazy load, and DLL build
Let's post it as new issue, we'll discuss it there
I'm not involved on that project

@GenZodd , when you add new package, then you need to rebuild the DLL cache again


Clarification on HTTP headers

I'm running an apache container and i turned on the forensic log to see what headers are coming through ngnix-proxy.

+WRyTJ6wRAAQAAABCBfUAAAAA|GET /api/v1/operators HTTP/1.1|Host:fleetgaard.dev|Connection:close|X-Real-IP:<IP_ADDRESS>|X-Forwarded-For:<IP_ADDRESS>|X-Forwarded-Proto:http|X-Forwarded-Ssl:off|X-Forwarded-Port:80|Content-Type:application/json|Authorization:NoAuth Website|User-Agent:PostmanRuntime/3.0.11-hotfix.2|Accept:/|accept-encoding:gzip, deflate

So it looks like my ip address is supposed to be: <IP_ADDRESS>
And yet that isn't my ip
ifconfig | grep inet
	inet <IP_ADDRESS> netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	inet6 fe80::1c66:9888:c06c:9474%en0 prefixlen 64 secured scopeid 0x4
	inet <IP_ADDRESS> netmask 0xfffffc00 broadcast <IP_ADDRESS>
	inet6 fe80::a45d:dff:fe6a:e4e8%awdl0 prefixlen 64 scopeid 0x8
	inet6 fe80::8907:e57f:6494:9ea7%utun0 prefixlen 64 scopeid 0xa
	inet6 fe80::460:8d7d:1312:8cd4%en5 prefixlen 64 secured scopeid 0xc
	inet <IP_ADDRESS> netmask 0xffff0000 broadcast <IP_ADDRESS>

I believe its getting the IP from the docker host (is that what its called) - is there a way to actually get my machines local IP passing across instead?

The way you've described the environment, you have a server running nginx-proxy and a container running apache.  From your client computer (probably IP <IP_ADDRESS> or the IPv6 for en0 or en5), you are sending a request to that server from Postman.  In apache you see the client IP being reported as <IP_ADDRESS>.
Here are some things I would check:

Ping the server and see what IP it is using (IPv6 or IPv4).  Perhaps there is some issue with the way IPv6 IPs are added to the x-forwarded-for header.
Is there anything else between your client and the server, like a web proxy, etc?
Is there anything else between the server's interface and the nginx-proxy? (for example, if you were running the nginx-proxy container inside another container for testing or something)

The x-forwarded-for header is constructed by webservers and / or reverse proxies by adding the client's IP to a list, so all IPs in the system should be preserved, unless there is a firewall doing SNAT between you and the server, in which case the IP of that firewall would be in place of the client.  To check for this scenario, you should see what the IP of your docker host is (ip addr list is more accurate than ifconfig btw).  My guess is that the docker host does not have <IP_ADDRESS> on any interface, and that it's actually a router/firewall on the network of your server, which is rewriting the source address on the packets sent by your browser, and making the real source IP impossible to determine.


How to train your model with multiple gpus?

Hi, I am trying to train the model on multiple GPUs. I saw that issue was closed, but it doesn't seem like there is any discussion


Validation schema does not hold documentSelector definition

As you can see in the image below, VSCode complains about documentSelector, saying it's not allowed. The reason for that is because there's no documentSelector definition in https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json.

Does documentSelector actually work? I'm under the impression it doesn't work at all.

Ok, based on the commit history, documentSelector isn't available in the current version (0.3.6). Any estimates for the next release? Thanks!


Memory assigned with malloc is never freed

I don't know much about C, but I read that if you use malloc (e.g., to play with strings), you must use free to free the memory, before the variables leaves the scope.
In the current code, malloc is used without free here:
https://github.com/alifeee/Factorio-Proximity-Voice-Chat/blob/46c74f103f59772eddff0d30350799da3433ed0f/mumble/logfile.c#L182
https://github.com/alifeee/Factorio-Proximity-Voice-Chat/blob/46c74f103f59772eddff0d30350799da3433ed0f/mumble/plugin.c#L82
https://github.com/alifeee/Factorio-Proximity-Voice-Chat/blob/46c74f103f59772eddff0d30350799da3433ed0f/mumble/plugin.c#L243

Perhaps Mumble frees this memory itself?

I left the game open for 40 minutes or so

seems fine


bug: error message when use split view

Did you check docs and existing issues?

[X] I have read all the LazyVim docs
[X] I have searched the existing issues of LazyVim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
NVIM v0.10.0-dev-594ff34
Operating system/version
ubuntu 20.04
Describe the bug
When I run vs to use split view, it shows below error"
Error  17:23:11 msg_show.lua_error  vs test.file Error executing vim.schedule lua callback: ...ocal/share/nvim/lazy/noice.nvim/lua/noice/util/hacks.lua:277: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115:        im:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/       hare/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui       lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ..       a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyv       m/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error execut       ng lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim       lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Er       or executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/la       y/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim       E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/sha       e/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lu       :115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: Vim:E5108: Error executing lua ...al       share/nvim/lazy/bufferline.nvim/lua/bufferline/ui.lua:119: attempt to call field 'is_list' (a nil value)

 stack traceback:
    3 > ...al/share/nvim/lazy/bufferline.nvim/lua/bufferline/ui.lua:119: in function 'get_component_size'
    4 > ...al/share/nvim/lazy/bufferline.nvim/lua/bufferline/ui.lua:480: in function <...al/share/nvim/lazy/bufferline.nvim/lua/bufferline/ui.lua:461>
    5 > vim/shared.lua: in function 'get_components'
    6 > ...local/share/nvim/lazy/bufferline.nvim/lua/bufferline.lua:56: in function <...local/share/nvim/lazy/bufferline.nvim/lua/bufferline.lua:54>
    7 > [C]: in function 'redrawstatus'
    8 > ...ocal/share/nvim/lazy/noice.nvim/lua/noice/util/hacks.lua:277: in function <...ocal/share/nvim/lazy/noice.nvim/lua/noice/util/hacks.lua:273>
    9 stack traceback:
   10 │ [C]: in function 'nvim_win_call'
   11 │ ...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:115: in function <...a/.local/share/nvim/lazy/LazyVim/lua/lazyvim/util/ui.lua:94>
   12 │ [C]: in function 'redrawstatus'
   13 │ ...ocal/share/nvim/lazy/noice.nvim/lua/noice/util/hacks.lua:277: in function <...ocal/share/nvim/lazy/noice.nvim/lua/noice/util/hacks.lua:273>
   14 stack traceback:

Steps To Reproduce
open a file and then use vs to open another file
Expected Behavior
should not have any error
Repro
No response

Just wonder what it is related to.. it shows these after I update lazyvim

Btw, it shows this error when I open nvim, not sure related or not
https://share.cleanshot.com/9kBsqrGb

Update your Neovim to latest nightly.

Oh yes it fixed!! Thanks!, btw about the nvim-treesitter error message, where I can see more detailed log about it? It shows each time I open nvim, or any way to avoid shown this?

No idea. That has nothing to do with LazyVim. It shows an error about your internet connection.

Just in case someone else met similar issue, above nvim-treesitter internet error can be fixed by adding require("nvim-treesitter.install").prefer_git = true in the config


Support placeholders

I would like to configure a placeholder for a field in the web form. This could look something like this:
{
        "isBasedOn":{
            "title":"Based on",
            "type":"string",
            "format":"uri",
            "_placeholder": "Another OER this resource is derived from"
        }
}

@literarymachine let me know that there already exists something but it is not clear whether and how it is currently supported. I will try it out.
"name":{
            "title":"Title",
            "type":"string",
            "_display":{
                "placeholder": "foobar"
            }
        }

This seems to work in general, see "Creation Date" and "Language" in https://test.skohub.io/editor/?schema=https://raw.githubusercontent.com/hbz/skohub-editor/updateSchema/src/json/generic-oer-schema.json.
I don't understand why the placeholder is not shown in the "Based on" field, see the relevant schema lines: https://github.com/hbz/skohub-editor/blob/6d3df5a3cfbd8d6dcb0d89b6805179fe95053057/src/json/generic-oer-schema.json#L276-L278

don't understand why the placeholder is not shown in the "Based on" field

It works, when moving the _placeholder to the items object, see https://github.com/hbz/skohub-editor/blob/4c9280f02a73112a3ce956ccd1722e261cc4c75d/src/json/generic-oer-schema.json#L272-L278
Closing.


Weird result when accessing fields of objects in arrays

I'm not 100% sure whether this crate is supposed to support accessing fields of
objects within arrays but I'm seeing strange behaviour when doing so...
Given a JSON record:
{"list_of_objects": [{"first_field": 1, "second_field": true}]}

The results of the following queries are:
$.list_of_objects.first_field       => 1
$.list_of_objects.second_field      => true}]

Or as a runnable example (modelled on the example from the readme):
fn main() {
    let queries = vec![
        "$.list_of_objects.first_field".as_bytes(),
        "$.list_of_objects.second_field".as_bytes(),
    ];
    let mut p = pikkr::Pikkr::new(&queries, 0).unwrap();
    let recs = vec![
        r#"{"list_of_objects": [{"first_field": 1, "second_field": true}]}"#,
    ];
    for rec in recs {
        let results = p.parse(rec.as_bytes()).unwrap();

        for result in results {
            print!("{} ", match result {
                Some(result) => String::from_utf8(result.to_vec()).unwrap(),
                None => String::from("None"),
            });
        }
        println!();
    }
}

Ah, after reading the paper again and looking at the source for IndexBuilder it looks like querying array fields is not supported.
I'd be keen to help add support for this but I'm unsure of how much time I'll have to work on it in the short term.


when I open a word file more than 2 pages,and save it to anohter file it can not be opened .

I have a template word file with 3 pages,when i open it even not edit, and save it to a new word file.when i try to open the new file ,it wase loding at 99% and cann't open.
NPOI 2.4.1
word type docx
code
 public void ReadWord()         {             string fpath = @"TEMPLATE.docx";             using (FileStream source = new FileStream(fpath, FileMode.Open, FileAccess.Read))             {                 XWPFDocument document = new XWPFDocument(source);                 using (FileStream sw = new FileStream("sample1.docx", FileMode.Create))                 {                     document.Write(sw);                 }                 document.Close();             }         }

Please upload the template.docx

Please upload the template.docx
TestWord.docx
if the word file contains more than one picures, it while couse the problem.

I cannot reproduce the issue with the latest NPOI code. Here is the output file generated by NPOI.
output2.docx
I'll close this issue.


Upload fails without error using custom directive

I'm trying to upload a file to a custom object storage service, with the following directive:
import { MAX_FILE_SIZE, BUCKET_PATH } from 'core/api/files/fileConstants';

const API_KEY = 'my-key';
const SECRET_KEY = 'my-secret';

const CustomObjectStorage = {
  directiveMatch: {
    key: Function,
  },

  upload(method, directive, file, meta) {
    const fileKey = directive.key(file, meta);

    return {
      upload: BUCKET_PATH,
      download: `https://${BUCKET_PATH}/${fileKey}`,
      postData: [
        { name: 'accessKey', value: API_KEY },
        { name: 'secret_key', value: SECRET_KEY },
      ],
    };
  },

  maxSize: MAX_FILE_SIZE,
};

Then I start the upload like this:
this.uploader = new Slingshot.Upload(SLINGSHOT_DIRECTIVE_NAME, {
// My metadata..
  });

this.uploader.send(file, (error, downloadUrl) => {
// Error is undefined, yet file does not appear object storage
  if (error) {
   console.log('Error', error);
   this.setState({ error: error.message });
  } else {
   handleSave(file, downloadUrl);
  }
});

Any idea where the issue might lie, or how the error is being swallowed?

As you can see in my code above, I didn't add https to my upload URL. Changing it to : https://${BUCKET_PATH} made the upload show proper errors again.


clementine: 1.3.1 -> 1.4.0rc1, switch to Qt 5, fix build

Motivation for this change
Fixes #89792
Step towards deprecating Qt 4 #33248
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@marius851000 Could you, please, test this?

Sorry for being late. I confirm this new version work for me.


hygieia_jenkins-build-collector docker container exits after couple of seconds

I added required environment properties for Jenkins collector to docker-compose.override.yml file but docker container dies after couple of seconds.
I believe the issue is "--spring.config.location" in Dockerfile is pointing to a non existing file called  "application.properties"
I modified the "collectors/build/jenkins/docker/Dockerfile" to point the spring config to "hygieia-jenkins-build-collector.properties" and now container starts up without any issues.
"ENV PROP_FILE /hygieia/config/hygieia-jenkins-build-collector.properties"
https://github.com/Hygieia/Hygieia/blob/6ea1b067ffd1c59d4b280e2e455730c14dcb8f38/collectors/build/jenkins/docker/Dockerfile#L15

@sbabutk - if you'll notice the referenced line in the dockerfile is a ENV line. This means that if you add -e PROP_FILE /path/to/expected/properties it will override that variable without need for modifying the dockerfile. Ideally though you should be using the jenkins plugin we provide as there are some performance issues for the jenkins build collectors on jenkins instances with a large number of jobs.

Thank you, Jenkins plugin is working fine.
I was following the "https://hygieia.github.io/Hygieia/builddocker.html" to build and run docker image using maven and it failed so I still think it is a defect. (default config location is pointing to a test properties file instead of hygieia-jenkins-build-collector.properties)

Hello, everyone!
I've been trying to follow the Hygieia documentation @ https://hygieia.github.io/Hygieia/setup.html for about a week before stumbling onto this page. I second that alternative of modifying the instructions. At the very least, a fix like the one here should be more visible to newcomers learning this on their own (as I am) so that they don't get discouraged.
Thank you all for offering solutions to this problem!


Add recommended rules to eslint.

From eslint v1.0 standard rules disabled.

Our eslint config already passes. Can you please elaborate more on why you think this is a good idea, @mxck?

@mjackson I make it for this comment https://github.com/rackt/react-router/commit/56f2881e94548a6d048392bf8f9677e670c0c415#commitcomment-12461238 , around two weeks ago. :)

thanks for bringing this up :)
fixed in fbe43775c073a7e924ebf4e8f27bd391a2689c7c


SC-1667(Removing grant_type=password from KC)

Ticket Ref: SC-1667
R2.8.0
1: Removing grant_type = password while generating KC token
2: Removed login related unused code and test cases

Codecov Report

:exclamation: No coverage uploaded for pull request base (release-2.8.0@7d2eab9). Click here to learn what that means.
The diff coverage is 40%.

@@               Coverage Diff               @@
##             release-2.8.0    #803   +/-   ##
===============================================
  Coverage                 ?     41%
  Complexity               ?    1020
===============================================
  Files                    ?     149
  Lines                    ?   10129
  Branches                 ?    1123
===============================================
  Hits                     ?    4153
  Misses                   ?    5557
  Partials                 ?     419

Impacted Files
Coverage Δ
Complexity Δ

...sunbird/services/sso/impl/KeyCloakServiceImpl.java
0% <ø> (ø)
0 <0> (?)

...java/org/sunbird/common/util/CloudStorageUtil.java
0% <0%> (ø)
0 <0> (?)

...rd/common/util/KeycloakRequiredActionLinkUtil.java
0% <0%> (ø)
0 <0> (?)

...rg/sunbird/common/models/util/ActorOperations.java
100% <100%> (ø)
3 <0> (?)

Continue to review full report at Codecov.

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


"Multi-pages" option location/disclaimer

As a Superuser,
I want to be prompted to make a multi-page survey vs single page survey
so that (reason/ why/ value) I know how to begin designing my survey without losing any unsaved work.
Acceptance Criteria
Scenario 1:
GIVEN ... a user hits "create new survey"
WHEN ... they see a prompt/toggle which gets them to choose multi or single
THEN ... they'll see what type it is before they start inputting questions, with reminder that is they choose to change half way through they will lose their work

Scenario 2:
xxxxxx
Validation Rules?
(If yes, list here)
Screenshot
(Link above will always be the most up-to-date version.)

Validated, user has option to select single/multi page when they hit "create new survey"


How to get the duration of a MediaItem without playing it?

This field is missing in mediaMetadata . Is there possibility of getting it other way? I want to filter my songs(i.e. MediaItems) by duration.

Closing due to lack of activity. Please re-open if required.


Changing board config using server gui

Different approach of issue #75, would be having prebuild firmware and  storing defines.h configs in flash with serial commands to change it. But there is a problem with board type, prebuilding for different hardware is not ideal.

No. Defines are defines, they shouldn't be changed. They define the hardware used. Things that should be in the config may be in the config, but defines are hardware-dependant.

Except defines.h also contains IMU_ROTATION and SECOND_IMU_ROTATION which have nothing to do with hardware and could be stored either on server or MCU side.
The whole idea is to greatly simplify DIY approach. We don't necessarily need to keep all pinout in flash. We can automate building of IMU x BOARD firmwares that people could choose in the server, upload like in https://github.com/SlimeVR/SlimeVR-Server/issues/75 and be on their way without messing around with the code.

I'd propose a separate application if you want something to build the firmware, building the firmware would be a niche function to have in the server and a lot of extra code to maintain.

why not just have the rotation be a variable instead of a constant? It can be DEFINEd to a default value, and the server can dynamically modify it via either post-processing on the quats, or by sending a command with the target rotation to the boards and store that in filesystem


Microfone and video doesn't work

MIC and video doesn't work
I've already installed matrix but when start a conference I can't activate sound and video.

resolved! It was only redirect error port in google API.


feat: add option to store icons as inline svg by default

This PR introduces a way to store the icon as an inline svg by default.

Closing this PR as the feature for storing inline svg by default is released.
PR Link: https://github.com/williamiommi/sanity-plugin-icon-manager/pull/12


nixos/vaultwarden: add test for backup script

Description of changes
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Could i get some info on whats keeping this in draft? thank you :heart:

I didn't find the time yet, so properly look over the test and if it is correct.

@ofborg test vaultwarden

Anything except x86_64-linux failing is known because of selenium.


Strange freeze of shell action

Hi,
Thanks for this wonderful library!
I have strange problem with freezing turtle script (initially I've tried to use chpasswd, but I've rewritten it to use grep). When interpreted (runghc) it runs smoothly. When compiled it freezes on third action - shell usage.
{-# LANGUAGE OverloadedStrings #-}

import           Turtle (empty, sh, select, inshellWithErr, inshell, shellStrict, shell, view)

main :: IO ()
main = do
  view $ inshell "/usr/bin/grep foo" (select ["foo 1", "bar", "foo 2"])
  view $ inshellWithErr "/usr/bin/grep foo" (select ["foo 1", "bar", "foo 2"])
  x <- shell "/usr/bin/grep foo" (select ["foo 1", "bar", "foo 2"])
  print x

I've tried to compile/run it under my Arch Linux and on the same machine in nspawn container (Debian Jessie). I've always tested it in isolated stack environments. I've tried different versions of lts (lates lts-5.6 <ghc-7.10.3> and some old, random one lts-3.0 <ghc-7.10.2>). I also tried to switch off optimization with -O0. I'm getting the same freezing behavior of compiled program (but no problems when script is interpreted).
Are you able to replicate my observations on your system? Is it only my machine related problem?

points at #72

@lspitzner - thanks! It works with -threaded!

Actually, I'll keep this open to remind myself to document this issue in the FAQ section of the tutorial


Add Nord Hyper to Terminal List

There is a Nord theme for Hyper. I think this should be added to the list of terminal themes.

Hi, thanks for your notice!
❄ ⚡ Nord Hyper version 🏷  0.1.0 has been released as official port project.


[ticket-7076] Adapt to 360ERP projects

I switched the autocopyright repo back to the upstream project because it merged the PR there as well.

@espo-tony Would you consider merging this? Otherwise the commands I use during the demo will be slightly different from the commands to use after merging.

@StefanRijnhart
Merged. Sorry for the delay


feat(material-experimental/mdc-snackbar): Copy in the canonical MDC DOM and styles

I'm not sure whether this doesn't overlap with what @andrewseguin is doing in https://github.com/angular/components/pull/19738.

Looks like Andrew took over this MDC component, will remove this PR.


Can not run DITA-OT on database resources

The issue when running DITA publishing from Oxygen, right?
I made some changes for Oxygen 18 (Spring next year) which would allow you to keep using the options storage API for the user/password and this API to be accessible when your URL handler plugin is called in the publishing process. Would you be willing to test your integration with an Oxygen 18 nightly build that I could provide for you?

Access to options works (tested with 18.1), and most importantly, setting a DITA OT Scenario to
fix.external.refs.com.oxygenxml =true on Parameters tab
-Djava.protocol.handler.pkgs=de.axxepta.oxygen.customprotocol.ArgonProtocolHandler as JVM arg on Advanced tab
now correctly uses our protocol handler and successfully tranforms with DITA OT !

Strange, the publishing should have worked even without setting the fix.external and the protocol handler. When Oxygen detects that a DITA Map located on a remote server is published, it should automatically use its already installed protocol handler also for the DITA OT transformation.


[Feature]Endpoint for calculating of Gross margin ratio, Price-earnings ratio, Earnings per share ratio

Are you adding a new feature?

[X] YES
[ ] NO

Are you enhancing the old feature?

[ ] YES
[X] NO

Is your feature request related to a problem?

[X] YES
[ ] NO

Describe your feature/enhancement.
I want to add these functions which are mentioned below.
Gross margin ratio: Gross profit / Net sales
Price-earnings ratio: Share price / Earnings per share
Earnings per share ratio: Net earnings / Total shares outstanding
Can you add the feature by yourself?

[X] YES
[ ] NO

Please assign me in this issue .

Hello @suvamita, this is Version 2 of Fintech API repository, there had been few major updates, please go through the CONTRIBUTING.md to make further contributions. Thanks.


Can't access productpage in windows 10

Bug description
I followed this demo to set up istio in Windows 10, the installation was successful but I can't access the web page http://localhost/productpage, I checked the ingressgateway with kubectl get svc istio-ingressgateway -n istio-system and have the following response:
NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP                                                                                AGE
istio-ingressgateway   LoadBalancer   <IP_ADDRESS>   localhost

but I am able to access kiali on localhost:15029/kiali
What I did is to change the type to NodePort using  kubectl edit svc istio-ingressgateway -n istio-system to assign an external ip to ingressgateway and I was able to access http://localhost:31380/productpage but I can't access kiali, how to fix this please ?
[ ] Docs
[ ] Installation
[x ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
Expected behavior
I have to be able to access both productpage and kiali with localhost
Steps to reproduce the bug
install istio with the steps in this demo in windows 10 with docker desktop 3.2.2
Version (include the output of istioctl version --remote and kubectl version --short and helm version --short if you used Helm)
kubectl : Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:23:52Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"windows/amd64"}
How was Istio installed?
in Windows 10 [version 10.0.17763.1757], Docker Desktop 3.2.2 (61853) with kubernetes 1.19.7

The demo is out of date. It is expected port 15029 to be exposed on the ingress gateway service when it isn't. This needs to either be done explicitly (see https://istio.io/latest/docs/tasks/traffic-management/ingress/ingress-control/) or follow https://istio.io/latest/docs/tasks/observability/gateways/.
Closing this as its working as expected - thanks!!


Add a ability to create a custom link to pastelog

It would be nice to have the ability to have a custom URL for a pastelog, This also means the user's pastelog will be readily searchable, this is fine as long as we show a warning to users when creating a custom link.

Show a note on the generated link that this log is visible to anyone with the link.


Specify 0.9.0 as deprecation version for recent MMM changes

Description

Note the version for the deprecation
Related Issue

[ ] Closes #847
[ ] Related to #846

Checklist

[ ] Checked that the pre-commit linting/style checks pass
[ ] Included tests that prove the fix is effective or that the new feature works
[ ] Added necessary documentation (docstrings and/or example notebooks)
[ ] If you are a pro: each commit corresponds to a relevant logical change

Modules affected

[ ] MMM
[ ] CLV

Type of change

[ ] New feature / enhancement
[ ] Bug fix
[ ] Documentation
[ ] Maintenance
[ ] Other (please specify):

📚 Documentation preview 📚: https://pymc-marketing--849.org.readthedocs.build/en/849/

Thanks @wd60622 !


ALL of example games should be "a game"

Leo's Ludonarrative Desiderata:

win state
activity (certain inputs approach win state)
should entertain for > 5 minutes

ya


Jupyter notebook kernel dies while importing qiskit

Informations

Qiskit version: 0.23.4
Python version: 3.6.8
Operating system: Ubuntu 18.04.3

What is the current behavior?
Jupyter kernel dies while importing qiskit.
Steps to reproduce the problem
Installing qiskit in a jupyter cell by doing the following:
from qiskit import QuantumCircuit
from qiskit.visualization import *
from math import pi, sqrt
import numpy as np

produces this:
The kernel appears to have died. It will restart automatically.
What is the expected behavior?
Suggested solutions

I think there was an issue in updating qiskit to 23.4. However, I had to uninstall all the libraries in a conda env and then make a new one.


Provider isn't used when configured on imported realm

I found a strange behavior, and I can't figure out from the code if it's an extension problem or a Keycloak problem.
To reproduce:

add and configure the migration provider in the User federation section of the Keycloak Admin UI
test it by logging in to the account console with a user in the remote system -- migration provider gets used and works.
export the realm as json
delete the realm
import the realm from the json in step 3
test again like step 2 -- nothing indicates the migration extension is getting used. normal user not found error.
deactivate and activate the migration provider in the Keycloak Admin UI
test again like step 2 -- migration provider gets used and works

Has anyone seen a similar behavior? Any ideas why it would need to get disabled/enabled after a realm import so it gets used?

Hi!
Does it show the plugin as active and enabled in the "User federation" tab after step 5? Is the configuration (endpoint URLs etc) correct right after importing?

Closing due to inactivity. Let me know if you want me to reopen this.


feat: parse more ast

What this PR does:
Implement more sql statement, parse ast nodes correctly.
Which issue(s) this PR fixes:

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

Codecov Report

Merging #105 (48674a9) into master (82212c9) will increase coverage by 5.32%.
The diff coverage is 50.16%.

@@            Coverage Diff             @@
##           master     #105      +/-   ##
==========================================
+ Coverage   29.12%   34.45%   +5.32%
==========================================
  Files          61       69       +8
  Lines        9580    10795    +1215
==========================================
+ Hits         2790     3719     +929
- Misses       6482     6637     +155
- Partials      308      439     +131

Impacted Files
Coverage Δ

pkg/runtime/misc/other.go
0.00% <ø> (ø)

pkg/runtime/optimize/sharder.go
26.29% <0.00%> (-1.55%)
:arrow_down:

pkg/runtime/ast/select.go
19.17% <19.17%> (ø)

pkg/runtime/ast/expression_atom.go
26.06% <28.48%> (ø)

pkg/runtime/ast/union.go
17.77% <28.57%> (ø)

pkg/runtime/function/function.go
21.66% <29.47%> (+3.38%)
:arrow_up:

pkg/runtime/ast/expression.go
20.45% <30.76%> (ø)

pkg/runtime/ast/predicate.go
25.17% <30.98%> (ø)

pkg/runtime/ast/describe.go
18.18% <33.33%> (ø)

pkg/runtime/ast/select_element.go
19.01% <33.82%> (ø)

... and 20 more

Continue to review full report at Codecov.

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


Call HAL_RTC_GetDate after HAL_RTC_GetTime

Right now date is being called first. Unfortunately, this means that the time can contain stale values. According to the ST HAL documentation:

You must call HAL_RTC_GetDate () after HAL_RTC_GetTime () to unlock the values in the higher-order calendar shadow registers to ensure consistency between the time and date values. Reading RTC current time locks the values in calendar shadow registers until Current date is read

Fixed in 18c4f4b68cbec658e7f1e942f5b73559ca692426


Fixes for DoS vulnerabilities in C++

The following changes are included:

Recursion depth is now also limited when deserializing JSON payloads in C++. Maximum depth can be set with bond::SetDeserializeMaxDepth.
When deserializing containers in C++, arrays are now preallocated only after it is verified that there is enough data in the buffer to fill the array. If the expected serialized size cannot be calculated, a growing array is used to prevent excessive memory allocations using malicious payloads.
bond::CoreException is now thrown when deseralizing an object whose declared size exceeds the remaining size of the payload in C++.
InputBuffer now throws a bond::StreamException when trying to skip beyond the end of the stream in C++.
Custom buffers (in C++) must now implement a CanRead method to check the remaining buffer size for reading.
Custom protocols (in C++) must now implement a CanReadArray method to check the remaining buffer size for reading.
Custom containers (in C++) must now supply reset_list and list_insert implementations to enable incrementally growing and filling the containers.
Documentation was updated to reflect the new API.

I've sent you some comments over IM about the Linux build that I, alas, cannot share here.

I fixed the gcc/clang build issues.


feat: support path for mv before and after

e.g.
mv ~/work/myapp1 ~/project1/myapp

all cd code will migrate ~/work/myapp1 -> ~/project1/myapp

没有经济价值


fetchCargoTarball fails with MITM proxy

Describe the bug
I am trying to use poetry2nix with Ruff 0.2.2 (last version supported on master) and fetchCargoTarball fails with this error message:
Error message

$ nix build
error: builder for '/nix/store/ka5nw3sp8kjaqbg803jm8a3l9ss7jq9a-ruff-0.2.2-cargo-deps-vendor.tar.gz.drv' failed with exit code 101;
       last 25 log lines:
       > Running phase: patchPhase
       > Running phase: updateAutotoolsGnuConfigScriptsPhase
       > Running phase: configurePhase
       > no configure script, doing nothing
       > Running phase: buildPhase
       >     Updating crates.io index
       > error: failed to sync
       >
       > Caused by:
       >   failed to load pkg lockfile
       >
       > Caused by:
       >   failed to get `anyhow` as a dependency of package `ruff v0.2.2 (/build/source/crates/ruff)`
       >
       > Caused by:
       >   failed to query replaced source registry `crates-io`
       >
       > Caused by:
       >   download of config.json failed
       >
       > Caused by:
       >   failed to download from `https://index.crates.io/config.json`
       >
       > Caused by:
       >   [60] SSL peer certificate or SSH remote key was not OK (SSL certificate problem: unable to get local issuer certificate)
       For full logs, run 'nix-store -l /nix/store/ka5nw3sp8kjaqbg803jm8a3l9ss7jq9a-ruff-0.2.2-cargo-deps-vendor.tar.gz.drv'.
error: 1 dependencies of derivation '/nix/store/786i3yx267181f8sg39wagvdp7ans5g9-python3.11-ruff-0.2.2.drv' failed to build
error: 1 dependencies of derivation '/nix/store/1yb22hm4kpjgb4xi914jg9m2cc2a3ih1-python3.11-mre-0.1.0.drv' failed to build

Steps To Reproduce
Steps to reproduce the behavior:

Set up a MITM proxy and trust the certificate in the system
Copy the following files somewhere
Run nix build

flake.nix

{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    poetry2nix = {
      url = "github:nix-community/poetry2nix";
      inputs.flake-utils.follows = "flake-utils";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = {
    self,
    nixpkgs,
    flake-utils,
    poetry2nix,
  }:
    flake-utils.lib.eachDefaultSystem (system: let
      pkgs = import nixpkgs {inherit system;};
      myPoetry2nix = poetry2nix.lib.mkPoetry2Nix {inherit pkgs;};
    in {
      packages.default = myPoetry2nix.mkPoetryApplication {
        projectDir = ./.;
      };
    });
}

pyproject.toml

[tool.poetry]
name = "mre"
version = "0.1.0"
description = "Minimum Reproducible Example"
authors = []

[tool.poetry.dependencies]
python = "^3.11"

[tool.poetry.group.dev.dependencies]
ruff = "0.2.2"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

poetry.lock

# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand.

[[package]]
name = "ruff"
version = "0.2.2"
description = "An extremely fast Python linter and code formatter, written in Rust."
optional = false
python-versions = ">=3.7"
files = [
    {file = "ruff-0.2.2-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0a9efb032855ffb3c21f6405751d5e147b0c6b631e3ca3f6b20f917572b97eb6"},
    {file = "ruff-0.2.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d450b7fbff85913f866a5384d8912710936e2b96da74541c82c1b458472ddb39"},
    {file = "ruff-0.2.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecd46e3106850a5c26aee114e562c329f9a1fbe9e4821b008c4404f64ff9ce73"},
    {file = "ruff-0.2.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e22676a5b875bd72acd3d11d5fa9075d3a5f53b877fe7b4793e4673499318ba"},
    {file = "ruff-0.2.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1695700d1e25a99d28f7a1636d85bafcc5030bba9d0578c0781ba1790dbcf51c"},
    {file = "ruff-0.2.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:b0c232af3d0bd8f521806223723456ffebf8e323bd1e4e82b0befb20ba18388e"},
    {file = "ruff-0.2.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f63d96494eeec2fc70d909393bcd76c69f35334cdbd9e20d089fb3f0640216ca"},
    {file = "ruff-0.2.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a61ea0ff048e06de273b2e45bd72629f470f5da8f71daf09fe481278b175001"},
    {file = "ruff-0.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1439c8f407e4f356470e54cdecdca1bd5439a0673792dbe34a2b0a551a2fe3"},
    {file = "ruff-0.2.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:940de32dc8853eba0f67f7198b3e79bc6ba95c2edbfdfac2144c8235114d6726"},
    {file = "ruff-0.2.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:0c126da55c38dd917621552ab430213bdb3273bb10ddb67bc4b761989210eb6e"},
    {file = "ruff-0.2.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:3b65494f7e4bed2e74110dac1f0d17dc8e1f42faaa784e7c58a98e335ec83d7e"},
    {file = "ruff-0.2.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1ec49be4fe6ddac0503833f3ed8930528e26d1e60ad35c2446da372d16651ce9"},
    {file = "ruff-0.2.2-py3-none-win32.whl", hash = "sha256:d920499b576f6c68295bc04e7b17b6544d9d05f196bb3aac4358792ef6f34325"},
    {file = "ruff-0.2.2-py3-none-win_amd64.whl", hash = "sha256:cc9a91ae137d687f43a44c900e5d95e9617cb37d4c989e462980ba27039d239d"},
    {file = "ruff-0.2.2-py3-none-win_arm64.whl", hash = "sha256:c9d15fc41e6054bfc7200478720570078f0b41c9ae4f010bcc16bd6f4d1aacdd"},
    {file = "ruff-0.2.2.tar.gz", hash = "sha256:e62ed7f36b3068a30ba39193a14274cd706bc486fad521276458022f7bccb31d"},
]

[metadata]
lock-version = "2.0"
python-versions = "^3.11"
content-hash = "a71d5fc0356d9d321240a105bf2b86148d633f7f0f352f370c3ef686fb28b2c8"

Expected behavior
Project gets built.
Additional context
This is similar to #89526, but the error message is slightly different. Moreover, I am using Nix on Manjaro, not NixOS, so I think it is a different issue. I tried setting all of the environment variables mentioned by reporter of the previous ticket, but it didn't help.
Notify maintainers
@figsoda @zowoq
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.84-1-MANJARO, Manjaro Linux, noversion, rolling`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.21.2`
 - nixpkgs: `/home/cezdro/.nix-defexpr/channels/nixpkgs`

Add a :+1: reaction to issues you find important.

The issue seems to be CARGO_HTTP_CAINFO being set to nixpkgs cacert. It probably should be set to honor nix's ssl-cert-file configuration option if possible
ran with set -x under a nix develop to pick out the env var.
$ nix develop /nix/store/flc8rvyw15ds0d8ypk6896xj5b86lxyb-nix-trace-0.2-vendor.tar.gz.drv
$ genericBuild
<SNIP>
Running phase: buildPhase
    Updating crates.io index
error: failed to sync
<SNIP>

$ export CARGO_HTTP_CAINFO=/nix/store/3yj2bifa5d0jkv68v4izdxl6kqcg9xzy-nss-cacert-3.98/etc/ssl/certs/ca-bundle.crt
$ cargo vendor package-vendor.tar.gz-env --respect-source-config
    Updating crates.io index
error: failed to sync
<SNIP>
$ export CARGO_HTTP_CAINFO=/etc/ssl/certs/ca-certificates.crt
$ cargo vendor package-vendor.tar.gz-env --respect-source-config    # succeeds

Does that mean that anything written in Rust is not buildable behind an enterprise firewall/proxy?

I think so. I have to test it yet

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/issues-when-suggesting-nixos-within-corporate-environments/28629/53

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/cargo-behind-vpn/54833/1


Dynamic Low-Level Code

Most 'learn more' functions on the Manufacturing Setup page lead to this help page.  Can you please define the fields DYNAMIC LOW-LEVEL CODE and OPTIMISE LOW-LEVEL code calculations as these do not appear to be defined anywhere (i.e. what do these switches do?)

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

ID: 640a66c0-fa25-ff03-2590-b52c6bec5655
Version Independent ID: 388e1852-54bc-32c4-b8e1-a69f513ab82a
Content: Design Details - Planning Parameters - Business Central
Content Source: business-central/design-details-planning-parameters.md
Service: dynamics365-business-central
GitHub Login: @SorenGP
Microsoft Alias: edupont

Hello Chris,
Thanks for pointing this out to us! I've added a work item to our backlog to get more complex fields explained. Specifically for the  Dynamics Low-level Code field, I found an article in the Dynamics NAV docs that you might find useful: https://docs.microsoft.com/en-us/previous-versions/dynamicsnav-2016/hh178594(v=nav.90)

Now live: https://docs.microsoft.com/en-us/dynamics365/business-central/design-details-planning-parameters#use-low-level-codes-to-manage-derived-demand


error

FETCHING: Re Zero kara Hajimeru Isekai Seikatsu - Director's Cut
Process Process-2:
Traceback (most recent call last):
File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.6/dist-packages/HorribleDownloader/cmd.py", line 121, in fetch_episodes
new = list(filter(lambda s: ep_filter(s["episode"]), episodes))
File "/usr/local/lib/python3.6/dist-packages/HorribleDownloader/cmd.py", line 121, in
new = list(filter(lambda s: ep_filter(s["episode"]), episodes))
File "/usr/local/lib/python3.6/dist-packages/HorribleDownloader/cmd.py", line 86, in generated_filter
return any([test(float(ep)) for test in tests])
File "/usr/local/lib/python3.6/dist-packages/HorribleDownloader/cmd.py", line 86, in
return any([test(float(ep)) for test in tests])
ValueError: could not convert string to float: '01B'
Couldn't find specified anime. Exiting

Thank you for using horrible-downloader!
Can you please tell me what did you do, what is the expected result and what os are you using?

Downloaded title "Re Zero kara Hajimeru Isekai Seikatsu - Director's Cut", then I got this error.
All is well with the other titles.
Downloaded with this command: (horrible-downloader -d "Re Zero kara Hajimeru Isekai Seikatsu - Director's Cut" -e 1)
OC: Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-169-generic x86_64)

I think the problem is that on the same page, the place immediately two different versions and so the loader cannot understand which one to pump out.

I will try to work on a solution this week. Sorry for keeping you waiting.

The new re:zero season brought back this issue. It's a bit annoying having letters in the title and parsing it is weird.
horriblesubs.info don't sort stuff logically and it's adding to the complexity. It would be nice to solve this issue but because this is happening only with this specific anime, I prefer to just ignore it.
If anyone wants to try and tackle the problem, go ahead, I'll be glad.


Add VideoManager extension

Hello,
I add to implement the VideoManager (https://github.com/martijn00/XamarinMediaManager) extension for a project of mine. Here is the pull request of my development.
I tried to stay as close as possible of the OxyPlot extension implementation.
I works fine on my project but I couldn't compile the fabulous project successfully.
Could you have a look?
Thanks,
Jonathan

There's a few comments, but they're mostly about consistency and integration with this repo. 😄
Your PR is great!
Thanks for sharing your extension!

Do everything @TimLariviere. Feel free to do another pass on my submission.
Thanks,
Jonathan

Thanks! You did great!
 :)
Can you write a quick documentation about your extension like this, please?
https://github.com/fsprojects/Fabulous/blob/master/docs/views-skiasharp.md

Only 1 thing remaining, my comment might have gone unnoticed. :)
Can you write a quick documentation about your extension like this, please?
https://github.com/fsprojects/Fabulous/blob/master/docs/views-skiasharp.md
You also need to add a link to your new Markdown file in this file:
https://github.com/fsprojects/Fabulous/blob/master/docs/contents-views.md

Yes I completely missed it. I'm not sure to have any time this week-end but I will do that in the next few days for sure.
Thanks again for the review,
Jonathan

You can have another round @TimLariviere. Don't hesitate to make any new comment.
Thanks,
Jonathan


What is the LDAmapping?

Dear Experts
Unrecognized function or variable 'LDAmapping'.
Error in Dataset_C_meta_classification (line 192)
map_train.deoxy.x = LDAmapping(C.deoxy, fv_train.deoxy.x, 'meta');
Any help or suggestion  is much appreciated

Dear Experts
Unrecognized function or variable 'LDAmapping'.
Error in Dataset_C_meta_classification (line 192)
map_train.deoxy.x = LDAmapping(C.deoxy, fv_train.deoxy.x, 'meta');
Any help or suggestion is much appreciated


Filenames with spaces and/or brackets are not supported

 pgbadger 20200411/*
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `gunzip -l 20200411/000000 (1).gz | grep -E '^\s*[0-9]+' | awk '{print $2}''

This is on MacOS btw
This is pretty common filename pattern if you download file using Chrome :)

Thanks for the report, commit f54b4c9 fixes this issue.


Customer feedback: the refund limit in case of exchange is still not clear

Customer shared feedback as they were confused if the $50k cancellation/refund limit is applicable or not when they execute a larger RI exchange. One bullet point is in the documentation on this topic - but clearer description is requested.

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

ID: 3f0af130-6b0a-0a7e-5fd9-e67810f66b45
Version Independent ID: 445b1c77-472a-e0f7-45fc-168f4a2454f3
Content: Self-service exchanges and refunds for Azure Reservations
Content Source: articles/cost-management-billing/reservations/exchange-and-refund-azure-reservations.md
Service: cost-management-billing
Sub-service: reservations
GitHub Login: @bandersmsft
Microsoft Alias: banders

Thanks for bringing this to our attention. We will investigate it further and update you shortly.

https://github.com/MicrosoftDocs/azure-docs-pr/pull/196948
@atoroszv Thanks for your feedback. I've updated the article to add the following text for clarity under https://docs.microsoft.com/azure/cost-management-billing/reservations/exchange-and-refund-azure-reservations#cancel-exchange-and-refund-policies:
Let's look at an example with the previous points in mind. If you bought a $300,000 reservation, you can exchange it at any time for another reservation that equals or costs more (of the remaining reservation balance, not the original purchase price). For this example:

There's no penalty or annual limits for exchanges.
The refund that results from the exchange doesn't count against the refund limit.

#please-close


Bluetooth: 1.12 release notes

Codecov Report

Merging #8221 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #8221   +/-   ##
=======================================
  Coverage   64.53%   64.53%
=======================================
  Files         420      420
  Lines       40101    40101
  Branches     6762     6762
=======================================
  Hits        25879    25879
  Misses      11104    11104
  Partials     3118     3118

Continue to review full report at Codecov.

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


Redisson sessions that never dies - missing TTL

For the record, we are using Redisson 3.10.4 with Redisson Tomcat 8.
In som cases we end up with shallow sessions without a TTL that fills up Redis. These junk sessions should probably not end up in Redis in the first place, but due to our complex application that is the situation for now. Anyway, there should be a guard in the Redis code that avoid sessions beeing created without a TTL. I'll explain why this happens and a suggestion for a solution which we are running ourselves in production.
This particular case arises when a request includes a session id which is neither stored locally in Tomcat or in Redis and it is immediately abandoned(no more interaction with the session). Then the public Session findSession(String id)  code in RedissonSessionManager is triggered, it doesn't find the session of course, but a new empty session is created and persisted in Redis where they stay forever. The fix is obviously to setMaxInactiveInterval on the session, which we in fact have done. But to accomplish this we have overriden the default RedissonSessionManager with out own custom RedissonSessionManager and added only session.setMaxInactiveInterval(getContext().getSessionTimeout() * 60), reusing the logic used when creating new sessions. Ideally we wan't to avoid having a custom RedissonSessionManager to solve what should probably be part of the default RedissonSessionManager.
@mrniko Could you please add this task to the next milestone?

I think this is a duplicate of https://github.com/redisson/redisson/issues/2019

@jchobantonov Great! Just verified by using 3.10.7 in our dev environment. I can't reproduce it anymore :)


[BUG] Crowdsec bouncer plugin not communicating with LAPI

Describe the bug 🐛
Hi,
I am trying to setup Crowdsec on kubernetes with traefik (ARM64). The engine is working and detecting attacks. However the traefik plugin is not performing the BAN action.
The logs suggest that the plugin is loaded.
2024-12-02T23:17:10Z INF Loading plugins... plugins=["crowdsec-bouncer-traefik-plugin","rewrite-body"]
2024-12-02T23:17:10Z INF Plugins loaded. plugins=["crowdsec-bouncer-traefik-plugin","rewrite-body"]

However It doesn't look like there is any communication from the traefik POD
crowdsec-lapi-5855c5b466-z97m6:/# cscli bouncer list
─────────────────────────────────────────────────────────────────────
 Name     IP Address  Valid  Last API pull  Type  Version  Auth Type
─────────────────────────────────────────────────────────────────────
 traefik              :heavy_check_mark:                                   api-key
─────────────────────────────────────────────────────────────────────
crowdsec-lapi-5855c5b466-z97m6:/# cscli bouncer inspect traefik
───────────────────────────────────────────────────────
 Bouncer: traefik
───────────────────────────────────────────────────────
 Created At    2024-12-02 22:14:21.571134718 +0000 UTC
 Last Update   2024-12-02 22:14:21.571135111 +0000 UTC
 Revoked?      false
 IP Address
 Type
 Version
 Last Pull
 Auth type     api-key
 OS            ?
 Auto Created  false

This is confirmed with a tcpdump. It shows that communication is possible.
FROM the traefik POD;
~ $ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 62:2C:B9:EC:DF:1C
          inet addr:<IP_ADDRESS>  Bcast:<IP_ADDRESS>  Mask:<IP_ADDRESS>
          inet6 addr: fe80::602c:b9ff:feec:df1c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:8951  Metric:1
          RX packets:152450 errors:0 dropped:0 overruns:0 frame:0
          TX packets:126492 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:297133391 (283.3 MiB)  TX bytes:288416051 (275.0 MiB)

~ $ wget http://crowdsec-service.crowdsec:8080
Connecting to crowdsec-service.crowdsec:8080 (<IP_ADDRESS>:8080)
wget: server returned error: HTTP/1.1 404 Not Found

404 is expected, it's just a test. I have no idea what the endpoint API format is.

TCPDUMP on the crowdsec POD
kubectl debug -n crowdsec -i crowdsec-lapi-5855c5b466-z97m6 --image=nicolaka/netshoot --target=crowdsec-lapi -- tcpdump host <IP_ADDRESS>
Targeting container "crowdsec-lapi". If you don't see processes from this container it may be because the container runtime doesn't support this feature.
Defaulting debug container name to debugger-fjd2g.
If you don't see a command prompt, try pressing enter.
10:31:06.815659 IP 10-42-0-51.traefik.traefik.svc.cluster.local.57326 > crowdsec-lapi-5855c5b466-z97m6.8080: Flags [S], seq 516312827, win 62377, options [mss 8911,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
10:31:06.815697 IP crowdsec-lapi-5855c5b466-z97m6.8080 > 10-42-0-51.traefik.traefik.svc.cluster.local.57326: Flags [S.], seq 52824467, ack 516312828, win 62293, options [mss 8911,sackOK,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>,nop,wscale 7], length 0
10:31:06.815720 IP 10-42-0-51.traefik.traefik.svc.cluster.local.57326 > crowdsec-lapi-5855c5b466-z97m6.8080: Flags [.], ack 1, win 488, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
10:31:06.815782 IP 10-42-0-51.traefik.traefik.svc.cluster.local.57326 > crowdsec-lapi-5855c5b466-z97m6.8080: Flags [P.], seq 1:107, ack 1, win 488, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 106: HTTP: GET / HTTP/1.1
10:31:06.815788 IP crowdsec-lapi-5855c5b466-z97m6.8080 > 10-42-0-51.traefik.traefik.svc.cluster.local.57326: Flags [.], ack 107, win 486, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
10:31:06.816082 IP crowdsec-lapi-5855c5b466-z97m6.8080 > 10-42-0-51.traefik.traefik.svc.cluster.local.57326: Flags [P.], seq 1:102, ack 107, win 486, options

Expected behavior 👀
There should be some communication attempt from the traefik POD to the crowdsec POD. When I conduct the test above I can see traffic. At all other times there is none.
Log is set to DEBUG, but there don't appear to be any plugin logs in the traefik pod other than plugin loaded (above)
Here are the configurations;
resource "helm_release" "traefik" {
  namespace  = "traefik"
  name       = "traefik"
  repository = "https://traefik.github.io/charts"
  chart      = "traefik"
  version    = "33.1.0-rc1"
  values     = [local.traefik-helm-manifest]
  replace    = true
  force_update = true
  upgrade_install = true
}

locals {
  traefik-helm-manifest = <<EOF
deployment:
  additionalVolumes:
  - name: plugins
    persistentVolumeClaim:
      claimName: "${kubernetes_persistent_volume_claim.traefik_plugins.metadata.0.name}"
additionalVolumeMounts:
- name: plugins
  mountPath: /plugins-storage
securityContext:
  privileged: true
  allowPrivilegeEscalation: true
  capabilities:
    drop:
    add: [ALL]
  seccompProfile:
    type: RuntimeDefault
providers:
  kubernetesCRD:
    enabled: true
logs:
  general:
    level: "${var.traefik-log-level}"
  access:
    enabled: ${var.traefik-access-log}
service:
  spec:
    externalTrafficPolicy: "${var.traefik-external-access-policy}"
experimental:
  plugins:
    rewrite-body:
      moduleName: "github.com/packruler/rewrite-body"
      version: "v1.2.0"
    crowdsec-bouncer-traefik-plugin:
      moduleName: "github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin"
      version: "v1.3.5"
EOF
}

resource "helm_release" "crowdsec" {
  namespace  = var.crowdsec-namespace
  name       = var.crowdsec-name
  repository = "https://crowdsecurity.github.io/helm-charts"
  chart      = "crowdsec"
  values     = [local.crowdsec-helm-values]

  set {
    name  = "agent.resources.limits.memory"
    value = "250Mi"
  }

  set {
    name  = "agent.resources.limits.cpu"
    value = "500m"
  }

  set {
    name  = "agent.resources.requests.cpu"
    value = "50m"
  }

  set {
    name  = "agent.resources.requests.memory"
    value = "250Mi"
  }
}

resource "kubernetes_manifest" "crowdsec-middlewarre" {
  manifest = yamldecode(local.crowdsec-middleware-config)
}

locals {

  crowdsec-middleware-config = <<EOF
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: bouncer
  namespace: traefik
spec:
  plugin:
    bouncer:
      enabled: true
      crowdsecMode: stream
      lapi: enabled
      crowdsecLapiScheme: http
      crowdsecLapiHost: ${var.crowdsec-name}-service.${var.crowdsec-namespace}:8080
      CrowdsecLapiKey: "${jsondecode(data.aws_secretsmanager_secret_version.rancher-current.secret_string)["bouncer-key-traefik"]}"
      crowdsecAppsecEnabled: false
      logLevel: DEBUG

EOF

  crowdsec-helm-values = <<EOF
# for raw logs format: json or cri (docker|containerd)
container_runtime: containerd
agent:
  # Specify each pod whose logs you want to process
  acquisition:
    # The namespace where the pod is located
    - namespace: traefik
      # The pod name
      podName: traefik-*
      # as in crowdsec configuration, we need to specify the program name to find a matching parser
      program: traefik
  env:
    - name: COLLECTIONS
      value: "crowdsecurity/traefik"
lapi:
  dashboard:
    enabled: false
    image:
      repository: apollof/crowdsec_metabase
      tag: latest
  env:
    # To enroll the Security Engine to the console
    - name: ENROLL_KEY
      value: "${jsondecode(data.aws_secretsmanager_secret_version.rancher-current.secret_string)["crowdsec-enroll-key"]}"
    - name: ENROLL_INSTANCE_NAME
      value: "${data.terraform_remote_state.rancher-infra.outputs.fqdn}"
    - name: ENROLL_TAGS
      value: "rancher"
    - name: BOUNCER_KEY_traefik
      value: "${jsondecode(data.aws_secretsmanager_secret_version.rancher-current.secret_string)["bouncer-key-traefik"]}"
  resources:
    limits:
      cpu: 500m
      memory: 500Mi
    requests:
      cpu: 50m
      memory: 250Mi
appsec:
  enable: true

EOF

}

variable "cluster-issuer" {
  type    = string
  default = "letsencrypt"
}

variable "amazon-ebs-class" {
  type    = string
  default = "amazon-ebs"
}

variable "external-dns-name" {
  type    = string
  default = "external-dns"
}

variable "crowdsec-name" {
  type    = string
  default = "crowdsec"
}

variable "crowdsec-namespace" {
  type    = string
  default = "crowdsec"
}

variable "crowdsec-privileged" {
  type    = bool
  default = "true"
}

variable "traefik-log-level" {
  type    = string
  default = "INFO"
  #default = "DEBUG"
}

variable "traefik-access-log" {
  type    = bool
  default = "true"
}

variable "traefik-external-access-policy" {
  description = "Set to Local for middleware IP Whitelist to work"
  type        = string
  default     = "Local"
}

Version (please complete the following information):

OS: Centos 9 / Kubernetes v1.30.6+k3s1 arm64
Traefik version: traefik:v3.2.1
Plugin version: 1.6.5
Redis ? : Nope

To Reproduce
Steps to reproduce the behavior:
Apply terraform

Will do!

Hi @martinsarrionandia,
Could you enable the plugin debug logs and provide them from Traefik Start to some requests you make.
In 90% of cases, this is enough to identify what is causing the communication issue.
Thanks in advance

traefik_logs.txt

@mathieuHa Hi, any ideas why there is no crd for the plugin type bouncer and where I can find it?

Even though the logs state that the plugin is loaded. I really don't think it is.

Ok I've found the problem. It's basically documentation from the Traefik website and various other sources.  The plugin MUST be labelled bouncer as below.
experimental:
plugins:
rewrite-body:
moduleName: "github.com/packruler/rewrite-body"
version: "v1.2.0"
bouncer:
moduleName: "github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin"
version: "v1.3.5"
And definitely not crowdsec-bouncer-traefik-plugin: like this;
Plugin Documentation

Good job here, it is a classic error for Traefik config.
I close the issue 👍


Crewai's version can't be identified.

Bug Description
I'm installing the latest langflow on my local environement. I'm using Python3.12.
I got the error when I install the langflow. The error message says this.
ERROR: Cannot install langflow and langflow==1.1.1 because these package versions have conflicting dependencies.
The conflict is caused by:
langflow 1.1.1 depends on crewai~=0.86.0
langflow-base 0.1.1 depends on crewai~=0.80.0
To fix this you could try to:

loosen the range of package versions you've specified
remove package versions to allow pip to attempt to solve the dependency conflict

In the above situation, we can't identify which crewai version is required for langflow.
Reproduction
Just install the langflow v1.1.1 on Python3.12.
Expected behavior
The dependency is solved automatically and langchain is installed.
Who can help?
No response
Operating System
Windows11
Langflow Version
1.1.1
Python Version
3.12
Screenshot

Flow File
No response

@oshikata0825 thanks for the report. This is odd, as we've removed CrewAI from the version dependencies of langflow-base. But this was done post 1.1.1 - its only in the main branch.
Could you try uninstalling langflow-base, then reinstalling langflow as a whole? this may still be a bug that needs to be addressed for backwards compatibility, but there shouldnt be anything specifying a crewai requirement for langflow-base anymore.


Document Your code with JSDoc

Proposed title of article
Getting started with JSDoc
Introduction paragraph (2-3 paragraphs):
JSDoc is a JavaScript Documentation Generator API that yields documentation for your JavaScript code. JSDoc documents your modules, libraries, data types, classes, methods and parameters. When writing your code, you need to add comments then JSDOC scans the comments and generates an HTML website for your documentation.
In this article, we will go over the use of JSDoc to generate a documentation for code snippets we will write. We will understand how to generate documentation for classes, methods, objects, variables and modules used in a program.
Key takeaways:

What is JSDoc ?
Initializing JSDoc
Writing comments usable with JSDoc in JavaScript programs
Generating code documentation with JSDoc

References:
Please list links to any published content/research that you intend to use to support/guide this article.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Great topic, @phinaomondi. Topic suggestion approved.
Thanks for submitting your article and we look forward to reviewing and hopefully publishing it. I’m sure our readers will enjoy and find your article on JSDoc very beneficial.