ejabberd: refactor module, add test

Motivation for this change
I run ejabberd.
Things done

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

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

[x] 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 nix-review --run "nix-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)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Can't we use tmpfiles for e.g. creating /var/lock/ejabberdctl and then run the complete unit as the correct user? See also https://github.com/NixOS/nixpkgs/pull/56265.

Can't we use tmpfiles for e.g. creating /var/lock/ejabberdctl and then run the complete unit as the correct user? See also #56265.

A big +1 on not using escalated privileges to launch this service.

Seems like /var/lock/ejabberdctl is not needed for anything anymore, so I dropped that and converted the other two directories to tmpfiles.

@GrahamcOfBorg test ejabberd prosody

How does that even happen? It worked on aarch64 but not x86_64? It works fine on my laptop and desktop.

How does that even happen? It worked on aarch64 but not x86_64? It works fine on my laptop and desktop.

Cookie file /var/lib/ejabberd/.erlang.cookie must be accessible by owner only
Sounds like your spoolDir needs to be created as 0700 and enforced.

It's worth a try. I don't know if it makes a difference though, since it was already working for me on my machines.
I mean, how and why would the mode of the directory influence the mode of its contents?

It was just a guess based on the error message. With the current mode of the directory the file is accessible to more than just the owner.
I'm also confused by this error because it worked on my machine as well.

@ajs124 Fantastic work! :tada:
@dotlambda I'm very happy with this PR. Anything outstanding from your perspective?

@GrahamcOfBorg test ejabberd
@GrahamcOfBorg test prosody


Reword glossary entry for ReplicationController

Reword https://kubernetes.io/docs/reference/glossary/?all=true#term-replication-controller (preview)

Use API resource name for clarity
Mark as deprecated

@tengqm I've revised; are you happy to take a look?

/retitle Reword glossary entry for ReplicationController

@sftim @tengqm Just checking on this status of this pull request.

I think this is ready for another review.

Page preview:
https://deploy-preview-18046--kubernetes-io-master-staging.netlify.com/docs/reference/glossary/?core-object=true

@gochist (as PR wrangler), how does this look to you?

@sftim will you take care of the conflicts please?
I'll leave lgtm to @kbhawkey or @tengqm
/approve

@sftim will you take care of the conflicts please?
I'll leave lgtm to @kbhawkey or @tengqm

Rebased - sorry about the wait.

/hold
pending v1.18 Kubernetes release

/hold cancel
v1.18 release is out.

/lgtm


Replace <- with <|

The <- operator was removed due to JuliaLang/julia#3270.

Closing since it's old


[SE-0396] Correct description for Either type with Codable generics

Hi, I corrected the description for Either with Codable generics.
Please review the changes. Thanks!

For what it's worth, the original text is also grammatically correct; and having the condition (the "where" clause) precede the thing that's applied based on that condition ("are Codable") discloses the information in clearer order, in my opinion.

I see, makes sense! Thank you for clarifying.


Header added using addZuulRequestHeader is not forwarded to micorservics

We have built a Zuul gateway using spring-cloud-starter-netflix-zuul.
In Zuul gateway am adding header using addZuulRequestHeader() method in a ZuulFilter. But could not find the header in request routed to micorservic.
Am using the following versions
spring-cloud.version : Finchley.SR2
spring-boot-starter-parent : 2.0.6.RELEASE
spring-cloud-starter-netflix-zuul : 2.1.0.RELEASE
/**** Zuul Filter ***/
@Component
public class TrackingFilter extends ZuulFilter{

    private static final int      FILTER_ORDER =  1;
    private static final boolean  SHOULD_FILTER=true;

    @Autowired
    private FilterUtils filterUtils;

    @Override
    public String filterType() {
        return FilterUtils.PRE_FILTER_TYPE;
    }

    @Override
    public int filterOrder() {
        return FILTER_ORDER;
    }

    public boolean shouldFilter() {
        return SHOULD_FILTER;
    }

    public Object run() {

        RequestContext ctx = RequestContext.getCurrentContext();
		ctx.addZuulRequestHeader("tmx-correlation-id", java.util.UUID.randomUUID().toString());
        return null;
    }
}

/**** Microservice Controller ***/
@RestController
public class MyController {

    private static final Logger LOGGER = LoggerFactory.getLogger(MyController.class);

    @RequestMapping("/")
    public String external(HttpServletRequest request ) throws InterruptedException {

        string correlationid = request.getHeader("tmx-correlation-id");
        LOGGER.info("correlationid = " + correlationid);

        return "Success";
    }

}

Please learn how to properly format code and logs.
I don't know. That is the mechanism we use in PreDecorationFilter to add headers.
How come you are using Finchley.SR2 but spring-cloud-starter-netflix-zuul : 2.1.0.RELEASE, 2.1.0.x is not compatible with boot 2.0.x?

Hi Spencer,
I changed  spring-cloud-starter-netflix-zuul  version to 2.0.2.RELEASE, still it did not work.
Should I try with different spring-cloud.version? if so please let me know what should I use.

You should let the Spring Cloud BOM manage the dependencies for you.  The latest Finchley release is SR3 please use that.  If you are still having he issue please provide a sample we can use to reproduce the problem.

Hi Ryan,
I tried "Finchley SR3". I also tried removing the "spring-cloud-dependencies" so that Spring manages it. Still its not working.
Within Zuul Gateway I have implemented Token Authentication using springs WebSecurityConfigurerAdapter's method configure(HttpSecurity httpSecurity) method.
Please let me know whether this might have any relation to this issue.

Can you provide a complete, minimal, verifiable sample that reproduces the problem? It should be available as a GitHub (or similar) project or attached to this issue as a zip file.

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.


Ios media constraints

Same as #140 but merged with the latest version of master

whats the status of this?

sorry for late, I will find time to review it.
@ramneekhanda have you tried it ?

This is just #140 but with fixes for the merge conflicts

@RangerMauve yes, I know. thank you for the rebasing :)
That PR does not get reviewed before.
We need to check this PR is compatible with current logic and the discussions in #288
There are fairly large changes since then.

Looking at the code, this seems to be following a similar code style, and it's doing the conversion to strings in the Objective-C side instead of the JS side like y'all proposed in #288.

@RangerMauve
The way proposed in #288 should be:

we parse all video constraints in JS side, so native side would always receive mandatory constraints
mandatory constraints can only be either false or a dictionary contains minHeight / minWidth / minFps ...etc. And native can feed constraints directly to the underlying webrtc without bother parsing.

the main benefit would be we can change the JS api faster aligned with the spec without change the underlying webrtc api. And lot more easier to test/maintain/customization
pseudo code would be:
JS:
let videoConstraints = false;
if video:
    if typeof(video) === 'boolean':
        videoConstraints = defaultVideoConstraints
    else if video is dictionary:
        // --- parse every thing we needed and some checks
        videoConstraints = {
            ...defaultVideoConstraints,
            ...video,
        }

Native
just consume what JS passed in.

In this PR:

the mandatory constraints should be a Dictionary instead an Array.

since we only handle sourceID in optionalConstraints, I think we can temporary ignore optionalConstraints.
Then create a PR that do the JS parsing like above pesudo code.
The Native change should be small, maybe just one line to consume mandatory constraints, like:
[[RTCMediaConstraints alloc] initWithMandatoryConstraints:mandatory optionalConstraints:nil];

I create a new PR do what I said above.
moved to #370
please help to test and review


python37Packages.altair: 2.3.0 -> 2.4.1

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/python3.7-altair/versions.
meta.description for python37Packages.altair is: '"A declarative statistical visualization library for Python."'.

Checks done (click to expand)

built on NixOS
/bin/sh passed the binary check.
1 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 2.4.1 with grep in /nix/store/44xrynszc1fy64r5rm31yrnmf9zjxdw0-python3.7-altair-2.4.1
directory tree listing: https://gist.github.com/36574526ce926900dc840e09497921ee
du listing: https://gist.github.com/ff5e41f388d5cda6474cfefd33c579a9

Rebuild report (if merged into master) (click to expand)

8 total rebuild path(s)
2 package rebuild(s)
2 x86_64-linux rebuild(s)
2 i686-linux rebuild(s)
2 x86_64-darwin rebuild(s)
2 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
python27Packages.altair
python37Packages.altair

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/44xrynszc1fy64r5rm31yrnmf9zjxdw0-python3.7-altair-2.4.1 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A python37Packages.altair https://github.com/r-ryantm/nixpkgs/archive/7078038da56476ee1a8fa0f3582dfa0268dd41ac.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/44xrynszc1fy64r5rm31yrnmf9zjxdw0-python3.7-altair-2.4.1
ls -la /nix/store/44xrynszc1fy64r5rm31yrnmf9zjxdw0-python3.7-altair-2.4.1/bin

cc @teh for testing.

LGTM


Added error handling for input file

Added an error case if the file to execute does not exist or can't be opened. Resolves #5.

LGTM, I'll merge once I fix the Windows build ☹

@kwalberg sorry to shift so much under your feet here, but would you be able to manually rebase this?

I realized that I could rebase it myself while keeping your name on the commit. I'm closing the pull request because it didn't close on its own.


Update latest parboiled

About this change - What it does
Updates to latest parboiled  which fixes the issues of needing specific JVM parameters due to changes to JDK's unsafe
Why this way
I just checked on my system whether the latest version works with JDK11/JDK17 and it works without needing the .jvmpopts

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.3%

Covered Lines:
263

Relevant Lines:
343

💛  - Coveralls


Do not use weird implementation of contains

maybe faster because one less method call? (I didn't look at the framework code, just speculation)


[Task] Analyze the backup restore test cases and add necessary test cases

What's the task? Please describe.
Backup restore test cases should be revisit and the missed out cases should be added.
Describe the items of the task (DoD, definition of done) you'd like.

[x] Analyze the backup and restore test cases.
- Restoring from 1st backup when there are multiple backups exist is missed out.
[x] Create the test skeleton for test cases
[x] Implement the test cases.
[x] Run the cases and verify.

Additional context
https://github.com/longhorn/longhorn/issues/3111

Passed in the nightly test run https://ci.longhorn.io/job/public/job/master/job/ubuntu/job/amd64/job/longhorn-tests-ubuntu-amd64-s3/11/testReport/tests/test_basic/test_restore_basic_s3_/

Good thanks @khushboo-rancher


chore(main): release 0.26.3

:robot: I have created a release beep boop
0.26.3 (2023-05-11)
Bug Fixes

Pipelines: replace Select widget by textarea (fd8016d)
Pipelines: Set a bigger negative margin & padding to not crop the ring around inputs (f2bfe4d)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/BLSQ/openhexa-frontend/releases/tag/0.26.3 :sunflower:


Support authenticated registries

Currently following steps are required to support authenticated registry (thanks to @stevenhorsman )

Create an auth.json file as per https://github.com/containers/image/blob/main/docs/containers-auth.json.5.md and put it in your peer pod vm image in /root/.config/containers/auth.json
Build the pod vm image with skopeo still included.

Embedding the auth.json in the VM image or retrieving the auth.json via the attestation process is required to support confidential computing use case. However this also creates a practical problem when using CAA for pure container isolation cases. Consider the following use cases:

A customer getting started with CAA to try out isolated VM containers in the cloud for their workloads. Thereafter moving to confidential containers using the same underlying stack.
Having a simple development and test workflow for the stack.

Creating this issue to brainstorm how the standard K8s workflow of using ImagePullSecrets in the manifest can be accommodated.
cc @stevenhorsman @yoheiueda @liudalibj for your comments and guidance

@huoqifeng - I think you had a suggestion of using an init containers to talk to the kube api-server. I'm not sure if we need that for CC as we have the KBC, but maybe that approach could help with the nested sandbox case here?

Not sure whether it suit for this case, the idea is we embed an init-container image in the PeerPod VM OS Image and inject the init-container for PeerPod. This init-container can be launched without pull image outside (as its embedded in the OS Image), It can then pull the auth.json somewhere (e.g. the secrets or configmap in api-server) and put it in /root/.config/containers/auth.json. The later containers will leverage this auth.json

As described in this comment https://github.com/confidential-containers/cloud-api-adaptor/issues/99#issuecomment-1189209126, the custom conatinerd does not support image pull secrets, while kata agent protocol supports image pull secrets in PullImageRequest.
This means that CAA can inject an image pull secret into a PullImageRequest, since we have an agent protocol proxy in CAA.  CAA receives pod name and namespace from Kata shim, so it is possible to talk to kube API server to retrieve its pod definition that includes the image pull secret.
Another possible solution is to introduce mutating admission webhook to alter the pod definition to mount the Secret that contains the pull image secret to the pod as a volume. Then, kubelet prepares a directory that contains the Secret in a local directory, and CAA can access to the secret in the directory. CAA can also remove the volume definition from the CreateContainerRequest not to disclose the secret data to container workloads.

If the CAA is running as container then it can talk to kube API server to retrieve its pod definition that includes the image pull secret and get the image pull secret.
at here we have two option just follow comments in https://github.com/confidential-containers/cloud-api-adaptor/issues/344#issuecomment-1306769340 and https://github.com/confidential-containers/cloud-api-adaptor/issues/344#issuecomment-1306774963

put the queried image pull secret to /root/.config/containers/auth.json in the podvm via file copy or cloud-init data.
pass the queried image pull secret to PullImageRequest via agent protocol proxy.

One thing need think about is that how we protect the image pull secret?
Will we use it directly or can we provide a more safely way(eg. encrypt the secret before put as secret object) so that not to disclose by kube admin?

As described in this comment #99 (comment), the custom conatinerd does not support image pull secrets, while kata agent protocol supports image pull secrets in PullImageRequest.
This means that CAA can inject an image pull secret into a PullImageRequest, since we have an agent protocol proxy in CAA. CAA receives pod name and namespace from Kata shim, so it is possible to talk to kube API server to retrieve its pod definition that includes the image pull secret.
Another possible solution is to introduce mutating admission webhook to alter the pod definition to mount the Secret that contains the pull image secret to the pod as a volume. Then, kubelet prepares a directory that contains the Secret in a local directory, and CAA can access to the secret in the directory. CAA can also remove the volume definition from the CreateContainerRequest not to disclose the secret data to container workloads.

@yoheiueda I agree this is a reasonable approach before containerd support image pull secret, which follows the existing CRI and k8s schema. a client to talk with api-server is possible as all certs are are available on worker. Maybe, @liudalibj concerns for secret exposure is another problem and can be addressed in future/separate issue?

As described in this comment #99 (comment), the custom conatinerd does not support image pull secrets, while kata agent protocol supports image pull secrets in PullImageRequest.
This means that CAA can inject an image pull secret into a PullImageRequest, since we have an agent protocol proxy in CAA. CAA receives pod name and namespace from Kata shim, so it is possible to talk to kube API server to retrieve its pod definition that includes the image pull secret.
Another possible solution is to introduce mutating admission webhook to alter the pod definition to mount the Secret that contains the pull image secret to the pod as a volume. Then, kubelet prepares a directory that contains the Secret in a local directory, and CAA can access to the secret in the directory. CAA can also remove the volume definition from the CreateContainerRequest not to disclose the secret data to container workloads.

@yoheiueda I agree this is a reasonable approach before containerd support image pull secret, which follows the existing CRI and k8s schema. a client to talk with api-server is possible as all certs are are available on worker. Maybe, @liudalibj concerns for secret exposure is another problem and can be addressed in future/separate issue?

I agree this approach too, the sample code to get serverName under namespace via kubeCoreClientset
secret := kubeCoreClientset.CoreV1().Secrets(namespace).Get(context, secretName, metav1.GetOptions{})

@liudalibj @yoheiueda do you know if adding the secret to the PullImageRequest require any changes to image-rs or image-rs already has support for it ?

@liudalibj @yoheiueda do you know if adding the secret to the PullImageRequest require any changes to image-rs or image-rs already has support for it ?

DaLi and Yohei might have a better answer, but if we are talking about the kata agent PullImageRequest and injecting it to the request from the agent-protocol-forwarder - it always has support for user:password style credentials and the the agent flows them into image-rs. I've not tested this mechanism for about a year, but it used to work when I wrote to the original kata-agent pull image code. I hope that helps and I've not got the wrong end of the stick!

@liudalibj @yoheiueda do you know if adding the secret to the PullImageRequest require any changes to image-rs or image-rs already has support for it ?

DaLi and Yohei might have a better answer, but if we are talking about the kata agent PullImageRequest and injecting it to the request from the agent-protocol-forwarder - it always has support for user:password style credentials and the the agent flows them into image-rs. I've not tested this mechanism for about a year, but it used to work when I wrote to the original kata-agent pull image code. I hope that helps and I've not got the wrong end of the stick!

Yeah the image-rs support user:password style credentials for now, refer to https://github.com/confidential-containers/image-rs/blob/main/src/image.rs#L174

More details https://github.com/confidential-containers/image-rs/blob/main/docs/image_auth.md

Another option for the non-confidential case, is to add the creds file to the pod VM via the userdata.
Ref: https://github.com/confidential-containers/cloud-api-adaptor/blob/staging/pkg/adaptor/hypervisor/aws/service.go#L176
A possible approach:

Add a CLI option to CAA to provide an option auth.json file. CAA provides this file to the Pod VM via userdata during launch
The auth.json can be a k8s secret object and provided via volume mount to the CAA daemonset.

We are already using userdata to put the daemon.json. Only restriction will be the userdata limit.
However, this will be a dynamic mechanism in addition to the static embedding of auth.json in the pod VM image.
This approach of course won't be acceptable for confidential containers case, but for coco case we anyway would prefer to retrieve it post successful attestation.
wdyt @snir911 @stevenhorsman @liudalibj  @huoqifeng ?

Nice! the second approach sounds better to me, maybe even just use the pull-secrets used by the caa pod.
still a custom imagePullSecrets of pod won't be respected until fully delegating the pull request solution, however, for now, sounds to me like a good option (assuming passing secrets in userdata is acceptable)

Let's take this as an example:
apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: regcred

regcred will not be handled by customized containerd, I think what @yoheiueda suggested is to retrieve this regcred in CAA and add them into *pb.PullImageRequest in https://github.com/confidential-containers/cloud-api-adaptor/blob/staging/pkg/adaptor/proxy/service.go#L211 when detected there is a imagePullSecrets defined in Pod descriptor.
@yoheiueda please correct me if I undestood wrong.

Closing this issue since we have support for using authenticated registry by injecting auth.json to podvm


Update jest, @types/jest, typescript versions

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (78db066) 98.45% compared to head (1e81e65) 98.45%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #27   +/-   ##
=======================================
  Coverage   98.45%   98.45%
=======================================
  Files           4        4
  Lines         194      194
  Branches       59       59
=======================================
  Hits          191      191
  Misses          2        2
  Partials        1        1

Flag
Coverage Δ

unittest
98.45% <ø> (ø)

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


Mex files for Win 64, version 0.9.20

Hi:
When I tried to setup vlfeat on my machine (Win 10/Matlab 2016a), it popped up the following message:
Invalid MEX-file 'C:\Users***\Documents\MATLAB\vlfeat-0.9.20\toolbox\mex\mexw64\vl_version.mexw64':
The specified module could not be found.
The same problem happened to a few other mex modules as well when I ran the demo/test.
I downloaded v0.9.19 and it is running fine. I am thinking the mex files contained in version 0.9.20 might be broken.
Thanks, XW

Hi,
When I am trying to compile vlfeat (0.9.20 or 0.9.19, either cases) on my machine (Win 10/Matlab 2016a), using the command 'vl_compile', I am getting the following error:
Error using mex
vl_fisher.c
C:\Programs Files ( x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h(1925): warning C4005:
'snprintf': macro redefinition
[directory_path]'\vlfeat-0.9.19-bin\vlfeat-0.9.19\vl\host.h(315): note: see previous
definition of 'snprintf'
C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt\stdio.h(1927): fatal error
C1189: #error:  Macro definition of snprintf conflicts with Standard Library function declaration
Error in vl_compile (line 140)
mex(cmd{:}) ;
Any help will be much appreciated.
Thanks,
Manu

http://stackoverflow.com/questions/27754492/vs-2015-compiling-cocos2d-x-3-3-error-fatal-error-c1189-error-macro-definition


⚠ Bofrost.be has degraded performance

In 337b9b3, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1801 ms

Resolved: Bofrost.be performance has improved in daa4332 after 6 minutes.


Make Crystalize test mod

Showcase Crystalize APIs and capabilities by making a separate testmod instead of putting everything into a single mod.

Still missing command for deleting animation controllers and adding IK controller but it is enough to demonstrate Crystalize API for Fabric.


feature(redis) support redis sentinel

fix #19
the full raw url is
  redis://<hostname>:<post>/<dbnum>
  redis+sentinel://<hostname1>:<port>,<hostname2>:<port>,<hostname2>:<port>/<monitor_name>/<dbnum>

reference https://github.com/goharbor/harbor/pull/11155

hi @danielpacak
Actually I submit this PR here is mainly for your reference, that how I enable redis sentinel support, and speed up the fix progress, as I'm not quite familiar with clair and trivy adapter code.
I suggest you just code it as your favorite, that would be more effective.
The main idea here you should confirm is whether we can get agreement of the redis url style that I will update in the configure file in harbor.
 redis://<hostname>:<post>/<dbnum>
 redis+sentinel://<hostname1>:<port>,<hostname2>:<port>,<hostname2>:<port>/<monitor_name>/<dbnum>

hi @danielpacak
Actually I submit this PR here is mainly for your reference, that how I enable redis sentinel support, and speed up the fix progress, as I'm not quite familiar with clair and trivy adapter code. And I don't know how to test this too.
I suggest you just code it as your favorite, that would be more effective.
The main idea here you should confirm is whether we can get agreement of the redis url style that I will update in the configure file in harbor.
 redis://<hostname>:<post>/<dbnum>
 redis+sentinel://<hostname1>:<port>,<hostname2>:<port>,<hostname2>:<port>/<monitor_name>/<dbnum>

Hey @bitsf I thought that it's ready to merge code tested against a real Redis Sentinel cluster. I reviewed it from such stand point. Anyway now that I understand the idea of Redis URL schemas that we want to support I can follow up and test it properly.

@bitsf @steven-zou @heww
I refactored a bit the code initially submitted by @bitsf . I tested the changes with the real Sentinel deployment and confirmed that the failover scenario is handled by the connection pool as expected.

I used Bitnami Helm chart for Redis Sentinel to deploy Redis Sentinel on Kubernetes.

One thing that I noticed is that the redigo lib does not allow us to declare any connection retry mechanism, which is necessary if we want the adapter service to automatically recover from the master failover.
Do we want to implement such retry strategy in the adapter service, or do we just fail and wait for Harbor scan job to retry. This is all about retrying connections to Redis and backing off during the time when slaves do elect new master.

@bitsf @steven-zou @heww
I refactored a bit the code initially submitted by @bitsf . I tested the changes with the real Sentinel deployment and confirmed that the failover scenario is handled by the connection pool as expected.

I used Bitnami Helm chart for Redis Sentinel to deploy Redis Sentinel on Kubernetes.

One thing that I noticed is that the redigo lib does not allow us to declare any connection retry mechanism, which is necessary if we want the adapter service to automatically recover from the master failover.
Do we want to implement such retry strategy in the adapter service, or do we just fail and wait for Harbor scan job to retry. This is all about retrying connections to Redis and backing off during the time when slaves do elect new master.

If we want to go for retry/ circuit breaker in the adapter service I'd consider replacing redigo with https://github.com/go-redis/redis

There're some redis cluster I'm using for test.

for docker
https://github.com/AliyunContainerService/redis-cluster.git
for helm
helm install test1 bitnami/redis --set sentinel.enabled=true --set password=Test123
for operator
https://github.com/spotahome/redis-operator

@bitsf @steven-zou @heww
I refactored a bit the code initially submitted by @bitsf . I tested the changes with the real Sentinel deployment and confirmed that the failover scenario is handled by the connection pool as expected.

I used Bitnami Helm chart for Redis Sentinel to deploy Redis Sentinel on Kubernetes.

One thing that I noticed is that the redigo lib does not allow us to declare any connection retry mechanism, which is necessary if we want the adapter service to automatically recover from the master failover.
Do we want to implement such retry strategy in the adapter service, or do we just fail and wait for Harbor scan job to retry. This is all about retrying connections to Redis and backing off during the time when slaves do elect new master.

If we want to go for retry/ circuit breaker in the adapter service I'd consider replacing redigo with https://github.com/go-redis/redis

@danielpacak  I'm not sure what you mean about the redigo problem.
In my test, when I shutdown the master, out code can failover to connect to the slave after a little delay.
Can you give more detail test scenario.

@bitsf @steven-zou @heww
I refactored a bit the code initially submitted by @bitsf . I tested the changes with the real Sentinel deployment and confirmed that the failover scenario is handled by the connection pool as expected.

I used Bitnami Helm chart for Redis Sentinel to deploy Redis Sentinel on Kubernetes.

One thing that I noticed is that the redigo lib does not allow us to declare any connection retry mechanism, which is necessary if we want the adapter service to automatically recover from the master failover.
Do we want to implement such retry strategy in the adapter service, or do we just fail and wait for Harbor scan job to retry. This is all about retrying connections to Redis and backing off during the time when slaves do elect new master.

If we want to go for retry/ circuit breaker in the adapter service I'd consider replacing redigo with https://github.com/go-redis/redis

@danielpacak I'm not sure what you mean about the redigo problem.
In my test, when I shutdown the master, out code can failover to connect to the slave after a little delay.
Can you give more detail test scenario.

@bitsf I do confirm that redigo and sentinel pool implemented in this PR works fine. We also handle the failover case, i.e. the adapter service can reconnect without restarting the container.
I was more referring to the case, when master is down and sentinels are electing new master. This is a time window, when this line of code might be executed https://github.com/goharbor/harbor-scanner-clair/blob/master/pkg/persistence/redis/store.go#L52
If that's the case, and we do not currently have any retry code, the scan job would fail.

@danielpacak Do you mean when user push an image, and just redis failover,  the clair scan will fail, and the image would not be scanned any more?
Can user manually scan later or the period scan fix this ?
If yes, I think this would be enough, as failover is just a corner case, we can't make it perfect work all that time, our priority target is to make the system can fully recovery after a short time unavailable.
We may also schedule a zoom meeting if this need further discussion.

@danielpacak Do you mean when user push an image, and just redis failover, the clair scan will fail, and the image would not be scanned any more?
Can user manually scan later or the period scan fix this ?
If yes, I think this would be enough, as failover is just a corner case, we can't make it perfect work all that time, our priority target is to make the system can fully recovery after a short time unavailable.
We may also schedule a zoom meeting if this need further discussion.

@bitsf Yes, that the case I was thinking about. I do also agree with you that manual / scheduled rescan after recovery is acceptable solution. What's more, IIRC Harbor itself does automatic retry, which might fix a failing job caused by Redis failover.

hi @danielpacak will you add parsing the optional param ?sentinel_password=xxx in the url this PR

hi @danielpacak will you add parsing the optional param ?sentinel_password=xxx in the url this PR

Hey @bitsf . Yes. I can do it in this PR

@bitsf I've updated the code and the PR is ready for review. Beyond that, I run the following tests:

Installed Sentinel with password for master/worker nodes disabled / enabled
$ helm install redis bitnami/redis -n redis \
  --set sentinel.enabled=true \
  --set sentinel.usePassword=false \
  --set usePassword=true \
  --set password=Redis12345

I was using the following URLs in cases password was disabled / enabled

redis+sentinel://:@redis.redis:26379/mymaster
redis+sentinel://:Redis12345@redis.redis:26379/mymaster

In both cases I tested the failover by scaling down the master node with the kubectl -n redis sts redis-master --replicas 0 command

Everything worked as expected and workers were able to elect a new master. In case of failover, after a few seconds the scanner adapter was able to connect to Sentinel with updated master node without restarting Pods

@danielpacak There're too many commits, should squash to one.


Unify meeting notes

At the moment we have a mix of meeting notes in here and in notion. Which do we prefer? We should unify our notes into that system.

Personally I prefer on git due to ease of discovery and tracking, and well because it's just plain text. Curious about other thoughts

Duplicate of https://github.com/python-discord/infra/issues/113


readme: links for advanced configurations to venn and hydra wiki entries

Also mention core problem of mini.move to set expectations of users correctly.

I still need to create screenshots for the hydra.nvim wiki, but wanted to show my ideas. I hope this is sufficiently minimal redundancy.

This is a welcome more in-depth explanation on how to use this kind of diagramming system. Feel free to merge when you think it's ready.

Awesome!
I just made some small modifications in the wiki, mostly formatting.


rdf4j-spring incompatible with Spring Boot 3

Current Behavior
Running a project relying on Spring Boot v3.0.4, I'm getting this error when the RDF4JConfig attempts to build the RDF4JTemplate:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.eclipse.rdf4j.repository.Repository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

rdf4j spring components are built relying on Spring Boot v2.7.16, making them uncompatible with a Spring Boot v3 project.
Expected Behavior
I expected the @Import(RDF4JConfig::class) to automatically build the Repository from my application.properties.
Steps To Reproduce

Setup a Maven project based on

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>3.0.4</version>
  <type>pom</type>
</parent>

Follow the basic setup presented in rdf4j-spring, especially the setup of the application properties.

Version
5.0.0
Are you interested in contributing a solution yourself?
Perhaps?
Anything else?
It seems like the issue has already been mentioned in this discussion.

RDF4J is compatible with spring-boot 2.7.16.

@florianchappaz this may or may not be a compatibility issue. It may just be a configuration issue.
Have you tried using an inmemory repository?
The property to activate that is
rdf4j.spring.repository.inmemory.enabled=true
(and if you want: rdf4j.spring.repository.inmemory.use-shacl-sail=true )

FYI, I aim to upgrade rdf4j-spring to support to the latest spring boot version in the not so distant future. I haven't looked into compatibility issues with spring boot 3 so far, but I would not expect it to work out of the box.

Issue Investigation
I've investigated the issue further and here are my findings:

Using in-memory repository: Same error persists.

VPN disabled:

My GraphDB instance is only accessible through VPN.
Disabling VPN resulted in the same error.
No connection resolution issues observed, suggesting the connection bean is never created and the config is ignored.

No configuration:

Tried without any config, same error occurred.
Config appears to be ignored. Double-checked to ensure my config was correct.

Downgrading project:

Downgraded to Spring Boot 2.7.16.
Result: No error.

Conclusion
The issue seems to be related to incompatibility with the newest Spring version.
If you need any additional information or assistance, please let me know.

Thanks for your help diagnosing this! I will check back.


Cleanup controller, add tests, etc

Thanks @anguslees for the PR 🥇🥇🥇 That's great rewrite of the controller. I just added a commit to remove the watch func which is old-fashioned and unused. I have tested it for a while. Merge all of them now.


only subscribe to a topic on the server side when a client is subscribed to that topic

If a tree falls in a forest and no one is around to hear it, does it make a sound?
No, no it should not.

This issue should be closed because data points should be recorded in the historical database (#13) even if they are not currently subscribed to. Topics that should never be recorded can be configured in the ros-bridge config.


Make it possible to use torchaudio conda package without conda-forge

The current packaging scripts depend on 'sox' and 'librosa' which are provided by 'conda-forge'.  However, not all users necessarily want to use conda-forge, as it supersedes many basic packages that are provided by Anaconda that they may want to use. Is torchaudio without conda-forge a use case we want to support?
cc @jamarshon @soumith

To add insult to injury, conda-forge sox doesn't support mp3: https://github.com/conda-forge/sox-feedstock/issues/9

Fixed in a9bee3ed3c8f798c0f2c31d4290758069b7dcd35


Heritrix api specs and docs

Here is API Guide: https://webarchive.jira.com/wiki/display/Heritrix/Heritrix+3.x+API+Guide
If there is prepared cxml configuration in job directory, it should be sufficient just to run: LaunchJob - it will build job from cxml and launch job - if configuraion in cxml is set to not pause after launch, crawl will start. Now it is set to pause, for code based configuration, it is better to set value for pauseAtStart in org.archive.crawler.framework.CrawlController to False.

I put more info into: #157

Later.


Can't upload some files or folder from my local disk

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.23.0
Regression From
No response
Architecture
x64
Storage Explorer Build Number
20220223.14
Platform
Linux
OS Version
Ubuntu 20.04
Bug Description
When I want to upload a local file or folder, my local /work folder is not selectable in the "Choose folder to upload". It is not even listed. Here is the content of my root file system:
$ ls -al /
total 184
drwxr-xr-x  21 root    root     4096 Oct  7  2020 ./
drwxr-xr-x  21 root    root     4096 Oct  7  2020 ../
lrwxrwxrwx   1 root    root        7 Aug 23  2019 bin -> usr/bin/
drwxr-xr-x   4 root    root     4096 Mar 24 09:21 boot/
drwxrwxr-x   2 root    root     4096 Aug 23  2019 cdrom/
drwxr-xr-x  25 root    root     5060 Mar 29 14:17 dev/
drwxr-xr-x 160 root    root    12288 Mar 29 09:03 etc/
drwxr-xr-x   3 root    root     4096 Oct 14 16:05 home/
lrwxrwxrwx   1 root    root       32 Jan  8  2020 initrd.img -> boot/initrd.img-5.0.0-38-generic
lrwxrwxrwx   1 root    root       32 Jan  8  2020 initrd.img.old -> boot/initrd.img-5.0.0-37-generic
lrwxrwxrwx   1 root    root        7 Aug 23  2019 lib -> usr/lib/
lrwxrwxrwx   1 root    root        9 Aug 23  2019 lib32 -> usr/lib32/
lrwxrwxrwx   1 root    root        9 Aug 23  2019 lib64 -> usr/lib64/
lrwxrwxrwx   1 root    root       10 Aug 23  2019 libx32 -> usr/libx32/
drwx------   2 root    root    16384 Aug 23  2019 lost+found/
drwxr-xr-x   3 root    root     4096 Sep  4  2019 media/
drwxr-xr-x   2 root    root     4096 Apr 16  2019 mnt/
drwxr-xr-x  14 root    root     4096 Jun  8  2021 opt/
dr-xr-xr-x 421 root    root        0 Mar 24 15:21 proc/
drwx------  10 root    root     4096 Sep 10  2021 root/
drwxr-xr-x  42 root    root     1320 Mar 25 11:15 run/
lrwxrwxrwx   1 root    root        8 Aug 23  2019 sbin -> usr/sbin/
drwxr-xr-x  16 root    root     4096 Nov 22 14:22 snap/
drwxr-xr-x   2 root    root     4096 Apr 16  2019 srv/
dr-xr-xr-x  13 root    root        0 Mar 24 15:21 sys/
drwxrwxrwt  33 root    root    98304 Mar 29 14:40 tmp/
drwxr-xr-x  14 root    root     4096 May  6  2020 usr/
drwxr-xr-x  14 root    root     4096 Apr 16  2019 var/
drwxr-xr-x  10 njoyeux njoyeux  4096 Dec  9 18:40 work/

Here is what I can select:

I changed the ownership of work folder to root, no change.
I checked Storage Explorer logs but didn't see any errors.
Also, I noticed this weird writable file, don't know if it is related tho.
Steps to Reproduce
Actually I don't know how to reproduce it, I imagine this bug is somehow related to a group or permission issue. Any help would be appreciated.
Actual Experience
I can't upload any file or folder located on my local disk.
Expected Experience
I can upload any file or folder located on my local disk.
Additional Context
I have a classical ubuntu 20.04 installation.

@Nico26-sw am I correct in assuming you installed via Snap store? If so, then yes, I agree this is probably some sort of permission issue with the folder.

I changed the ownership of work folder to root, no change.

Darn, I was going to suggest this!

Is work on a separate partition/drive/removable device?
Can you access stuff in your home dir?
If yes, then if you create a similar folder/make a copy of work/move work to your home dir can you access it?

Hi @MRayermannMSFT
Thanks for taking some time to look at my issue.
Yes I installed it via snap store
$ sudo snap info storage-explorer
name:      storage-explorer
summary:   Optimize your Azure storage management
publisher: Microsoft Azure Storage Tools (msft-storage-tools✓)
store-url: https://snapcraft.io/storage-explorer
license:   unset
description: |
  Upload, download, and manage Azure blobs, files, queues, and tables, as well as Azure Cosmos DB
  and Azure Data Lake Storage entities. Easily access virtual machine disks, and work with either
  Azure Resource Manager or classic storage accounts. Manage and configure cross-origin resource
  sharing rules.

  - Management for all your storage accounts and multiple subscriptions across Azure, Azure Stack,
  and government cloud
  - Accessible, intuitive, feature-rich graphical user interface (GUI) for full management of cloud
  storage resources
  - Robust security features like cross-origin resource sharing and shared access signature to help
  protect your data access wherever you are

  Learn more at https://azure.microsoft.com/en-us/features/storage-explorer.

  Storage Explorer requires the use of a password manager, which may need to be connected manually
  before Storage Explorer will work correctly. You can connect Storage Explorer to your system's
  password manager with the following command:

      snap connect storage-explorer:password-manager-service :password-manager-service
commands:
  - storage-explorer
snap-id:      mOjZRL1yFULZQ1JKXR8lFteDZ5s1BtRh
tracking:     latest/stable
refresh-date: 33 days ago, at 09:07 CET
channels:
  latest/stable:    1.23.0 2022-03-02 (32) 208MB -
  latest/candidate: 1.23.0 2022-03-02 (32) 208MB -
  latest/beta:      1.23.0 2022-03-02 (32) 208MB -
  latest/edge:      1.23.0 2022-03-02 (32) 208MB -
installed:          1.23.0            (32) 208MB -

To answer your questions

work is in the same partition/drive than the rest. I actually have one partition on my SSD.
Yes I can access everything in my home dir from the dialog box
I partially copied work to my home dir (too huge to be wholly copied) and I was able to access it from the dialog box.

HTH

Hi,
Thanks for pointing out the issue might be related to snap. I uninstalled the snap version and installed the tar version and the issue is gone.
So I confirm the problem is related to snap. I'm sorry I can't help anymore in debugging the issue as described here.
Feel free to close the ticket, or let me know if you want me to give more details about my file system permissions or other info.
Thanks

On a separate subject, the tar version is way faster than the snap one, thanks!!


workspace bandwidth is not accurate

I uploaded a 100MB file from https://speed.hetzner.de/ and the bandwidth didn't really change

I believe this is primarily because of a P2P connection. @coadler any ideas? This uses the netinfo stuff you added.

@kylecarbs @coadler if we still want to solve it, please reopen. We did not have any other customer/user mention this bug yet.


Add CSS color-scheme property as a method option

Per https://github.com/garritfra/darktheme.club/issues/194, I am adding the CSS color-scheme property as an option for the "method" field in website submissions, by adding the option to the pull request template and adding the MDN link to color-scheme to the darktheme.club website and its README.
I am also updating my helenchong.dev domain and add my blog.helenchong.omg.lol domain as examples of the color-scheme method.

Website (if applicable): https://helenchong.dev, https://blog.helenchong.omg.lol
This PR is:

[x] Adding a new domain
[x] Updating existing domain
[ ] Changing domain name
[ ] Removing existing domain from list
[x] Website code changes (darktheme.club site)
[ ] Other not listed

[x] The following information is filled identical to the data file

I confirm that I have read the FAQ page, particularly the red section about inappropriate content, and I attest that this site is appropriate based on those criteria.

[x] Check to confirm

- domain: helenchong.dev
  url: https://helenchong.dev/
  method: colorscheme
  last_checked: 2024-11-19

- domain: blog.helenchong.omg.lol
  url: https://blog.helenchong.omg.lol/
  method: colorscheme
  last_checked: 2024-11-19

LGTM, thanks!


Add XFile::GetDirectory tests

This should close #215.
Please review or adjust the tests based on expected return values.
Feel free to expand the tests for missing cases.

For the test names, I was uncertain if I should put the "GetDirectory" part as part of the first parameter or the second parameter. I would appreciate some feedback on that.
Ex:
TEST(XFileGetDirectory, EmptyPath) {

Versus:
TEST(XFile, GetDirectoryEmptyPath) {

Ahh, and @Brett208, if you can, please add the new test file to the test project. I notice the new tests didn't run on AppVeyor. I added a Windows specific code block, so this should be checked.

Thank you for updating the project file.
Looks like we have some path separator differences on Windows. The test code was written to assume the portable forward slash separator was returned, while the platform specific backslash separator was returned on Windows.
I suppose we need to decide if the returned strings should have platform specific separators, or if they should try to use portable separators as much as possible. The only time you really need platform specific separators is if you are passing the string as part of a command to the shell. In the past, I've generally done such conversions only if and when they are needed, and preferred to use the portable forward slash separator otherwise.
Mind you, if we are basing this code on the C++ Filesystem library, and if that library uses platform specific separators by default, we may want to just go that route.

Just tested the new update. With this change, the function:
std::vectorstd::string XFile::GetFilesFromDirectory(const std::string& directory)
is no longer returning any files. It is being passed a value of / on Windows.
-Brett

Ok, seems we have some cascading changes that will need to be addressed. Probably a good idea to go through other methods anyway, and handle things consistently. I'll take a look into this.

Hmm, seems the CI builds don't include Google Mock. I believe it was integrated into the Google Test repository at some point, though was previously separate. Perhaps the installed versions on the CI machines are from before the merger.
@Brett208, If it's not too much trouble, could you add GMock or a combined GTest and GMock package for Nuget?
Nuget GMock packages
I believe the most recent version of Google Test/Google Mock is 1.8.1.
I'll have to look into updating the TravisCI build. Or perhaps just migrate some of that to CircleCI.

I tried adding the package googlemock.v140.windesktop.static.rt-dyn locally. I had to replace all #include "gmock/xxx.h" with "gtest/xxx.h" and then everything worked. Of course changing the google mock header files isn't really a viable option for our integrated environment.
Frustrating that neither Microsoft or Google is providing an up to date GTEST/MOCK Nuget package.
Will give it another go a little later on.
-Brett

I downloaded a few packages and took a look at them. Seems they are just ZIP files.
Microsoft.googletest.v140.windesktop.msvcstl.static.rt-static - (current package) GTest only. Version 1.8.0.
googlemock.v140.windesktop.static.rt-dyn.nuspec - GMock only, but in a "gtest" folder. Version 1.7.0.
googletestmock.v.140 - Both GTest and GMock in respective "gtest" and "gmock" folders. Version unknown (seems to list a package version of 1.0.1, rather than a Google Test version number).
gmock - Both GTest and GMock in respective "gtest" and "gmock" folders. Version 1.7.0.
We could also consider adding GTest as a Git submodule.

I tried the following package.
<package id="googletestmock.v.141" version="1.0.3" targetFramework="native" />
With it, I have to switch our runtime library to multi-threaded DLL for both our test suite and OP2Utility. I also had to add the following function:
#include <gtest/gtest.h>

int main(int argc, char **argv)
{
	testing::InitGoogleTest(&argc, argv);
	return RUN_ALL_TESTS();
}

Otherwise it worked without having to change any paths.

So, we need to find a package that targets the static (non-DLL) runtime library and places gmock.h's code in the folder gmock instead of gtest. It shouldn't matter if the nuget package uses an older toolset unless something happens like in mini-upnp where a breaking change is encountered between the toolsets. I think that is supposed to be rare/edge case.
If that doesn't exist, we could theoretically create our own nuget package. Not sure if we would want to create some sort of group account. It is free and doesn't really seem to require any validation.
If we want to add gtest as a submodule, I believe we will need to create our own build environment for Visual Studio/MSVC using cmake. This could be done in a fork of gtest or maybe right inside of OP2Utility.
To add to the confusion, there is a program called vcpkg that could also manage packets for us. Not sure it is worth switching to. Not sure which is the 'more official' way to do things. I think nuget is more mainstream though? https://github.com/Microsoft/vcpkg
Open to trying either our own nuget package or gtest as a submodule. Not sure we want to pursue vcpkg. If you have a promising nuget package that you want me to try, I'm willing to do so.
-Brett

I tried installing vcpkg. I read some documentation saying it is automatically installed via appveyor, so should be compatible. Using vcpkg, I installed gtest. It linked fine to OP2Utility, except i got the following error:
Error	LNK2001	unresolved external symbol "class testing::internal::Mutex testing::internal::g_linked_ptr_mutex" (?g_linked_ptr_mutex@internal@testing@@3VMutex@12@A)	OP2UtilityTest	C\OP2Utility\test\XFile.test.obj	1
It seems like this may be a common error: https://github.com/google/googletest/issues/292. Possibly related to static building.
Anyways, if we could fix this issue, we may be able to use vcpkg for our purposes.
-Brett

I'd like to avoid forking GTest. I don't think that is necessary. Packaging could be done as an external concern.
Having an organizational Nuget account might be good.
Any information on the errors when you leave project settings to build a static library? It seems odd the other two projects would need that setting changed to match GTest.
I'm looking into vcpkg. I noticed it can run natively on Linux. It failed to build with Clang, but seems to compile with g++.

Creating a nuget account for an organization requires an email address that is not used by any of the members of the account. Not sure if we have an email account that works in this capacity. Otherwise seems easy. https://docs.microsoft.com/en-us/nuget/reference/organizations-on-nuget-org
I cloned googletest today. Was able to use Visual Studio with the provided cmake project to compile .lib files for gtest and gmock fairly effortlessly. Unsure if what I compiled is dynamically or statically linked? probably a way to set with cmake. I compiled in x64 release with debug info. Not sure if we would want to compile in x64 or x86 or both?
Not really feeling up to the task of creating a nuget packet from scratch or somehow getting the compiled code to work as a submodule. Maybe this needs to be some sort of paired programming session.
-Brett

Alright.
What if we use one of the Google Test version 1.7.0 Nuget packages that includes GMock? I don't think we need the latest features from Google Test or Google Mock.
For now, I'll see what I can do about the failing TravisCI build. Either fix Travis, or make CircleCI take over for that.
I could also rewrite the new tests to not make use of GMock.

Quick update. I compiled gmock/gtest on my own using static code generation. I then removed the gtest nuget package. After that, I was able to successfully link to the compiled code and run our test suite. Caveat is I haven't done it on the branch that contains googlemock.
Give me some more time and I'll try to push a release that includes compiled x86, x64 builds in both debug and release with the header files included. This will allow removing the nuget package altogether. If we like it and think it does great things for the world, we could look at processing it into a nuget package.
-Brett

It looks like you've simply added the source code for Google Test into our repo. I would be hesitant to do this. I think a Git submodule might be a bit cleaner. At the very least, that would allow for more automatic updates.

I added the files in the gtest and gmock include folders (headers and pump files) and the compiled .lib/.pdb files. Since the source code in the src folder and project files are not included, you wouldn't be able to compile. This is similar to how freeimage was added. We might be able to pair out some of the header files, it seems like a lot in the include directories.
Not quite sure what a pump file is, but it seems related to templates, possibly a google specific concept though. I left them in since they were in the include directory.
I put the code here to test if gmock was working properly since we don't call it outside this branch. No problem on my end if we want to move it.
-Brett

I wondering how you would feel about the pdb files. I'm making this up as I go. No issue if we want to delete the pdb files.
We could also probably delete the libs that have _main. I think they are just used if you want to include a main function in your test code but I haven't verified that behavior yet.
I was looking at the Nuget packages more last week. You are right they look pretty simple. We could look at stuffing the lib files in our own Nuget package. No time today but maybe in a day or two.
What happened that broke the Linux builds?
Brett

The _main libs are for when you don't want to provide your own custom main to run the tests. Just use the library provided main. We do actually use those libs.
I'm ok with taking this one slow to get things done right.
The TravisCI builds have basically the same issue as on Windows, they use an old package which doesn't include gmock.
test/XFile.test.cpp:3:10: fatal error: 'gmock/gmock.h' file not found
#include <gmock/gmock.h>
         ^~~~~~~~~~~~~~~
1 error generated.
make: *** [.build/testObj/XFile.test.o] Error 1
The command "make check" exited with 2.

Ok, I guess I had assumed you had GoogleMock working on the Linux builds before I started messing around.
I made a nuget package today. It seemed well formed. However, when I attempt to upload it to the Nuget site, it finishes uploading and doesn't appear to do anything. No warning message, but doesn't provide feedback either. I tried in 2 different browsers. Max package size is quoted as 250MBs, so we are well below that.
-Brett

Google Mock works on my local machine, and on the Docker image I built for CircleCI. It doesn't work on TravisCI, which uses an old version of Ubuntu, with an out of date system package. I haven't gotten around to updating the TravisCI build.
Curious about the Nuget upload. Is there perhaps a delay between upload and publishing? If they are distributing binaries to be mass installed on machines on the internet, perhaps they run virus scans and stuff first before publishing it.

@DanRStevens This has been sort of outstanding for quite a while. What do you think about redesigning the tests to just use GoogleTest?
The other option would be I could spend more time learning and testing the nuget package to try and get something published.
It might be better to just get this working to resolve OP2MapImager being buggy. We can force remove my last 3 commits to reduce the repository size. Perhaps in the future VS will better support Google Mock out of the box.
-Brett

This has been outstanding for much too long, and weighing on my mind the whole time.
I've split the changes to add GoogleMock into a new branch, and then removed it from this branch. We can decide to fix up, or scrap that work independently.
Sounds like building and maintaining our own NuGet package for Google Test is a bit of a pain. I'd like to avoid that if possible for now. (Though learning how to publish NuGet packages could be valuable in its own right).
I'm going to experiment a bit with getting GoogleMock to run in the TravisCI environment. I suspect it could be as easy as adding a new apt package. Though if we can't get GoogleMock to run on Windows, this will be a bit of a dead end.
I may need to revisit the test code to see how I might rewrite it to avoid GoogleMock.


history.replace() in Firefox issue

Version
4.3.1
Steps to reproduce
By using history.replace('/', null) I am getting in Firefox (69.0.1 (64-bit)) console the message Warning: Hash history cannot replace state; it is ignored and my current url is not replaced in the Browser History. This is not happening in all the other browsers.

You should upgrade to the latest release of React Router. Despite the major version bump, it's actually a minor release.
Using a HashRouter is not recommended unless you have to. You should use a BrowserRouter, as there are some known quirks like this.
I would search the issues on the history repo, as this is actually coming from that library instead.


Testing against new dry-container

@flash-gordon great!

Overall, the changes are minor, and I think we can have it merged. Releases of dry-container and dry-system have to be coordinated


minor refactorings

completed promise cleanup that recently made it in
moved dialog utilities to their own file with some documentation

this actually had a bug in getViewModel where this.compositionEngine was being used without providing context for this. It wasn't picked up by the tests, so that's probably worth investigating..

Hi @mbroadst thanks for this contribution -
We need to add some tests to cover new functionality at least, I'll try to go through now and give some pointers but I haven't had a chance to pull this down yet to confirm just going off of a code review.

Alright I added a few comments, thanks again a ton for your help on this.

@PWKad Is this ready to be merged? I'd like to update the modal dialog system to use the new CompositionTransaction capabilities but didn't want to do it until after we had all the PRs merged in from community members.

@EisenbergEffect No when we add new functionality or change existing functionality, even if it's just refactoring, we need to add tests to cover the changes.  I've offered to help @mbroadst with this so hopefully we can get this wrapped up soon.  I'm not aware of the CompositionTransaction capabilities so if you can link to that it may help to figure out what is needed from that regard while we are wrapping up any other changes.

The CompositionTransaction will enable us to delay showing the dialog until all its child compositions are completed. I can add it after this work is done.

@PWKad @EisenbergEffect sorry I was away on vacation, I'll take a look at adding tests for these changes.
The reason I put this together was because I was working on a toastr implementation for aurelia, where I reuse some of this code (invokeLifecycle and _getViewModel in particular), does it make sense to think about how to move these type of utility methods somewhere "higher in the chain"? I know for a fact that aurelia-notification copies these methods as well, so that sort of completes our "rule of three" for refactoring :smile:

@mbroadst I think that definitely seems reasonable.  I'm not sure the best plan for refactoring to make these re-usable yet though, any ideas?

@mbroadst Note that you will need to rebase this on master since there have been some significant changes since this PR was made.

I'm going to close this for now since there was some major work done here that conflicts with this PR. If you feel there is more that needs to be done, please take a look at master and submit a new PR based on that. Thanks!


Next.js 13 Amplify - CustomerError: The size of the build output exceeds the max allowed size of 230686720 bytes

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

App Id
d263pg34gxs8oh
AWS Region
us-east-1
Amplify Hosting feature
Deployments
Frontend framework
Next.js
Next.js version
13.4.13
Next.js router
Pages Router
Describe the bug
CustomerError: The size of the build output (728699832) exceeds the max allowed size of 230686720 bytes. Please reduce the size of your build output and try again.
Overnight, our deployments have ballooned in size from well under to high above the build size limit (~120,000,000 bytes -> 728,699,832 bytes). Clearly, our application didn't change that drastically between our deployments.
Please do not suggest following these instructions  as @Jay2113 did in #3647. Our bundle size should be well under the limit and certainly less than the 728699832 figure given in the error. Plus, those instructions are no longer necessary according to @calavera in #3132.
I am raising this as a separate issue because it just began last night and we do not have enough pages in our app to be anywhere near the ludicrous number provided by the build system.
Expected behavior
Our Next.js 13 app should deploy as usual and be under the bundle size limit for deployment.
Reproduction steps

Merge a change into your GitHub branch to trigger automatic deployment
...
Profit

Build Settings
version: 1
applications:
  - backend:
      phases:
        build:
          commands:
            - update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.8 11
            - /usr/local/bin/pip3.8 install --user pipenv
            - cd ..
            - amplifyPush --simple
    frontend:
      phases:
        preBuild:
          commands:
            - yarn --ignore-platform
        build:
          commands:
            - yarn build:web --debug
            - env | grep -e NEXT_PUBLIC_ >> .env.production
      artifacts:
        baseDirectory: .next
        files:
          - '**/*'
      cache:
        paths:
          - 'node_modules/**/*' # Cache `node_modules` for faster `yarn` or `npm i`
          - '.next/cache/**/*' # Cache Next.js for faster application rebuilds
          - '../node_modules/**/*' # Cache `node_modules` for faster `yarn` or `npm i`
    appRoot: web

Log output

# Put your logs below this line
2023-09-12T19:53:40.396Z [INFO]: # Completed phase: build
2023-09-12T19:53:40.427Z [INFO]: ## Build completed successfully
2023-09-12T19:53:40.430Z [INFO]: # Starting caching...
2023-09-12T19:53:40.442Z [INFO]: # Creating cache artifact...
2023-09-12T19:55:48.348Z [INFO]: # Created cache artifact
2023-09-12T19:55:48.464Z [INFO]: # Uploading cache artifact...
2023-09-12T19:56:05.352Z [INFO]: # Uploaded cache artifact
2023-09-12T19:56:05.585Z [INFO]: # Caching completed
2023-09-12T19:56:05.595Z [INFO]: # No custom headers found.
2023-09-12T19:57:05.969Z [ERROR]: !!! CustomerError: The size of the build output (728706260) exceeds the max allowed size of230686720 bytes. Please reduce the size ofyour build output and try again.
2023-09-12T19:57:06.141Z [INFO]: # Starting environment caching...
2023-09-12T19:57:06.142Z [INFO]: # Uploading environment cache artifact...
2023-09-12T19:57:06.263Z [INFO]: # Uploaded environment cache artifact
2023-09-12T19:57:06.263Z [INFO]: # Environment caching completed

Additional information

I am using yarn workspaces with my Next.js app in my ./web directory. (appRoot: web)

Here are some dir sizes:
du -h -d1 public:
332K	public/images
360K	public
du -h -d1 .next/static:
412K	.next/static/css
5.0M	.next/static/chunks
12K	    .next/static/4OD3tkW6Bv-qbps3wPd9U
5.4M	.next/static
du -h -d1 .next/server:
3.8M	.next/server/chunks
44M	.next/server/pages
48M	.next/server

Hi @foobarnes, thanks for the detailed report. We are aware of issues in Next.js 13.4.13+ as they introduced a breaking change in their server handler (https://github.com/vercel/next.js/pull/52492) and we are actively working on a fix. It caught us by surprise as we would normally not expect a breaking change to be introduced on a minor release. So, apologies for the inconvenience.
Could you try downgrading to next.js 13.4.12 in the meantime as we work on stabilizing newer versions?

Definitely @ferdingler! Thanks so much for getting back so quickly. I'll try that now and update shortly.

@ferdingler It's a no-go. Still got CustomerError: The size of the build output (722400645) exceeds the max allowed size of230686720 bytes. Please reduce the size ofyour build output and try again.

oh, my bad. I should have explained myself. The Next.js version in the Live package updates may not be a good mechanism to downgrade the version of Next.js. It's better to do it directly in your package.json so that it gets reflected in your package-lock.json file.
npm install --save-exact=true<EMAIL_ADDRESS>
# or with yarn
yarn install --exact<EMAIL_ADDRESS>
and make sure you commit the changes and push both the package.json and package-lock.json or yarn.lock.

Sorry, to confirm, I did also pin the specific version in my package.json.
I also just tried to downgrade @aws-amplify/cli to 12.2.3 with no luck. :/

Do you all have any indication of where it is getting the 722400645 bytes figure?
The only directory/artifact that is that size near deployment time is /amplify.
du -h -d1 .
58M 	./.git
8.0K 	./.github
8.0K 	./.vscode
19M 	./assets
4.0K 	./docs
16K 	./services
7.0M 	./web
705M 	./amplify
788M 	.

./web is my appRoot in amplify.yml for my monorepo.

On my local:
 69M    web/.next/static
 31M    web/.next/server

I've also tried redeploying the last commit that deployed successfully. It failed with the same error.

Hi, sorry for the inconvenience, could you do me a favor to try few things:

Try to remove amplify folder at the end of your build?

Add following lines in your next.config.js and build locally and see what is the size of the .next/standalone folder

  output: standalone,
  experimental: {
    outputFileTracingRoot: path.join(__dirname, '../../'),
  },

Thanks

Deploying remove-amplify-folder commit now. Will update shortly.
177M    web/.next/standalone

@victorccccc Removing ./amplify didn't help.
CustomerError: The size of the build output (713809525) exceeds the max allowed size of230686720 bytes. Please reduce the size ofyour build output and try again.

Thanks for all the information, we will be continue investigating. Will update here as soon as we find something

An interesting development...
When I changed my frontend > artifacts field to this:
      artifacts:
        baseDirectory: .next/server
        files:
          - '**/*'

My deployment "succeeded", but it deployed my test artifacts instead of any frontend build artifacts.
2023-09-13T00:04:47 [INFO]: Starting Deployment
2023-09-13T00:04:47 [INFO]: Start deploying test artifact
2023-09-13T00:04:47 [INFO]: Deploying videos/1-auth/signin.cy.js.mp4
2023-09-13T00:04:47 [INFO]: Deploying videos/3-creators/create.cy.js.mp4
2023-09-13T00:04:47 [INFO]: Deploying videos/4-analytics-page/additional-metrics.cy.js.mp4
2023-09-13T00:04:47 [INFO]: Deploying videos/5-s3-images/save-delete-from-s3.cy.js.mp4
2023-09-13T00:04:48 [INFO]: Finish deploying test artifact
2023-09-13T00:04:48 [INFO]: Updating Edge config

Returning frontend > artifacts back to its original form returned me to my usual error.

@victorccccc When I build standalone in the Amplify build container, I see a standalone size closer to that 700MB we're seeing in the error:
...
8.5M	.next/standalone/rootnote/node_modules/@esbuild/linux-ppc64/bin
8.6M	.next/standalone/rootnote/node_modules/@esbuild/linux-ppc64
8.5M	.next/standalone/rootnote/node_modules/@esbuild/linux-riscv64/bin
8.5M	.next/standalone/rootnote/node_modules/@esbuild/linux-riscv64
9.4M	.next/standalone/rootnote/node_modules/@esbuild/linux-s390x/bin
9.4M	.next/standalone/rootnote/node_modules/@esbuild/linux-s390x
9.0M	.next/standalone/rootnote/node_modules/@esbuild/linux-x64/bin
9.0M	.next/standalone/rootnote/node_modules/@esbuild/linux-x64
8.9M	.next/standalone/rootnote/node_modules/@esbuild/netbsd-x64/bin
8.9M	.next/standalone/rootnote/node_modules/@esbuild/netbsd-x64
9.0M	.next/standalone/rootnote/node_modules/@esbuild/openbsd-x64/bin
9.0M	.next/standalone/rootnote/node_modules/@esbuild/openbsd-x64
8.9M	.next/standalone/rootnote/node_modules/@esbuild/sunos-x64/bin
9.0M	.next/standalone/rootnote/node_modules/@esbuild/sunos-x64
8.4M	.next/standalone/rootnote/node_modules/@esbuild/win32-arm64
8.8M	.next/standalone/rootnote/node_modules/@esbuild/win32-ia32
9.2M	.next/standalone/rootnote/node_modules/@esbuild/win32-x64
198M	.next/standalone/rootnote/node_modules/@esbuild
666M	.next/standalone/rootnote/node_modules
708M	.next/standalone/rootnote
708M	.next/standalone

@foobarnes thanks for sharing the additional information, this is very helpful.
We would like to schedule a call with you to discuss about this further. Can you please reach out via a DM on our community discord server? My username is Jay Raval.
Thanks!

Some notable package size differences between locally-generated and amplify-generated .next/standalone:
Package	|	Local 	| 	Amplify
@swc	|	36K 	| 	375M
@esbuild|	--- 	| 	198M
next	|	796K 	| 	20M

For posterity:
We just tried removing two files that Amplify uses to run its file trace for files to bundle into the deployment:
.next/next-server.js.nft.json and .next/next-minimal-server.js.nft.json
It didn't work for me, but may for future generations to come.

We identified that all of the SWC binaries (listed as optionalDependencies on the next package) were being downloaded and bundled when they shouldn't have.
An unideal workaround that unblocked my deployments:
swcMinify: false in my next.config.js
yarn install --ignore-optional in my amplify.yml

Hey guys we are experiencing the same issue after trying to integrate Sentry. I initially thought it's the problem with Sentry but Maintainers of Sentry suggest I should ask here.
link to the discussion

any update? this is blocker for us

I have the same issue, is there any update on this?

Hello, I have the same issue, is there any news ?

I've also been unable to successfully deploy a Next.js 13 app for some time now.

We've hit this issue too, please share some update if any. Thank you.

Has anyone tried skipping to next 14/amazon linux 2023 now that this is done https://github.com/aws-amplify/amplify-hosting/issues/3773#issuecomment-1811288919 ?
I would try but one of our dependencies needs to fix it's peerdeps

Has anyone tried skipping to next 14/amazon linux 2023 now that this is done #3773 (comment) ?
I would try but one of our dependencies needs to fix it's peerdeps

I've tried it - didn't work for me.
Still waiting for a solution here.

Just in case that helps, it seems that for me for some reason the error only happens when I use pnpm instead of npm or yarn to install the dependencies.

+1

Running into this error. Why can't you increase the limit of 200MB

Hey guys we are experiencing the same issue after trying to integrate Sentry. I initially thought it's the problem with Sentry but Maintainers of Sentry suggest I should ask here.
link to the discussion

We are having the exact same issue! Why can't you increase the hard limit of 200MB. I company whose value is 1.5 trillion, I am sure its not that difficult

I think this is only a workaround for now but this did the trick for us.
Maybe it will help some of you as well :D

Hi, this is the whole amplify.yml file in the build settings from our hosting.
The command i added removes the cache from the build because i think some parts of the next code get generated new on every build which is than cached and that adds up over time 🤔 .
I hope this helps, i am new to aws and amplify myself so im sorry that i cant give you a better description than this :(

Hi, this is the whole amplify.yml file in the build settings from our hosting.
The command i added removes the cache from the build because i think some parts of the next code get generated new on every build which is than cached and that adds up over time 🤔 .
I hope this helps, i am new to aws and amplify myself so im sorry that i cant give you a better description than this :(

Tried adding the backend commands and redeploying, still running into the same issue

Hi 👋, we recently made the improvement and resolved this issue, please rebuild your application. Feel free to open the new issue if it persists. Thanks


python310Packages.eventlet: disable test_fork_after_monkey_patch test…

… all the time
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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/)
23.05 Release Notes (or backporting 22.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Hi @SuperSandro2000,
Sorry to disturb you again.
I think this PR is important because seems to be leading to a lot of things to fail:

But IMO it should target staging.

Thanks Sandro!


Run Black on whole repo

Black provides consistent formatting

Closed by https://github.com/rparini/cxroots/commit/af9a89e966d7fb681f1ace9a3fd9c53d2ebb1548


Renaming LG -> HLG

Resolves #121

@danpovey @csukuangfj LMK if I can merge it.

Thanks! +2

nit: calling it TLG (T: topo) might be better since the we don't call "ctc_topo" FST H.fst explicitly. Also it'll be less confusing in case later on we want to compare different label topologies where H.fst really means HMM.

@xiaohui-zhang  We spoke about this issue before; I felt H was better because not everyone has used Eesen so knows the T terminology.  Also I do regard the CTC topology as just a specific kind of H, rather than a special different thing.


Instruction for_loop not found in equivalence library and no rule found to expand

Environment

Qiskit Terra version:  0.19.1
Python version:  3.8.8
Operating system:  Windows 11

What is happening?
When I was trying to transpile the circuit containing "for_loop" to do some experiment, qiskit raised the following error
QiskitError: "Cannot unroll the circuit to the given basis, ['ccx', 'cp', 'cswap', 'csx', 'cu', 'cu1', 'cu2', 'cu3', 'cx', 'cy', 'cz', 'delay', 'diagonal', 'h', 'id', 'initialize', 'mcp', 'mcphase', 'mcr', 'mcrx', 'mcry', 'mcrz', 'mcswap', 'mcsx', 'mcu', 'mcu1', 'mcu2', 'mcu3', 'mcx', 'mcy', 'mcz', 'multiplexer', 'p', 'pauli', 'r', 'rx', 'rxx', 'ry', 'ryy', 'rz', 'rzx', 'rzz', 's', 'sdg', 'swap', 'sx', 'sxdg', 't', 'tdg', 'u', 'u1', 'u2', 'u3', 'unitary', 'x', 'y', 'z', 'kraus', 'qerror_loc', 'quantum_channel', 'roerror', 'save_amplitudes', 'save_amplitudes_sq', 'save_density_matrix', 'save_expval', 'save_probs', 'save_probs_ket', 'save_state', 'save_statevector', 'set_statevector']. Instruction for_loop not found in equivalence library and no rule found to expand."
Similar error is raised when "while_loop" is used. It seems that qiskit does not really support "loop" here.
How can we reproduce the issue?
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 1)

with qc.for_loop(range(5)) as i:
    qc.h(0)
    qc.cx(0, 1)
    qc.measure(0, 0)
    qc.break_loop().c_if(0, True)

simulator = Aer.get_backend('statevector_simulator')
transCirc = transpile(qc, simulator)
qObj = assemble(transCirc, shots=10000, memory=True)
results = simulator.run(qObj).result()
finalState = results.get_statevector()
print(list(finalState))

What should happen?
The above code may work.
Any suggestions?
No response

Terra's transpile and Aer's simulator both support these instructions now, so this should be fine now. I would note that the assemble path is not needed - simply pass the circuit to simulator.run.


pull request for e2e test at 12/12/2016 21:26:03

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Getting results at round end

Is your feature request related to a problem? Please describe.
At the moment the results are provided at the end of the battle, I think that would be very useful to have the (partial) results provided at the end of each round

@SirStone:
The results should be available with each round, obviously. But should we also extend the GUI to represent the results per round? With the original Robocode, the current state/results can be shown per turn (with a separate and optional view), so it is updated while the battle is going on.
We could add partial/current results turn. But it will need more data to be transferred per turn.
Perhaps we only need the result per round, and perhaps per turn for observers only? I don't think it will be very useful per round and/or turn for each bot? So I guess we should stick to providing partial results per round and perhaps per turn.

Sorry for the delay, I'm temporary working on a new automated backup system at my house, asap it is up and running correctly I'm going back to implementing the botApi in nim. I can't wait to put it in test  re-creating some of the basic bots with it.
My 2cents: I would not enable the partial results per turn, that would be a lot of data to transfer extra on top of what is transferred now as you stated and I can't think at any important matter that would justify this overhead of data; I would prefer to leave this to the single bot programmers, in case they want or need to keep track turn by turn, to program by themsleves scores based on the bot's gathered activities, this will help them to understand what when and how a score is builded up in time also.
What I think is important to enable are the results at the end of the round, this in a machine-learning persepctive could represent the episodes scores, instead of making episodes out of a full game. Both bots and Observers should receive these round scores.

Sorry for the delay, I'm temporary working on a new automated backup system at my house, asap it is up and running correctly I'm going back to implementing the botApi in nim. I can't wait to put it in test re-creating some of the basic bots with it.
My 2cents: I would not enable the partial results per turn, that would be a lot of data to transfer extra on top of what is transferred now as you stated and I can't think at any important matter that would justify this overhead of data; I would prefer to leave this to the single bot programmers, in case they want or need to keep track turn by turn, to program by themsleves scores based on the bot's gathered activities, this will help them to understand what when and how a score is builded up in time also. What I think is important to enable are the results at the end of the round, this in a machine-learning persepctive could represent the episodes scores, instead of making episodes out of a full game. Both bots and Observers should receive these round scores.

Thank you for the feedback, and I hope you did well with the automated back system in your house. :)
I will make sure to add the results per round for the Bot API. Then we can always extend it later if we e.g. want to show the progress in the battles for the observers per turn. But that will need GUI updates as well etc.

This has now been implemented with the release of 0.19.0:
https://github.com/robocode-dev/tank-royale/releases/tag/v0.19.0


On Windows, projects living at the root of a drive don't work

I had a project that was directly mounted to E:. When I tried to run cargo I got the following unclear error: "error: invalid path url E:". I was able to resolve this problem by moving my project into a directory.

Hm I seem to be unable to reproduce this locally in a C: drive, do you have a set of instructions of how to reproduce? I'd be surprised if it was specific to E: as opposed to C:...

@alexcrichton I had a shared directory mounted to E: with a cargo project in that directory. Any cargo command that tried to do something with my code (i.e. not cargo -V, but cargo test) caused this error. Our project is also set up as a workspace with members inside of it.

Oh this may be related to the shared drive then maybe? We've had reports of fs::canonicalize returning errors in these situations in the past.
Could you gist the full error you saw as well as a description of the structure of the project (e.g. workspace layout)

There was no error message except what I posted. The project was a clone of https://github.com/tildeio/helix.

This is the similar-sounding issue that has to do with fs::canonicalize: https://github.com/rust-lang/cargo/issues/2990
Given that this issue is stale, I'm going to close this.
@wagenet if this is still an issue, could you try running RUST_LOG=debug cargo build in the project on shared drive and reopen with a gist of the output? Thanks!

@carols10cents I'm still seeing issues with rust 1.22.0-nightly (d6d711dd8 2017-10-10). I'm not seeing any additional output beyond the single line error message. I'm investigating more right now.

Whoops, I forgot to add the RUST_LOG=debug. Here's the output I get:
$ RUST_LOG=debug cargo build
DEBUG:cargo::build: executing; cmd=cargo-build; args=["C:\\Users\\Peter\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\bin\\cargo.exe", "build"]
DEBUG:cargo::core::workspace: find_root - is root Z:\Cargo.toml
DEBUG:cargo::core::workspace: find_members - Z:\examples\calculator\Cargo.toml
INFO:cargo::util::job::imp: found 0 remaining processes
DEBUG:cargo: exit_with_error; err=CliError { error: Some(CargoError(Msg("invalid path url `Z:`"), State { next_error: None, backtrace: None })), unknown: false, exit_code: 101 }
error: invalid path url `Z:`

Interesting, thank you! Reopening!


haskellPackages.path-io: Instability in cabal2nix hash?

Describe the bug
The hydra built for haskellPackages.path-io fails with a hash mismatch for the sources.
https://hydra.nixos.org/build/121987969/nixlog/1
@peti How can something like that happen? Does that automatically get fixed by a hackage2nix update?

I just realized this also the reason for the build failure that we have on stack right now. (see https://hydra.nixos.org/build/122143838)
So fixing this would be a really good idea.

I'm not sure what could be going on here, but there is a weird line in the log:
trying http://hackage.haskell.org/package/path-io-1.6.0/revision/2.cabal
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2668    0  2668    0     0   3822      0 --:--:-- --:--:-- --:--:--  3816
(23) Failed writing body
fixed-output derivation produced path '/nix/store/89s969r5mn9w7vmy39z8cpm8ckl3c73y-path-io-1.6.0-r2.cabal' with sha256 hash '0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73' instead of the expected hash '1x52j77g075k79c7fma0khhbcpja88wylgllnky6q7nccwazm2c2'

The line (23) Failed writing body is somewhat worrying.
Maybe someone like @peti or @domenkozar could restart the build at https://hydra.nixos.org/build/121987969 for us?

Look I found another one: https://hydra.nixos.org/build/121987976/nixlog/1
Note how it fails with the same hash. I guess 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 is the empty file or something like that?

Also, they are both on the same build machine. At this point I don't believe this has anything to do with Haskell.^^

@andir has triggered a rebuilt of this package and all dependencies. Thanks!
As a result the stack  build has now succeeded.


Add screenshots for workspace setup wiki

I found a way to setup my workspace from scratch that is not headache-inducing so I thought I'd share it for beginners (or anyone) to use.

@caw742 remember to delete your branches after merging!


Unhandled JS Exception: Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'DevSettings' could not be found. Verify that a module by this name is registered in the na..., stack:

Description
Im trying to use release mode to send my application to store. But i couldn't do that. Its working debug mode, android release mode but in ios release mode its not working. Im using default schemes without any changes and my important packages;
expo 48.0.18,
react-native 0.71.8
react 18.2.0
react-native-reanimated ~2.14.4
react-native-gesture-handler ~2.9.0
React Native Version
0.71.8
Output of npx react-native info
System:
OS: macOS 12.6.3
CPU: (10) arm64 Apple M1 Pro
Memory: 79.31 MB / 16.00 GB
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 18.12.1 - ~/.nvm/versions/node/v18.12.1/bin/node
Yarn: 1.22.19 - ~/Desktop/Projects/OkayAnketForm/node_modules/.bin/yarn
npm: 8.19.2 - ~/.nvm/versions/node/v18.12.1/bin/npm
Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.12.0 - /Users/alicanca/.rvm/rubies/ruby-2.7.6/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 16.0, macOS 12.3, tvOS 16.0, watchOS 9.0
Android SDK: Not Found
IDEs:
Android Studio: 2022.1 AI-221.6008.13.2211.9477386
Xcode: 14.0.1/14A400 - /usr/bin/xcodebuild
Languages:
Java: 11.0.17 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: Not Found
react-native: Not Found
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce
open xcode -> edit scheme -> run release mode -> build successfully but stuck in splash screen and throw an error as i shared in screen shoot
Snack, code example, screenshot, or link to a repository

I'm experiencing the same issue, even when I set react-native to 0.71.12.

I upgraded my SDK to 49 and now the Release configuration works properly.

see: https://github.com/facebook/react-native/issues/38445#issuecomment-2128828381


Update dependency com.fasterxml.jackson.core:jackson-databind to v<IP_ADDRESS>

This PR contains the following updates:

Package
Update
Change

com.fasterxml.jackson.core:jackson-databind (source)
patch
<IP_ADDRESS> -> <IP_ADDRESS>

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR is stale, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

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

Available now for Enterprise: Renovate Pro with real-time webhook handling and priority job queue.

https://github.com/FasterXML/jackson-databind/blob/master/release-notes/VERSION-2.x


MCP23017

Has there been a recent IDF change that's broken the MCP23017 library port?
I'm getting the following error on compile:
Adafruit_MCP23017.cpp:79:39: error: invalid conversion from 'int' to 'i2c_ack_type_t' [-fpermissive]
Possibly related to #321 ?

This class is one year old, so no changes are introduced to follow esp-idf changes.
You can fix it easy by changing 0 or 1 in all i2c_master_read_byte and i2c_master_write_byte according to this post
https://github.com/nkolban/esp32-snippets/issues/321#issuecomment-354091940


Template override per model

Some Django admin templates can be overridden globally, per app or per model: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#templates-which-may-be-overridden-per-app-or-model
With tabbed admin, that seems partially broken. i can globally override eg "change_form.html", but not per app or model. Can anyone confirm this behaviour?

Hi,
This app is overriding change_form.html in order to add the html for the tabs within the form. The override happens on the class level and happens there:
https://github.com/omji/django-tabbed-admin/blob/master/tabbed_admin/admin.py#L13
If one of your admin class inherits from TabbedModelAdmin and you want to add custom changes to the change form, you might want to override the change form from this app and the change_form_template  attribute. Happy to ear and implement a cleaner and more practical solution if any :-)
Thanks


Remove projects from sidebar & filters

Fixes #977.
EDIT:

I found out we can also remove the ”Projects” filter from the issues/PRs list pages (it’s shown as a filter).
I also found out you can select a project whenever opening a PR (in addition to ”Create a new issue” page)

Hey, I’m sorry, but I don’t have enough time to pick up this PR at the moment. Shall we close it so someone else can implement this in case I won’t manage to have another look at the approach we discussed earlier?

Sure


ETL: Trigger duplicate detector after every import

Using the ImportSources info about which entities have been created, detect new duplicates. Right now the duplicate detector has to be separately triggered (deliberate, for testing purposes).

Done although note that the duplicate detector is WIP


No video is displaying

Hi,
I am trying this framework and really would like to use it eventually but so far it doesn't work on my project.
Before trying to add it up to my actual app, I tried on a blank page and first I just tried to display your ocean sample video in XAML and in C# but nothing appears on the screen. If I add labels before and after, I can see that room is made for the video but nothing is playing, and I don't have the display controllers neither even with the parameter DisplayControls = true.
I didn't forget to add the INTERNET authorization on Android because this is where I am testing it on right now.
Is there a way to display some logs or to get information on what is it going on and why it is not working?
Thank you
Nicolas Q

I would definitely buy the full version if I could get the trial version to work.

Solved by myself.
The problem was that I didn't have the init method in my android project, thinking that because I was using the trial version I didn't need to have it.
The way it is explained on the getting started, it looks like it is only required to validate the license key so you may think you don't need it if you want the trial version. Also, I didn't find where it is written that for the trial version you have to write the init method with no license key given.

The Getting Started Guide is written assuming you have already purchased it. The Chill Player example application that comes packaged with the component shows the component setup in demo mode. I suppose that could be made more explicit for the future 👍


No public dns ...

When running your chef template, the server created doesn't get a public dns.
Note: I also have a tfvars file containing the access key, secret key and key_name values.
To reproduce this issue I ran the following commands
terraform get .
terraform plan
terraform apply

@swade1987 Solved by this commit: https://github.com/the-startup-stack/stack-cookbooks/commit/f2727833118f06d680ca99de61d1a12143231b84
All you need to do is pull the changes, go to terraform/chef and terraform apply.

I re-ran the terraform template from scratch and still no luck. Note the VPC setup below ...

perhaps in the terraform template for the VPC we need to set "enable_dns_hostnames" to "true" as its "false" by default

Look at the commit I referenced in my previous comment.
Did you git pull the repository? Look at terraform/base, you should have the enable_dns_hostname set to true.

Sorry, my bad, I have just re-ran the script and it looks much better.
Just hoping I can access the chef server using the public DNS address now, will update you shortly.

You will be able to. The problem is you will still need to install an SSL certificate.

can i not bypass that by doing "knife ssl fetch" to get the .crt file from the server itself?

Even then, I am not sure it will work properly with all the commands.
If you can give that a try and let me know here, it would be great.

That doesn't work, I think I need to create a certificate file which matches the DNS hostname of the machine, is that the way you set yours up?

Yes.
It's mentioned here.
http://docs.the-startup-stack.com/bootstrapping/install-chef-server/#production-use
Since chef server is using SSL, the setup on it is a bit more complicated than the other parts of the stack. There's really no easier way around it that I know of. Other than using the SAAS version.

Makes sense, I will give that a go remotely from home and let you know how I get on.

@swade1987 Can you confirm this is fixed for you after the recent changes?

Yes fixed.
Regards
Steven
Sent from my iPhone
On 10 Feb 2016, at 01:27, Avi Tzurel <notifications<EMAIL_ADDRESS>wrote:
@swade1987https://github.com/swade1987 Can you confirm this is fixed for you after the recent changes?

Reply to this email directly or view it on GitHubhttps://github.com/the-startup-stack/stack-cookbooks/issues/1#issuecomment-182159637.


Add Team 8 to Factory

http://cs410.cs.ualberta.ca:41084/
They are pulling from us already we just need to be able to do the reverse and then we will have our minimum 2 groups for the submissions.
Check their API docs for the auth and what not. Calls should be very similar to ours.

I've made all the request factories According to their pages they are the exact same as ours so that was nice


Modal example does not work properly

What happened?
What happened?
When I click on the "Show Modal" button for the first time, everything works fine. The dialog box opens and can be closed by clicking on one of the two buttons. When I try to open it again, the modal comes up without any content. The text and buttons that should be inside the modal appear in the background and the modal is empty.

Bug experienced with Chrome, Chromium, Firefox and Edge.
What type of frontend frameware are you seeing the problem on?
Vanilla JS
Which version of iX do you use?
v1.2.1
Code to produce this issue.
Example code on ix.siemens.io

Should have been fixed by #207. We'll have to check again.

The snippet in V1.3.0 works like a well-oiled machine.
Thanks for that!
Maybe you could update ix.siemens.io :)

Updated example is live on ix.siemens.io.


Update on maintainerships owned by @nvlsianpu

Since @nvlsianpu is moving on to a separate internal team at Nordic, replace him with other engineers in the corresponding files.

Since maintainers are more than just a line that can be replaced in a maintainers file:
Andrzej (@nvlsianpu), I would sincerely like to thank you for the hard work you have done for zephyr. You have added support for storage, fcb, settings, ... have been the maintainer for flash for a large time and have helped zephyr to become what it is today. Being a maintainer comes with responsabilities that you have always done well. Of course we didn't always agree on the right decision to take at certain moments, but that is OK. I wish you all the best with new responsabilities and I hope you will still visit the community from time to time.