behemoths are running low on disk space

in the last couple weeks especially, but also in recent months generally, the behemoths sometimes run out of disk space. between community build runs, 80-100GB is free, but during runs, we're running out of space
the community build's temporary disk space requirements are really high. during a run, a ton of space is used which ends up being freed up again at the end
so usually the community build fixes itself simply by running it again; because previous successfully built projects will be cached, the next run's temporary space requirements are much less
but, we can't really afford for community build disk space issues to randomly cause scala/scala PR validation failures

Adriaan has been disabling the JDK11 and/or JDK12 jobs as a temporary measure

@SethTisue I have a commit in a devel branch of dbuild that allows to specify as cleanup time "-1", which means each successful extraction or build dir is deleted immediately after completion, rather than at the end: https://github.com/lightbend/dbuild/pull/221/commits/644481ed2c779c4727ed91f954df094e65d4ca2c
I could cut a beta release of dbuild which includes the latest changes, for your testing from: https://github.com/lightbend/dbuild/pull/221
Please let me know if you'd like to try that path.

I haven't had time to try @cunei's build yet :-/
we got through the 2.13.0 release frenzy without running out of space by disabling some less essential jobs (JDK 6, 11, 12) and (important!) clearing their workspaces
another thing that I've been doing that's been helping is: whenever I bump the Scala SHA on any of the three branches (2.11.x, 2.12.x, 2.13.x), I wipe out that branch's workspaces. that really helps a lot, especially during periods when SHA bumps are frequent.

$ bin/dbuild --help
Typesafe dbuild 0.9.17-toni22   (176ed360b8a2)


Windows subsystem as normal user errors on all commands.

Currently i'm trying to solve this issue: https://github.com/jesseduffield/lazygit/issues/360
The short version of this issue is that when we use this package to run Git commands it errors on the Windows linux based subsystem as normal user with this error:
fork/exec /usr/bin/git: invalid arguments
Here is the code we use to do a git pull:
	cmd := exec.Command("git", "pull")

	cmd.Env = os.Environ()
	cmd.Env = append(cmd.Env, "LANG=en_US.UTF-8", "LC_ALL=en_US.UTF-8")

	var stderr bytes.Buffer
	cmd.Stderr = &stderr

	ptmx, err := pty.Start(cmd)

	if err != nil {
		return err // IT ERRORS HERE
	}

	// Other code

Do you know what the problem is here?
From other Github issues about the windows subsystem I've noticed that this might be related to the windows subsystem kernel.
Although there is one wired thing.. If the binary gets ran as root it works completely fine.
Do you have any idea why this happens or what might cause this.
Here are some other details:

OS: Windows subsystem Debian based
When running the commands with bash -c "git pull" also gives the same error (sh does the same thing)
When running as root it works fine
git fetch, pull, push all work perfectly fine when ran in the normal shell and without this package.
We use a fork of your package that is up to date with yours but with a different way of error reporting, here are the changes: https://github.com/jesseduffield/pty/commit/02db52c7e406c7abec44c717a173c7715e4c1b62
This happens on all subsystems: Debian, OpenSuse, Ubuntu, etc

It would seem as of Windows 10 version 1903, this is no longer an issue. From what I understand build 18305 has fixed it.

Great, i'll try it out again when i have access to a windows PC.
It it works i'll close the issue.


How to disable a specific paypal button?

Hello,
It would be great to know how to restore a specific paypal button so that it is not effected by minicart. An example usage would be to allow paypal's donation buttons to go straight to paypal instead of being stored in the cart.
Thank you for your time :)

Worked it out..
    var form = document.querySelector('.paypalform');

    paypal.minicart.cart.on('add', function (idx, product, isExisting) {
        this.remove(idx);
        paypal.minicart.view.hide();
        form.submit();
    });


DPO training on LLAMA-2 completely corrupts the model

Hello, I am following the usual recipe of starting from a pre-trained model TheBloke/Llama-2-7B-fp16, doing an SFT step (which I can verify significantly improves performance on my test set) and then DPO. The samples are in-policy (sampled from the SFT with low temperature, then annotated with LLM as a judge). I can manually verify that preferences look fine. I launch DPO and after a tiny amount of steps, even as low as 5 steps (effective batch size = 16, so 80 samples have been used in total) the model COMPLETELY degenerates. E.g. here is a sample:
Prompt = "Please find the location: 'Hello, I wanna go to London'"
SFT output = "{'city': 'London', 'country': 'UK'}"
DPO output = "Home » News » India » 'BJP's Agenda is to Destroy Constitution': Rahul Gandhi on CAA
433 'BJP's Agenda is to Destroy Constitution': Rahul Gandhi on CAA
434 File photo of Congress leader Rahul Gandhi.
.....
So the DPO output is completely random, out of (SFT) distribution text that never ends (cut at truncation point). I am at a loss, specifically because exactly the same code worked on another problem. In other words it doesn't look like a bug, just extreme instability that I don't see reported in the literature.
Any hints? I am using reasonable beta (as high as 0.3) and a tiny LR (5e-7) but to no avail. I am trying with qLora default hparams (same as I did my SFT without issues).

Hi, thanks for sharing. System info and steps for reproducing (including data, script etc) would help

Closed as not enough information to reproduce.


browserify just for server-side module concatenation

How can I use browserify to get my server-side modules bundled into one file for node (w/o using build-in transformations for browser purpose)?

Sounds like you're looking for --bare (not sure what the API equivalent is -- my guess would be opts.bare).

Ooop, I've missed that opt. Works fine for me. Thanks.


Can't access device

I have just found your integration and am trying to set it up on Home Assistant. I installed HACS and then pulled in this library using the button from the readme, but am wondering if there are more steps involved in setting this up? I would expect I need to enter authentication credentials somewhere but not sure where I would need to add these if I need to do so manually, and am also not receiving any prompt in the UI to do so. I have restarted HA since installing. There is nothing showing up in the logs either. This is what I can see. Any help would be appreciated thanks!

Yeah there is a section in home assistant called something like developer settings?


Add public theme version to TimberTheme

Ticket: #1503
Issue
Theme version is missing as public property in TimberTheme.
Solution
Add theme version as public property version to TimberTheme.
Impact
None.
Usage Changes
Theme version can be accessed in Twig with {{ theme.version}}.

Coverage increased (+0.002%) to 94.042% when pulling ca9dce0f896959c103bf45410d11c280c2fe78e9 on herrschuessler:master into c702c42f099b3fee913182e428b932a99ec081a4 on timber:master.

@herrschuessler love it! I just want to make sure we had test coverage. You're welcome to have at it, or I can write one in the next couple days

@jarednova Great! Would love to see you go ahead with the test, I'm not much of a PHP guy ;-)

Thanks again @herrschuessler. I added the test and put it on the 'old master


Sideblogs are shown as offline

I tried to authorize, restart the program, they are still shown as offline. Is not there a specific bug on my side, or maybe there's just no support for the sideblogs in the program?
Here are two such blogs, for example (sorry, they are NSFW):
https://www.tumblr.com/dashboard/blog/hot-fantasies
https://www.tumblr.com/dashboard/blog/robstoughts
Or
http://robstoughts.tumblr.com
http://hot-fantasies.tumblr.com

Duplicate of #4.


Fix ImageViewer: Apply applyDefaultHierarchyTemplate

The intermediate iosMain source was previously removed here: https://github.com/JetBrains/compose-multiplatform/pull/3956 And it worked fine.
According to the doc https://kotlinlang.org/docs/whatsnew1920.html#set-up-the-target-hierarchy :

If you want to have additional source sets that the default hierarchy template doesn't provide, for example, one that shares code between a macOS and a JVM target, adjust the hierarchy by reapplying the template explicitly with applyDefaultHierarchyTemplate() and configuring additional source sets manually as usual with dependsOn()

Now we have an additional custom source set named 'jsWasmMain', therefore we need to have applyDefaultHierarchyTemplate().

A trivial change. So merging it right away.


[FLINK-10563] Expose shaded Presto S3 filesystem under "s3p" scheme

the shading check must be updated

fixed

merged


rotki: update to 1.33.1

@wanderer can you pls sign your commit? I can't merge without that :(

@selfuryon it is now signed


@types/react-retool npm module

Would be great if we had @types/react-tool npm module, even if it's trivial
Could not find a declaration file for module 'react-retool'.
'/node_modules/react-retool/index.js'
implicitly has an 'any' type. Try `npm i --save-dev @types/react-retool` if it exists
or add a new declaration (.d.ts) file containing `declare module 'react-retool';`ts(7016)

+1

can you explain the bit what we have to do

I got around this by creating a file in root 'react-retool.d.ts':
declare module 'react-retool' {
    export const Retool: any;
  }

Or just declare module 'react-retool'; in a .d.ts file. But would be really nice to get types.

+1

+1

+1


fix: Remove base16-specific actions in "auto" theme

Closes #796.
The test suite seems broken:
Starting...Scheduling: tests//spec/config_spec.lua
Scheduling: tests//spec/component_spec.lua
Scheduling: tests//spec/utils_spec.lua
Scheduling: tests//spec/lualine_spec.lua
make: *** [test] Error 1

That's all I get.

Instead of removing base-16 auto detection lets add an additional check to see if f RRethy/nvim-base16 is installed . You should find a check for that in base-16 theme in lualine. I think it'd still be a good default to use base-16 theme when f RRethy/nvim-base16 is installed.


update feedstock doctr version 1.5.2

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


[BUG] Named export 'Appender' not found.

Describe the bug
After updating tsed to version 7.63.1 when starting it, i get the following error:
SyntaxError: Named export 'Appender' not found. The requested module '@tsed/logger' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:

I am using ESM, the error it complains is from<EMAIL_ADDRESS>but it seems FileAppender has not changed in 2 years, so i am not sure the origin of this issue. i tried checking the changelogs and can't see anything that would cause this.
To Reproduce

use logger
try to start tsed

Expected behavior
it works
Code snippets
No response
Repository URL example
No response
OS
WIndows 11
Node version
v20.11.0
Library version
7.63.1
Additional context
I was updating from 7.62.3 to 7.63.1

Hello @VictoriqueMoe
I recently release a change on the package.json to export precompiled file for browser env. it seems to be related. Probably the exported file for esm is wrong. I’ll check that.

@VictoriqueMoe  fixed ;)
Release v6.7.4
See you !

@VictoriqueMoe fixed ;) Release v6.7.4
See you !

Thak you as always!

I can confirm that after updating, it works well :)


[WIP] Adjust appveyor build and mingw tool paths  [travis skip]

All of the AppVeyor images we test on have msys2 installed, the 2019 image doesn't have mingw any longer, so adjust PATH to look for the msys2 ones instead.  Also added cygwin64.
The mingw tool has the msys paths in it, but not in the correct form to find anything: it had \msys64 and \msys, with no \bin suffix.  Added \bin to those two (this is mentioned in bug or clean up the messy way in which paths are looked up, but at least the msys paths shouldn't be useless now.
Marked WIP for now as I'm mostly interested in getting a test run to see if this works as expected.
Signed-off-by: Mats Wichmann<EMAIL_ADDRESS>Contributor Checklist:

[ ] I have created a new test or updated the unit tests to cover the new/changed functionality.
[ ] I have updated master/src/CHANGES.txt directory (and read the README.txt in that directory)
[ ] I have updated the appropriate documentation

I'm closing this as it duplicates what #3505 is doing. Suggestion to #3505 is to add to the paths in src/engine/SCons/Tool/mingw.py  also.


Wavelog on Synology NAS

Hello All
I have no idea how to install wavelog on my Synology NAS.
Is there a step by step installtion guide?
The latest Docker is installed on my Synlogy NAS.
I'm not a Linux expert and someone who can install Wavelog on my Docker.
73 de HB9RYZ
Wolfgang

Hello Wolfgang
There is a written step by step install from one of our users :)
https://mariushosting.com/how-to-install-wavelog-on-your-synology-nas/
Vy 73 de HB9HIL


Update the game over message

Update the game over message so people know how to play again!

yeahhh

this was so good


Allow disabling /runner emptydir mounts

This might be a little odd and hackish feature, but...
If the k8s host is having different mount points for rootfs and /var/lib/containerd, e.g. small rootfs and big varlib, one might not want to create emptydirs into rootfs, but rather use the overlay as working directory.
User can enable this behavior by setting VolumeSizeLimit to zero.

If the k8s host is having different mount points for rootfs and /var/lib/containerd, e.g. small rootfs and big varlib, one might not want to create emptydirs into rootfs, but rather use the overlay as working directory.

Hey! Thanks for the PR. Would you mind clarifying "why" you would use it? I think you've explained "when" one would use this but I can't unstandard "why" you need this.

I'm very interested in this feature too.
Our rationale is the emptyDir mount in Kubernetes allows you to provision a tmpfs, and giving you a fast access path.
https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
Coupled with resource quotas (pod or namespace) in memory, it constrains its usage and limits the blast radius.
It's been brought to my attention by one of my colleague who looked at circle CI and their ramdisk feature:
https://circleci.com/docs/2.0/executor-types/#ram-disks
The implementation of this isn't clear, but pretty sure it's using a similar setup.

We're running Kubernetes on top of Openstack that's having instance flavors with rather small rootfs (10-20GB) and bigger emphemeral disks (e.g 50GB). This emphereral disk is partioned for containerd. This leads to a situation where kubelet's root disk is located on the rootfs and that's the place where emptydirs are allocated.
There're multiple solutions for this mess:

Increase rootfs size. This leads another platform issues and therefore not viable for us.
Partition current empheral disk for both kubelet and containerd. This is doable, but I'd rather keep the hosts as simple as possible.
Mimic the old (0.17.0 and older) controller setup without empty disk. We've been running DinD runner successfully, so defining VolumeSizeLimit: "0" with this patch would keep this old behavior within the latest controller code.

I think the interface is rather safe: emptydirs are skipped only  if VolumeSizeLimit is defined and it's set to zero (0, 0GB, etc.). You need to know what you're doing when setting upper limits to zero. :)
Now, runner's entrypoint is also modified within this patch and for me it can be reverted as we're using a modified DinD runner image. Anyway, it's now more like warning than error.

@sledigabel I guess you were looking for the feature introduced in the second commit: ability to change the storage medium of emptydirs from default to memory.

@sledigabel I guess you were looking for the feature introduced in the second commit: ability to change the storage medium of emptydirs from default to memory.

Indeed :-) looking forward to it, looks like you're on top of this but happy to help as well if you need

The current master (and therefore this branch as well) doesn't seem to be working correctly with dockerdWithinRunnerContainer: true. Might be due to RunnerSet  changes commited lately.
According to controller logs, it seems that two containers are now always required:
021-07-12T21:13:54.491Z	ERROR	actions-runner-controller.runner	Failed to create pod resource	{"runner": "gha/ghe-rofatest-runner-deployment-cxjn8-kzs6w", "error": "Pod \"ghe-rofatest-runner-deployment-cxjn8-kzs6w\" is invalid: spec.containers[1].image: Required value"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.0/pkg/internal/controller/controller.go:298
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.0/pkg/internal/controller/controller.go:253
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.0/pkg/internal/controller/controller.go:214
2021-07-12T21:13:54.491Z	ERROR	controller-runtime.manager.controller.runner-controller	Reconciler error	{"reconciler group": "actions.summerwind.dev", "reconciler kind": "Runner", "name": "ghe-rofatest-runner-deployment-cxjn8-kzs6w", "namespace": "gha", "error": "Pod \"ghe-rofatest-runner-deployment-cxjn8-kzs6w\" is invalid: spec.containers[1].image: Required value"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.0/pkg/internal/controller/controller.go:253
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.0/pkg/internal/controller/controller.go:214

RunnerDeployment:
apiVersion: actions.summerwind.dev/v1alpha1
kind: RunnerDeployment
metadata:
  name: ghe-rofatest-runner-deployment
  namespace: gha
spec:
  replicas: 1
  template:
    spec:
      dockerRegistryMirror: https://x.x.x
      dockerdWithinRunnerContainer: true
      enterprise: xxx
      group: Testing
      image: my-custom-actions-runner-dind:rofatest
      imagePullPolicy: Always
      labels:
      - runner-testing
      resources:
        limits:
          cpu: "6"
          memory: 4Gi
        requests:
          cpu: "2"
          memory: 2Gi

Could you verify that the current master should also work with dind runners in RunnerDeployments or have I just messed my dev environment?

@rofafor Thanks for testing and reporting! I've submitted a fix for that #696. Would you mind giving it a shot?

Rebased with the latest master and retested successfully:
#volumeStorageMedium: Memory
#volumeSizeLimit: 2Gi

Volumes:
  runner:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  kube-api-access-qbcw5:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true

volumeStorageMedium: Memory
volumeSizeLimit: 2Gi

Volumes:
  runner:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     Memory
    SizeLimit:  2Gi
  kube-api-access-j86gg:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true

#volumeStorageMedium: Memory
volumeSizeLimit: "0"

Volumes:
  kube-api-access-sqh5s:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true


Support for ESP8266

Ease the setup of deep sleep and light sleep for such device.

Agreed, ESP8266 and ESP32 functionality would be an excellent addition. Thanks.


[improve] [auto-recovery] [branch-3.1] Migrate the replication testing from BookKeeper to Pulsar.

Motivation
cherry-pick #21188
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository:

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks


Unable to implement top_p using mlx-swift

I am trying to implement the top_p (https://github.com/ml-explore/mlx-examples/blob/main/llms/mlx_lm/utils.py#L146-L163) in mlx-swift, but I have not been successful yet. The implementation looks fine to me, but it consistently generates unknown tokens as output. I am unsure if I missed something or if there is a discrepancy in implementation between mlx-swift and the Python binding.
here is my mlx-swift implementation:
private func sample(logits: MLXArray, temp: Float, topP:Float = 1.0) -> MLXArray {
    if temp == 0 {
        return argMax(logits, axis: -1)
    } else {
        if topP > 0 && topP < 1.0 {
            var logits = logits
            if logits.dtype == .bfloat16 {
                logits = logits.asType(.float32)
            }

            let probs = softMax(logits/temp, axis: -1)

            let sortedProbs  = sorted(probs, axis: -1)[stride:-1, axis: -1]
            let sortedIndices = argSort(sortedProbs, axis: -1)[stride:-1, axis: -1]

            let cumulativeProbs = cumsum(sortedProbs, axis:-1)

            let topProbs = MLX.where(cumulativeProbs .> (1-topP), sortedProbs, zeros(like:sortedProbs))

            let sortedToken = categorical(log(topProbs))
            return sortedIndices.squeezed(axis: 0)[sortedToken]
        }

        return categorical(logits * (1 / temp))
    }
}

I think the best way to debug this is to compare the run of the python code vs the swift code.  For example the logits array looks something like this (after the first token):
(lldb) po logits.shape
▿ 3 elements
  - 0 : 1
  - 1 : 1
  - 2 : 51200

we can make the shaped array in python:
>>> import mlx.core as mx
>>> a = mx.arange(51200).reshape(1, 1, 51200)

or use a smaller array with a similar shape so you can print it out:
>>> a = mx.arange(12).reshape(1, 1, 12)
>>> a
array([[[0, 1, 2, ..., 9, 10, 11]]], dtype=int32)

then you can step through the operations:
>>> probs = mx.softmax(a / 0.5, axis=-1)
>>> probs.shape
(1, 1, 12)
>>> probs
array([[[2.41196e-10, 1.78221e-09, 1.31688e-08, ..., 0.0158369, 0.11702, 0.864665]]], dtype=float32)

I think the problem might be here (you can do this with the original a as well and keep the numbers pretty):
>>> sorted_probs = mx.sort(probs)[::-1]
>>> sorted_probs
array([[[2.41196e-10, 1.78221e-09, 1.31688e-08, ..., 0.0158369, 0.11702, 0.864665]]], dtype=float32)

the [::-1] means reverse the first index of the array.  The swift code does this:
let sortedProbs  = sorted(probs, axis: -1)[stride:-1, axis: -1]

That looks like it is reversing the last index of the array.
Anyway, if you run some test data like arange() / MLXArray(0 ..< 12) with the proper shape through it you can probably find where the code does something different.

I use arange() a LOT to explore exactly what the python code does -- it is easy to make arrays with different shapes and you can tell what happens to the contents :-)

Docs coming with https://github.com/ml-explore/mlx-swift/pull/51/files -- I put a screenshot of the docs in there in case it helps.

I'm actually a little confused by the topk implementation in Python, because it looks like we should be reversing the last axis not the first axis which is essentially a no-op since the shape is (1, 1, N).
And yet as far as I know the topk works in Python 🤔

@awni I think the Python implementation has a bug. I will create a PR to fix it shortly.

After doing some local tests, I just noticed there is a typo in my implementation in the sortedIndices which argSorts the sortedProbs instead of probs. I will close the issue. Thank you for all your help @davidkoski.


Wallet usage patterns

Thinking further on API2 for wallet-type clients.
A wallet needs data from genesis for specific entities, for example - all transactions to/from an account. There are 2 main ways to design this:

Have pull method with pagination support. e.g. MeshGetAccountTranscations(AccountId, offset) returns (TransactionsList). Wallet will call this for a specific account with offset 0 initially - get the results and continue to pull until it got all the results it needs.

Specify a start layer number in a stream of transactions and receive a stream of transactions since that layer. e.g. `MeshStreamAccountTransactions(AccountId, LayerNumber) returns (stream Transaction). Call this with layernumber = 0 to get a stream of results since genesis... keep listening on this server-side data stream for new applicable transactions.

These aren't mutually exclusive. I see no reason not to have both, a paginated endpoint and a stream endpoint.
It's not clear what happens in case 1. if there's a reorg. If the consumer keeps asking for page after page, it might be oblivious to the fact that the reorg happened. We might solve this by adding statefulness and some sort of "session ID" to consecutive requests for multiple pages, but that's messy for other reasons. Case 1. obviously also misses things like status changes to a previous tx, which is where the stream is useful.
One caveat on 2., as discussed a stream can only return new data, not historical data, so I'm not sure it makes sense to pass in a start layer number as you proposed.

I think we addressed this with the latest version of the api and we agreed on the usage patterns. Is there anything else to do on this issue?

Nope, I think we're good. Does the documentation at https://github.com/spacemeshos/api#queries-and-streams match your understanding? I intend to improve the documentation a bit more as part of #67
I'm going to assume we're good here and close this, feel free to reopen if necessary


Newtonsoft.Json: 6.0.8 -> 11.0.2

Motivation for this change
This upgrades Newtonsoft.Json and fixes a few failing packages, among which openra.
I cherry-picked c632384 as @matthewbauer suggested.
This is based on https://github.com/NixOS/nixpkgs/pull/44478.
This replaces https://github.com/NixOS/nixpkgs/pull/46425
This is part of https://github.com/NixOS/nixpkgs/issues/45960
Ping @samueldr @nek0
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

[ ] 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 nox --run "nox-review wip"
[x] 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)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build dotnetPackages.NewtonsoftJson openra

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: dotnetPackages.NewtonsoftJson, openra
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-darwin (full log)
Attempted: dotnetPackages.NewtonsoftJson
The following builds were skipped because they don't evaluate on x86_64-darwin: openra
Partial log (click to expand)
'package/services' -> '/nix/store/13dv0fh294x139j3xjs67f8p2nmpv9by-Newtonsoft.Json-11.0.2/lib/dotnet/Newtonsoft.Json/package/services'
'package/services/metadata' -> '/nix/store/13dv0fh294x139j3xjs67f8p2nmpv9by-Newtonsoft.Json-11.0.2/lib/dotnet/Newtonsoft.Json/package/services/metadata'
'package/services/metadata/core-properties' -> '/nix/store/13dv0fh294x139j3xjs67f8p2nmpv9by-Newtonsoft.Json-11.0.2/lib/dotnet/Newtonsoft.Json/package/services/metadata/core-properties'
'package/services/metadata/core-properties/620e2bc63eca44f08a90b7f8a29c7d5e.psmdcp' -> '/nix/store/13dv0fh294x139j3xjs67f8p2nmpv9by-Newtonsoft.Json-11.0.2/lib/dotnet/Newtonsoft.Json/package/services/metadata/core-properties/620e2bc63eca44f08a90b7f8a29c7d5e.psmdcp'
/nix/store/13dv0fh294x139j3xjs67f8p2nmpv9by-Newtonsoft.Json-11.0.2 /private/tmp/nix-build-Newtonsoft.Json-11.0.2.drv-0
/private/tmp/nix-build-Newtonsoft.Json-11.0.2.drv-0
glibPreFixupPhase
post-installation fixup
patching script interpreter paths in /nix/store/13dv0fh294x139j3xjs67f8p2nmpv9by-Newtonsoft.Json-11.0.2
/nix/store/13dv0fh294x139j3xjs67f8p2nmpv9by-Newtonsoft.Json-11.0.2

Success on x86_64-linux (full log)
Attempted: dotnetPackages.NewtonsoftJson, openra
Partial log (click to expand)
shrinking RPATHs of ELF executables and libraries in /nix/store/7yzg50y6ibrw25957b0305rm9rnycyd9-openra-20180307
gzipping man pages under /nix/store/7yzg50y6ibrw25957b0305rm9rnycyd9-openra-20180307/share/man/
patching script interpreter paths in /nix/store/7yzg50y6ibrw25957b0305rm9rnycyd9-openra-20180307
/nix/store/7yzg50y6ibrw25957b0305rm9rnycyd9-openra-20180307/lib/openra/launch-dedicated.sh: interpreter directive changed from "/bin/sh" to "/nix/store/czx8vkrb9jdgjyz8qfksh10vrnqa723l-bash-4.4-p23/bin/sh"
/nix/store/7yzg50y6ibrw25957b0305rm9rnycyd9-openra-20180307/lib/openra/.launch-game.sh-wrapped: interpreter directive changed from "/bin/sh" to "/nix/store/czx8vkrb9jdgjyz8qfksh10vrnqa723l-bash-4.4-p23/bin/sh"
/nix/store/gpy3r9ss5ngfkib8ylx7jzgahq7m0x5b-patch-shebangs.sh: line 22: warning: command substitution: ignored null byte in input
/nix/store/gpy3r9ss5ngfkib8ylx7jzgahq7m0x5b-patch-shebangs.sh: line 22: warning: command substitution: ignored null byte in input
checking for references to /build in /nix/store/7yzg50y6ibrw25957b0305rm9rnycyd9-openra-20180307...
/nix/store/jsl9bl7vgvsi4s8ngwpprdyafz6b844x-Newtonsoft.Json-11.0.2
/nix/store/7yzg50y6ibrw25957b0305rm9rnycyd9-openra-20180307

@GrahamcOfBorg build dotnetPackages.Paket dotnetPackages.FSharpAutoComplete gdata-sharp

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: dotnetPackages.Paket, dotnetPackages.FSharpAutoComplete, gdata-sharp
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: dotnetPackages.Paket, dotnetPackages.FSharpAutoComplete, gdata-sharp
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Failure on x86_64-linux (full log)
Attempted: dotnetPackages.Paket, dotnetPackages.FSharpAutoComplete, gdata-sharp
Partial log (click to expand)
src/unittests/picasa/TagAccessorTest.cs(12,6): error CS0619: `NUnit.Framework.TestFixtureAttribute' is obsolete: `The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
src/unittests/picasa/GPhotoMaxPhotosPerAlbumTest.cs(14,6): error CS0619: `NUnit.Framework.TestFixtureAttribute' is obsolete: `The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
src/unittests/picasa/PicasaQueryTest.cs(33,6): error CS0619: `NUnit.Framework.TestFixtureAttribute' is obsolete: `The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
src/unittests/picasa/GPhotoBytesUsedTest.cs(14,6): error CS0619: `NUnit.Framework.TestFixtureAttribute' is obsolete: `The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
src/unittests/picasa/GPhotoExtensionsTest.cs(14,6): error CS0619: `NUnit.Framework.TestFixtureAttribute' is obsolete: `The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
src/unittests/picasa/PicasaFeedTest.cs(15,6): error CS0619: `NUnit.Framework.TestFixtureAttribute' is obsolete: `The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
Compilation failed: 181 error(s), 12 warnings
make: *** [Makefile:122: tests] Error 1
builder for '/nix/store/0lxqgq2n0dzvwpr347jvibycj9c8zcjx-gdata-sharp-<IP_ADDRESS>.drv' failed with exit code 2
error: build of '/nix/store/0lxqgq2n0dzvwpr347jvibycj9c8zcjx-gdata-sharp-<IP_ADDRESS>.drv', '/nix/store/dmdlpc8s2cjs9r26n9346v5cngwmdb8c-Paket-1.18.2.drv', '/nix/store/xggs5l71a39dyxllr7yr6i5a5yfr2zp8-FSharp.AutoComplete-0.18.2.drv' failed

The last 3 failures shouldn't prevent merging this, they can be fixed separately, maybe just need an update. They've been broken since April 2018 anyway because of NewtonsoftJson ...

backported: b998319b6a7


How to set environment variables

How do I set environment variables for the virtual environment created by UV? I tried setting it .venv/scripts/activate_this.py and it doesn't work.
# activate_this.py

...
os.environ["PATH"] = os.pathsep.join([bin_dir, *os.environ.get("PATH", "").split(os.pathsep)])
os.environ["VIRTUAL_ENV"] = base  # virtual env is right above bin directory
os.environ["VIRTUAL_ENV_PROMPT"] = "uv-demo" or os.path.basename(base)  # noqa: SIM222
os.environ["HELLO"] = "WORLD"
...

Are you perhaps looking for a .env file instead? If the desire is to activate environment variables for your project, there's many solutions out there that can help you in doing so such as direnv rather than relying on virtualenv activation mechanisms setting additional environment variables for you.

I found my answer down below
https://docs.astral.sh/uv/configuration/files/#env


System or AMD module with outFile and dynamic import incorrect

TypeScript Version:  3.8.3
Search Terms:
dynamic import, system, outFile
Code
index.ts
import * as foo from "./mod1";

(async () => {
  const foo1 = await import("./mod1");
  console.log(foo, foo1);
})();

mod1.ts
export const foo = "foo";

$ tsc index.ts --outFile bundle.js --module system --target esnext

or
$ tsc index.ts --outFile bundle.js --module amd --target esnext

Expected behavior:
With System, it is expected that the dynamic import() statement would be converted to import("mod1") instead of staying as import("./mod1") since all modules are now registered with absolute specifiers instead of resolved specifiers.  This is mostly because the compiler determines what the specifiers are named, and shouldn't presume relative resolution can be applied by the loader.
Actual behavior:
for System module
System.register("mod1", [], function (exports_1, context_1) {
    "use strict";
    var foo;
    var __moduleName = context_1 && context_1.id;
    return {
        setters: [],
        execute: function () {
            exports_1("foo", foo = "foo");
        }
    };
});
System.register("index", ["mod1"], function (exports_2, context_2) {
    "use strict";
    var foo;
    var __moduleName = context_2 && context_2.id;
    return {
        setters: [
            function (foo_1) {
                foo = foo_1;
            }
        ],
        execute: function () {
            (async () => {
                const foo1 = await context_2.import("./mod1");
                console.log(foo, foo1);
            })();
        }
    };
});

cc/ @guybedford

Because dynamic import is based on expressions - custom expression remapping system is needed here which is very different to static module specifiers.
Typically I run an analysis parse over the ES source to compute a wildcard expression that reads a statement like:
const feature = 'listing';
import('./${feature}/${item}.js')

into a wildcard expression like "./listing/*.js". I then glob the file system to determine the possibilities and apply those as entry points in the build analysis. Then for bare specifier mappings applying that to the base where possible, otherwise relying on the alignment of the production import map with the original specifier in the import map generation process.
All of the above involves some quite high bandwidth connection between source analysis and the overall build process so I typically run this as a preparser.
Better integrating the above workflow into TypeScript analysis would of course be a huge win, it's just difficult to justify when very few people are quite there in getting on top of this conceptually.

@guybedford yes, I agree with the complexity of what could be passed in import().  Personal feeling though is that, I would accept that if TypeScript is able to resolve the import() to a symbol to a module that it uses for setting the type, that it should emit that symbols remapped name.  There are a lot of situations where that would fall down, but it should fall down in line with TypeScript's ability to resolve the symbol.

If the dynamic import is just a static string it could be a special option
certainly to achieve what you want, but it is just the base case of what
should really be a better engineered expression handler than that and so I
don’t see it as the best solution for TypeScript to handle but that is not
to say it can’t.
On Wed, Mar 18, 2020 at 01:33 Kitson Kelly<EMAIL_ADDRESS>wrote:

@guybedford https://github.com/guybedford yes, I agree with the
complexity of what could be passed in import(). Personal feeling though
is that, I would accept that if TypeScript is able to resolve the import()
to a symbol to a module that it uses for setting the type, that it should
emit that symbols remapped name. There are a lot of situations where that
would fall down, but it should fall down in line with TypeScript's ability
to resolve the symbol.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/TypeScript/issues/37429#issuecomment-600349926,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAESFSWL3HQWEAKW3ILUZS3RIACFDANCNFSM4LM5PBFA
.

Honestly, I'm not sure we're doing the right thing for single-file SystemJS or AMD output right now anyways:

Named System.register is an extra feature, and is not enabled by default, but we have no way to message this as part of our build process.
The above code registers index.ts using System.register("index", ...) (or define("index", ...)) which is not what you would want when distributing a library, and could cause conflicts if you were to want to import a package named foo but also had a foo.ts.

For most of our other module transformers we don't rewrite paths for import, and generally rely on "paths" mappings in tsconfig.json so that we understand imports the way they're written even if the actual file layout differs. What we probably should be doing here, if we are going to rewrite paths at all, is require something like a packageName compiler option for bundled output cases that would act as the base path for relative path resolution, and a packageMain option to indicate the package root, i.e.:
// tsc index.ts --outFile bundle.js --module system --target esnext --packageName foo --packageMain index.ts
System.register("foo/mod1", [], function (exports_1, context_1) {
    "use strict";
    var foo;
    var __moduleName = context_1 && context_1.id;
    return {
        setters: [],
        execute: function () {
            exports_1("foo", foo = "foo");
        }
    };
});
System.register("foo/index", ["foo/mod1"], function (exports_2, context_2) {
    "use strict";
    var foo;
    var __moduleName = context_2 && context_2.id;
    return {
        setters: [
            function (foo_1) {
                foo = foo_1;
            }
        ],
        execute: function () {
            (async () => {
                const foo1 = await context_2.import("foo/mod1");
                console.log(foo, foo1);
            })();
        }
    };
});
// NOTE: anonymous register that re-exports `--packageMain`
System.register(["foo/index"], function (exports_3, context_3) {
    "use strict";
    var index;
    var __moduleName = context_3 && context_3.id;
    function exportStar_1(m) {
        var exports = {};
        for (var n in m) {
            if (n !== "default") exports[n] = m[n];
        }
        exports_3(exports);
    }
    return {
        setters: [
            function (index_1) {
                index = index_1;
                exportStar_1(index_1);
            }
        ],
        execute: function () {
        }
    };
});

/cc @weswigham @DanielRosenwasser

While the specific use case that drove this issue is no longer needed personally, dynamic imports are clearly a "troublesome" situation for anyone else.  Because with an outFile emit, I believe the SourceFile.moduleName is used in the emit for the System.register(name, [...], function () {}) and in the dependency array.  For consistency, if the import(mid) symbol is resolved to another source file, for type checking purposes, it should be emitted as the source files moduleName.
On the other hand, for Deno, where we ended up is not touching dynamic imports at all for now, since they become such a complex problem, where does someone actually want to inline the import or not.  I expect there are two main reasons that some wants to use dynamic import():

Lazily load additional modules.  Where the developer likely doesn't want the code in the bundle.
Conditionally load something... like if condition is true at runtime, load a module or otherwise load a different module (e.g. loading polyfills).  In that case the developer likely wants a bundle that has no further external dependencies.

So it almost feels like including or not including resolvable dynamic imports should be optional, but if they are part of the emit, then all of their dependency sites should be rewritten to what they are in the emit.

@rbuckton we recently added the  bundledPackageName to fix declaration emit paths in this way, perhaps it should be required for those module emit modes(even without declarations), too?

Note that named System.register(name, ...  is deprecated in SystemJS and we do not encourage this as a bundling workflow. Rather we encourage SystemJS to load optimized chunks that are internall compiled without using the format themselves.
Even for single file compiler contexts, anonymous modules are the recommended route in dev.
It would be great if we could flip this default as otherwise they are useful to no one.

@guybedford does SystemJS provide a way to do this (defining such "optimized chunks"), or are you recommending we implement a bundling solution within the compiler itself? I'm not sure that's something we want to consider, as there are already bundlers in the ecosystem.

@rbuckton the workflow is that a file structure in src/*.ts can be compiled into a file structure in dist/*.js as System modules, and those separate system modules can be imported directly with SystemJS, supporting all the ESM features and working directly that way. Alternatively it is used in live compilation server use cases etc.
The name of the module in the System format is taken from the URL of the script loading the module, just like an ES module definition into the loader registry in the browser. This is the anonymous AMD module form, which is always recommended for single modules even in the AMD workflows.
With AMD there was confusion about when to name and when not as eg jQuery used to define its name in its AMD definition. This was actually a misinterpretation of how the format is supposed to work though and should always have been anonymous really.
For SystemJS bundling we recommend RollupJS over the older SystemJS builder technique which used these names. The cross-module compilation benefits of inlining and code splitting out-perform the isolated module bundle techniques.
It's quite a colourful history that got us here, always happy to chat further or answer questions :)


can i host this on github pages?

hi, i've got localhost:1234 working and set up. i was wondering if i can host this on a github page (https://username.github.io)

nope :(

Hi @jacobsayono @Jethalal1234
I would need to create the documentation setup for different deployment services. That's a new feature.
At the moment you should be able to host your Simplefolio version on Netlify.


docs: Update remote-notification-support.md

Added warning about mutable-content requirement for NSE to work and also about content-available so the notifications works when app is in foreground.
Also edited section for Edit Payload to include second option on how to edit the payload. Second option is kind of better imho as BE do not need to care too much about FE implementation and it will be easier to switch to other libs - only FE needs to update the code and BE can stay same

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

I think this is great, thanks for the expansion + detail added here. I suggested a few things, all with the idea of just making it even more obvious or precise, what do you think?

lgtm updated PR with suggestions

I can see pros and cons of the second option, one being that your business logic is split - some on the react-native level and some here natively...
but, it's good to note so people can choose, thanks for the contribution 🙏


feat: port mono tactic

We port the mono attribute and tactic.

This PR, specifically support for mono with with, is apparently needed to finish #3419.

This PR, specifically support for mono with with, is apparently needed to finish #3419. Please finalise the port in due course.

Heard, will do! :)

@thorimur is this ready for review?

@thorimur is this ready for review?

Nope, as stated above, I'll put it out for review when it's ready for review. :) (Note the pervasive lack of docstrings!) I'm trying to finish it off today; I also revamped the workings of mono*, and I'm currently refactoring that so that it's not so terrible to review.

Is this PR still relevant? It seems mono made it well and good to Lean 4 already.

@YaelDillies I don't think this PR should go ahead as-is: I feel like the consensus (from a porting meeting a long time ago) was that this PR simply demanded too much review/introduced too much unneeded infrastructure, the current behavior was ok, and that we had another more opinionated tactic (something involving congr?) to help with some specific monotonicity cases anyway.
However, note that lean 3 mono did not make it into mathlib4 as advertised! Currently it still just uses solve_by_elim under the hood (thus it's really closer to mono*), and actually throws errors upon seeing left/right, with, and using syntax.
I feel like there's an argument to be made for intentionally abandoning some of the syntax: mono ... with was essentially an artifact of mono's bespoke backtracking procedure. using could perhaps be incorporated into a solve_by_elim or aesop call. left and right could be useful to someone, and it makes sense to have some way to distinguish between these different sorts of lemmas based on strictness, but I'm not sure calling them "left" and "right" is really a clear, understandable abstraction. Also, @[mono left] and @[mono right] are pretty infrequent. But we should probably discuss this on Zulip.
Either way, mono currently does need fixing up, but I'm pretty sure this PR is not the way to do it. There's a chance it might be useful for reference when doing that fixup, but I'd rather reference it as a closed PR instead of an open one. :)


feature: integrate open graph tags with helmet

Linked issue
Fixes #39
Also, some of the tags can be rendered immediately. All others are updated or enriched with Helmet.

:tada: This PR is included in version 0.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Web view not updated if repo is created empty

If I create a repository without a readme, license, or gitignore file, any updates I make do not show up in the web view though I am able to use the repository between machines as I normally would.
I run Gogs on it's normal port using ./gogs web, then proxy to it with Nginx. In the logs that are printed to stdout for Gogs, there are no errors.
Server: Fedora 21 x86_64
Go: 1.3.3
Gogs: <IP_ADDRESS>2 Beta

Hi @captbrogers , thanks your report!
But I have some questions first:

Which way did you use to push your code? HTTP or SSH?
Did you move the Gogs binary after you create the repository?
Does activity timeline is updating?
What's the binary path of Gogs?
What's the content of path/to/<repo_root_path>/<username>/<reponame>.git/hooks/update ?

Which way did you use to push your code? HTTP or SSH?
SSH. I am using a custom port, and I do have to use the full path, it doesn't seem to start in git's home directory. The origin URL is:
ssh://git@mygitserver.com:/home/git/gogs-repositories//.git

Did you move the Gogs binary after you create the repository?
No, it was not moved at all.

Does activity timeline is updating?
No, the activity timeline does not reflect any updates to that repository.

What's the binary path of Gogs?
/home/git/gogs/gogs

What's the content of path/to/<repo_root_path>//.git/hooks/update ?
#!/usr/bin/env bash "/home/git/gogs/gogs" update $1 $2 $3 --config='/home/git/gogs/custom/conf/app.ini'

It seems you have added your ssh key by hand to the gogs user, or are using ssh with a password. If the ssh connection would be through gogs it would never need (or actually can't use) the full path.
Could you remove your plain ssh-key from .ssh/authorized_keys and add it through the gogs web interface?

@phsmit made the point.
@captbrogers , you should push your code like ssh://git@mygitserver.com:<username>/<reponame>.git

That did seem to be the problem, conflicting data in /home/git/.ssh/authorized_keys
I removed the the line that was not added by Gogs, and without changing anything else or restarting the application, it began working as expect. Thanks guys!


Added support for pratt parsers with up to 676 operators

Adds support for 676-operator pratt parsers (AA..=ZZ)
(this took exactly 5 minutes using multi-cursors)
Closes #658

Hmm, I think this is likely to have a non-trivial impact on compilation time. Remember that the macro system still needs to generate all of those impls and the type system needs to check them, even if they go unused.
I'm happy to see the number of operators supported by pratt increased a little: let's say, to 64. But I think this is excessive.

Agreed, I tested it out and it crashed my editor when running clippy, not to mention having to increase the recursion limit for macro expansion.

Maybe it could be supported with nested tuples? but that might be too hacky

It might be a possibility, yes.

I'll see if I can make that a reality.

Closing this since #685 added support for nested pratt operators.


feat(turborepo): Calculate package inference

Description

move scope to its own module
port package inference calculation
re-enable run test

Testing Instructions
Run test runs now, and calls the package inference code

Note that more comprehensive tests will arrive when the full scope/filter test suite is ported over

@NicholasLYang I'll add some additional comments, but this is the code to power this feature. We synthesize pieces of filter expressions based on the relation of the invocation directory to the turbo root and workspace roots.


dsPlot2 error for heatmap in certain circumstances

Line 58 in dsPlot2 produces an error:
dsPlot2(data,'population','I','plot_type','heatmap_sortedFR')          % Firing rate (FR) heatmap
This might have been caused by iss #552. This is because reduce remove_excess_dims_start function produces a dimension called 'populations_variables', which overlaps with populations and variables dimensions for dsMdd2ds
Solution is to use regex to select exact name for population, etc

This issue is now fixed


bug 1705589. Reduce number of calls handling a request and cache cont…

…exts
Mitigates https://bugzilla.redhat.com/show_bug.cgi?id=1705589
by moving to bulk requests and introducing caching  for syncing

where is cache load called?

Here on cache miss: https://github.com/fabric8io/openshift-elasticsearch-plugin/pull/179/files#diff-bb75f44a950c64b663055d3c78b729c5R109

where is cache load called?

Here on cache miss: https://github.com/fabric8io/openshift-elasticsearch-plugin/pull/179/files#diff-bb75f44a950c64b663055d3c78b729c5R109

That's the definition of the load method but I do not see where it is called.  I'm mainly trying to figure out if it is called in a thread safe way.

where is cache load called?

Here on cache miss: https://github.com/fabric8io/openshift-elasticsearch-plugin/pull/179/files#diff-bb75f44a950c64b663055d3c78b729c5R109

That's the definition of the load method but I do not see where it is called. I'm mainly trying to figure out if it is called in a thread safe way.

I defer to the guava documentation that claims it is threadsafe: https://google.github.io/guava/releases/22.0/api/docs/com/google/common/cache/LoadingCache.html
This cache would live on each node so presumably there is a chance of a race condition if your requests get bounced between nodes.  The actually write, however, uses a backoff logic.  I would expect permissions to coalesce to correctness

Other than the aforementioned NPE problem, I don't see anything obviously wrong.  My main concern is that this is a big change and an architectural change, introduced into a stable product branch, which could cause regressions due to unforeseen consequences.
On the other hand, this is really the only way to solve this problem, by using a cache.
How can we test the heck out of this thing, in a high traffic, multi-node deployment, so we can at least have some confidence that it will actually work in production without causing more problems/security issues?

Other than the aforementioned NPE problem, I don't see anything obviously wrong. My main concern is that this is a big change and an architectural change, introduced into a stable product branch, which could cause regressions due to unforeseen consequences.
On the other hand, this is really the only way to solve this problem, by using a cache.
How can we test the heck out of this thing, in a high traffic, multi-node deployment, so we can at least have some confidence that it will actually work in production without causing more problems/security issues?

I believe the only way is to have QE test an early version of the image before merge using a similar arrangement that exposed the issue and regression test

@jcantrill
https://bugzilla.redhat.com/show_bug.cgi?id=1644008

In the non-ops kibana, they either get:
Courier Fetch: unhandled courier request error: [security_exception] no permissions for indices:data/read/mget
Or a gateway timeout with similar/same message as:

Problem solved? If not, I think I can offer some clues.
We also have the same problem.

I don't think reduce number of calls handling a request with apiserver can  solve this problem. I think the problem is how and when to sync openshift ACL to ES searchguard.
#173  this's my solution.

@jcantrill
https://bugzilla.redhat.com/show_bug.cgi?id=1644008

In the non-ops kibana, they either get:
Courier Fetch: unhandled courier request error: [security_exception] no permissions for indices:data/read/mget
Or a gateway timeout with similar/same message as:

The permissions issue may simply be a matter of expanding the set given to non ops users.

I don't think reduce number of calls handling a request with apiserver can solve this problem. I think the problem is how and when to sync openshift ACL to ES searchguard.

This change does not really do much to reduce apiserver calls but uses mgets, search, and bulk inserts to reduce the number of calls to and from ES;  this is where we experienced and noted issues.  For instance, the users who exposed this problem each had access to 300+ projects and we would make probably that plus another 20 calls to set up a single user.  I hope you might imagine the problems this would cause when more then one user tries to access Kibana from an already loaded ES instance.

#173 this's my solution.

I'm not sure what part of #173 you are suggesting here or where the change is.  Is it to sync the ACLs after we formulate the context? Is it to put in a bogus password?

@jcantrill
I had test this PR on my test environment.
Version
OpenShift Master:v3.9.0+ba7faec-1
Kubernetes Master:v1.9.1+a0ce1bc657
OpenShift Web Console:v3.9.0+b600d46-dirty

Images base on  openshift/origin-logging-elasticsearch5:v3.11.0

There is nothing wrong with this PR
I had also review this PR. But I have some questions:
If we cached the user's project,Why we need sync ACL to searchguard  on every es query.I think it's because our process needs to do that.
1.  load ALL ACL from searchguard.
2.  load one user's ALC from cached or openshift.
3.  update one user's ACL on memory
4.  delete ALL expire ACL on memory.
5.  write the ACL from memory to searchguard.

After this, searchguard  will read the ACL from ES to perform permission validation.
All processes will be executed on one ES.
Imagine a concurrent scenario:
User XX accesses on ES node X.
User YY accesses on ES node Y.

The request of user XX completed steps 1-5, and then the request of user YY completed steps 1-5. The operation of user YY may replace the operation of user XX. Then user XX will report an error when it checks permissions.
I think ACL synchronization on a single ES master node is a better choice.

If we cached the user's project,Why we need sync ACL to searchguard on every es query.I think it's because our process needs to do that.

This PR introduces caching which is only loads on cache miss and causes a sync.  The cache will expire after a given time so it will not sync on every ES query for a given user.  We expire the cache because a user's project list can change.

1.  load ALL ACL from searchguard.
2.  load one user's ALC from cached or openshift.
3.  update one user's ACL on memory
4.  delete ALL expire ACL on memory.
5.  write the ACL from memory to searchguard.

This is basically the workflow with subtle differences.  The ACL's are only loaded if we determine it is necessary to update them for a given user.

After this, searchguard will read the ACL from ES to perform permission validation.

Searchguard only loads the ACLs from ES when we execute a 'ConfigUpdateRequest' which is when we determine it is necessary to write permissions for a given user.

All processes will be executed on one ES.
Imagine a concurrent scenario:
User XX accesses on ES node X.
User YY accesses on ES node Y.

The request of user XX completed steps 1-5, and then the request of user YY completed steps 1-5. The operation of user YY may replace the operation of user XX. Then user XX will report an error when it checks permissions.

I recognize their is a potential race condition here but the permissions are reloaded and merged anytime we may need to potentially re-write.  There is logic in place to address updates that relies on document version though to be fair, there does need to be multi-node, multi-user testing.  I can not recall if the version is only relevant when doing an 'update' or if it is also significant with a 'replace'.  Assuming that works correctly then I expect updates from multiple nodes would be no different then the current implementation.  The difference in this PR is the number of 'write' calls and the expiration logic.

I think ACL synchronization on a single ES master node is a better choice.

I agree but we have no way of enforcing a single node performing the synchronization unless we had some kind of clustered cache  of user context's. We are not interested in adding that complicated dependency as ES is already a clustered technology.

[merge]


_nodesFound sometimes returns a coroutine, which set_digest tries to use as a list

I've been hunting the cause of this error:
    self.log.info("setting '%s' on %s" % (dkey.hex(), list(map(str, nodes))))
E   TypeError: 'coroutine' object is not iterable

I think I've found it, but what I'm looking at doesn't make much sense.
set_digest calls await spider.find(), calling the result nodes.
This usually works just fine, because nodes ends up being a list, which is used to emit a log on the following line:
self.log.info("setting '%s' on %s" % (dkey.hex(), list(map(str, nodes))))
However, there is at least one execution path where nodes is a coroutine instead of a list.
set_digest calls NodeSpiderCrawl.find, which calls SpiderCrawl._find, which calls NodeSpiderCrawl._nodesFound.  You can see from the conclusion of this method that, if we haven't contacted all of self.nearest, then we return the find() method (a coroutine) instead of the list:
https://github.com/bmuller/kademlia/blob/master/kademlia/crawling.py#L142
bootstrap seems to handle this scenario, but set_digest does not.
Am I doing something wrong?

Hey @jMyles - I think this was fixed in #34 for the python3.5 branch.  It wasn't backported to the Python 2 master branch - mostly cause I think that'll just be deprecated here shortly.

Ahh, @bmuller indeed you are correct.
We're still left hoping for maintenance of the twisted branch, as we have decided to use twisted in the codebase in question.
Thanks as always!  Hope you are well.

K - I'll try to keep that in mind for future bug fixes.


Barometer error in METAR decoding

On the dashboard page, the current weather forecast for the airport is displayed with a decoding of the metar and therefore its barometer. If we are in America or at least with a metar in InHg and not in hPa. The barometer is displayed in InHg in the Hpa box and therefore in the InHg box it is the conversion of the latter.
It should therefore display the barometer in InHg and its conversion to hPa

For example at PHNL (Honolulu)

Current code always shows the metar reported pressure on the left, then converts it on the right ... Even if you set it to show inHg with $metar['barometer']['inHg'] , it puts the metar recorded value there. As a simple workaround, I removed the unit names from the widget and displaying raw values without units.
Also while checking the metar decoding functions found a little error at App/Support/Metar.php line 175
SKC means Sky Clear (or Clear Skies) but it is translated as "no significant changes expected" (which is NOSIG)
While checking the pressure problem this little text change would be nice to fix.

While working on the TAF update I think I may have found the cause of this problem;
If the airport reports the pressure as hPa (Q1028 for exp) then the display and conversion to inHg is correct. But if the airport reports the pressue as inHg (A3036 for exp) then the conversion is wrong.
My assumption here, that the decoder is always identifying the reported pressure as hPa and building its calculations on that, this also causes the wrongly displayed labels. Decoder always assigns the reported value to hPa.
If needed I can share my solution for the display part, right now I am checking the icao code in the blade (as a workaround) and if the airport resides in a country where pressures are reported as inHg I am using the correct unit type + not showing the wrongly converted value.
As far as I know, there are only 3 countries in the world using inHg as their reported pressure for aviation, these are Canada - Japan and United States. So workaround was easy to manage.


BUG: Light Angles point in the wrong direction

For some reason this module breaks the default light sources angles. When a Light Source is set to something other than 360 degrees, it will angle itself as if its default state were 90 degrees to the left (down being the default 0 degree position in Foundry).

Thanks for pointing this out!


ci(dependabot): ignore husky updates

Pull Request Test Coverage Report for Build 571674905

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 81.648%

Totals

Change from base Build 560565087:
0.0%

Covered Lines:
158

Relevant Lines:
200

💛  - Coveralls

Pull Request Test Coverage Report for Build 571674905

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 81.648%

Totals

Change from base Build 560565087:
0.0%

Covered Lines:
158

Relevant Lines:
200

💛  - Coveralls


[Bug]: Full page screenshot is not working properly on long page

Bug description
I try to screenshot this site: https://www.nasnet.co.jp/service/security/vulnerability-check.html
But, the image was missing some part in the bottom.
Below is my code
let browser = await puppeteer.launch({
    args: [
        '--disable-gpu',
        '--disable-dev-shm-usage',
        '--disable-setuid-sandbox',
        '--no-first-run',
        '--no-sandbox',
        '--no-zygote',
        '--single-process',
    ],
    timeout: 300000,
    defaultViewport: {
        width: viewportWidth,
        height: viewportHeight
    }
});
let page = await browser.newPage();

await page.goto(url, {
    timeout: 0
});

const bodyHandle = await page.$('body');
const { height } = await bodyHandle.boundingBox();

const scrollHeight = await page.evaluate(() => document.body.scrollHeight);

let siteHeight = (height > scrollHeight) ? height : scrollHeight;

// Scroll one viewport at a time, pausing to let content load
let viewportIncr = 0;

while (viewportIncr + viewportHeight <= siteHeight) {
    await page.evaluate(_viewportHeight => {
        window.scrollBy(0, _viewportHeight);
    }, viewportHeight);
    await wait(500);
    viewportIncr = viewportIncr + viewportHeight;
}

// Scroll back to top
await page.evaluate(_ => {
    window.scrollTo(0, 0);
});

// Wait for a specific period before capture
await new Promise((resolve, reject) => {
    setTimeout(resolve, (parseInt(waitTime) * 1000));
});

await page.screenshot({
    path: `./${fileName}`,
    fullPage: true
});

await page.close();
await browser.close();

Expected Result:

Actual Result:

Could I know the alternative way to screenshot full page of that site?
Thank you.
Puppeteer version
13.0.1
Node.js version
14.17.3
npm version
6.14.13
What operating system are you seeing the problem on?
macOS
Relevant log output
No response

I'm willing to bet this is environment dependent, rather than Puppeteer itself. Or maybe it's a problem with that particular website? I'll test this on my Mac to see if I can replicate it.
@Rana-xD
Are you using Docker or a Lambda function in the cloud? Is your Mac cloud based? Intel or M1? MacOS version?


Mdc

Description

Motivation & Context

Type of changes

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

Checklist

[ ] I have read the contributing guidelines
[ ] My code follows the code style of the project (using npm run lint)
[ ] My change introduces changes to the documentation
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] All new and existing tests passed

Live previews

https://deploy-preview-{your_pr_number}--twbs-bootstrap.netlify.app/

Related issues

Thanks for opening a PR @romankupchak93
Haven't checked the content of the PR but first things first.
As mentioned in our Contributing Guidelines:

Do not edit bootstrap.css or bootstrap.js, and do not commit any dist files (dist/ or js/dist). Those files are automatically generated by our build tools. You should edit the source files in /bootstrap/scss/ and/or /bootstrap/js/src/ instead.

Please update your PR.
Please also use the PR description with a detailed explanation of your changes.


panel attachment mime-type error: TypeError

can't use a string pattern on a bytes-like object
Title changed from TEST to . Null title on attachment upload.
above 2 problems solved

I'm running Django 1.8.5  with Python 3 and ran into this problem on every attempt to attach a second file to a ticket (interestingly, the first attachment always works). I applied Pawel's commit to a branch off the 0.1.17 tag and it fixed the problem.

Nice catch - and it seems this is not covered by our tests. I will add this to the Testing project.

Upon a little research, it seems that In fact this ecode was introduced as a "fix" a while ago.
See https://github.com/django-helpdesk/django-helpdesk/issues/162
Simply removing it will not solve this issue. I strongly suggest we add a test that covers attachments, also with non-ascii filenames, then propose a solution that passes these tests.

Closing this PR since, effectively, its contents were merged through #463 and #464.


MODS

Hello, I'm relatively new to Linux, is there any guide for installing mods on the server?

Even when trying to install through Steam, it says this.

Here is a documentation that worked for me:
https://www.gameserverkings.com/knowledge-base/space-engineers/space-engineers-mod/
You need to edit the server configuration file and add the mod ids there.
I ran into an error/ bug downloading the mods, and had to do this fix:
https://steamcommunity.com/sharedfiles/filedetails/?id=2835041807

I ran into an error/ bug downloading the mods, and had to do this fix:
https://steamcommunity.com/sharedfiles/filedetails/?id=2835041807

Can share your commands? I'm hitting the (likely) same issue downloading mods- download finished. Result: k_EResultFail , I've got the following examples of vstdlib_s
find ~ | grep -i vstdlib_s
./space-engineers-dedicated-docker-linux/appdata/space-engineers/bins/SpaceEngineersDedicated/vstdlib_s.dll
./space-engineers-dedicated-docker-linux/appdata/space-engineers/bins/SpaceEngineersDedicated/vstdlib_s64.dll
./space-engineers-dedicated-docker-linux/appdata/space-engineers/bins/SpaceEngineersDedicated/DedicatedServer64/vstdlib_s.dll
./space-engineers-dedicated-docker-linux/appdata/space-engineers/bins/SpaceEngineersDedicated/DedicatedServer64/vstdlib_s64.dll

but when I try copying from SpaceEngineersDedicated into SpaceEngineersDedicated64, wine segfaults, which leads me to believe something is missing or I'm doing this wrong..

The .dll files should be from your steam client installation. And so you need to import them from wherever you have steam installed on you gaming computer (where the space engineers game is installed).
Space engineers game should be installed at (i'm doing this from memory so the path might be incorrect): "C:...\Steam\steamapps\common\Space Engineers"
And in the "C:...\Steam" folder you have .dll files that you need to copy over to your server.
They should be copied to the:
"./space-engineers-dedicated-docker-linux/appdata/space-engineers/bins/SpaceEngineersDedicated/DedicatedServer64/"
folder
Let me know if i'm unclear in my explanation.

The .dll files should be from your steam client installation. And so you need to import them from wherever you have steam installed on you gaming computer (where the space engineers game is installed).
Space engineers game should be installed at (i'm doing this from memory so the path might be incorrect): "C:...\Steam\steamapps\common\Space Engineers"
And in the "C:...\Steam" folder you have .dll files that you need to copy over to your server.
They should be copied to the: "./space-engineers-dedicated-docker-linux/appdata/space-engineers/bins/SpaceEngineersDedicated/DedicatedServer64/" folder
Let me know if i'm unclear in my explanation.
The information is correct, but there is a glitch in the server. It does not save the world after restart.

Ось документація, яка спрацювала для мене:
https://www.gameserverkings.com/knowledge-base/space-engineers/space-engineers-mod/
Вам потрібно відредагувати файл конфігурації сервера та додати туди ідентифікатори модів.
Я зіткнувся з помилкою/помилкою під час завантаження модів, і мені довелося виправити це:
https://steamcommunity.com/sharedfiles/filedetails/?id=2835041807

Unfortunately, this makes the server too unstable.

The .dll files should be from your steam client installation. And so you need to import them from wherever you have steam installed on you gaming computer (where the space engineers game is installed).
Space engineers game should be installed at (i'm doing this from memory so the path might be incorrect): "C:...\Steam\steamapps\common\Space Engineers"
And in the "C:...\Steam" folder you have .dll files that you need to copy over to your server.
They should be copied to the: "./space-engineers-dedicated-docker-linux/appdata/space-engineers/bins/SpaceEngineersDedicated/DedicatedServer64/" folder
Let me know if i'm unclear in my explanation.

What threw me off is I use Linux + Proton for the Steam client, I don't have have something to provide those dlls. I took them from the other directory provided with the container(SpaceEngineersDedicated/). It causes wine to crash a LOT when starting, but it eventually will randomly start and download the mods and the world loads as expected. Once it's up, it seems stable and otherwise OK. I have a backup of the original dll files to restore the original files when I need more predictable startups.

The .dll files should be from your steam client installation. And so you need to import them from wherever you have steam installed on you gaming computer (where the space engineers game is installed).
Space engineers game should be installed at (i'm doing this from memory so the path might be incorrect): "C:...\Steam\steamapps\common\Space Engineers"
And in the "C:...\Steam" folder you have .dll files that you need to copy over to your server.
They should be copied to the: "./space-engineers-dedicated-docker-linux/appdata/space-engineers/bins/SpaceEngineersDedicated/DedicatedServer64/" folder
Let me know if i'm unclear in my explanation.

What threw me off is I use Linux + Proton for the Steam client, I don't have have something to provide those dlls. I took them from the other directory provided with the container(SpaceEngineersDedicated/). It causes wine to crash a LOT when starting, but it eventually will randomly start and download the mods and the world loads as expected. Once it's up, it seems stable and otherwise OK. I have a backup of the original dll files to restore the original files when I need more predictable startups.

Unfortunately, my experience has shown that the server is unstable, it may not find an IP, and after finding it after a while, it may simply crash as if nothing had happened.

Yes, I have experienced no IP as well, although judging from another issue in this repo, it seems to be a problem with space engineers itself and not this patch.
I found that stopping the server and waiting a minute or so before restarting it usually helps.
But yes, it's not ideal.

I pushed a commit to the v2 branch to fix the mod download issue, please test and close if the issue is resolved


Application doesn't seem to send position data on OS X over TCP

This looks good!
Is there a way to check whether object position is published over TCP on a Mac? I tried Apple's Network Utitlity on IP <IP_ADDRESS> and ran a portscan but no activity is showing up on the port selected by find-object.
Background: I am trying to find objects with a webcam and pass the coordinates to a server running on the same Apple computer (probably a node.js server or Apache/PHP). I haven't configured the server yet but I read that your application publishes recognized objects over TCP. Before I configure the server I want to make sure that you application actually publishes over TCP.

Hi,
As shown under the Statistics panel, the Output detection port is 57396 in your case. You may want to limit the IP search scan around 57396. Here on my computer:

For convenience, you can fix the output port using the General/port setting (0 means any port). You can refer to how the detection message is sent over TCP or the TCP client example to know how to read it.
cheers,
Mathieu

This works, thanks! I wasn't aware that defining a port range will increase the scan speed.
I set up a node server and receive a buffer object like so:
<Buffer 00 64 00 00 00 01 00 00 00 02 00 00 00 e0 00 00 00 fe bf c7 58 56 8b 7f 7f 5e bf d9 e1 e3 e1 b5 88 6a bf 59 b0 b5 6d 9d fa e5 3f 60 78 83 61 97 fa 13 ... >

How is this encoded? The character encodings available to me are

'ascii' - for 7-bit ASCII data only. This encoding method is very fast and will strip the high bit if set.
'utf8' - Multibyte encoded Unicode characters. Many web pages and other document formats use UTF-8.
'utf16le' - 2 or 4 bytes, little-endian encoded Unicode characters. Surrogate pairs (U+10000 to U+10FFFF) are supported.
'ucs2' - Alias of 'utf16le'.
'base64' - Base64 string encoding.
'binary' - A way of encoding the buffer into a one-byte (latin-1) encoded string. The string 'latin-1' is not supported. Instead, pass 'binary' to use 'latin-1' encoding.
'hex' - Encode each byte as two hexadecimal characters.

I've tried them all but none returns a string as in your example:

[ObjectId1, objectWidth, objectHeight, h11, h12, h13, h21, h22, h23, h31, h32, h33, ObjectId2...]

To know how the message is serialized, see DetectionInfo class under operator<<. Refer also to Qt datastream format page to know how each Qt object is serialized. Example with the data you've shown:
00 64 					[uint16: Message size in bytes]
00 00 00 01 			[uint32: Number of detected objects]

<DetectionInfo serialization>
First object detected:
00 00 00 02 			[int32: Object's ID detected]

QSize (Object size):
00 00 00 e0 			[int32: Width in pixels]
00 00 00 fe   	 		[int32: Height in pixels]

QTransform (Homography transform):
bf c7 58 56 8b 7f 7f 5e	[float64: H11: -0.18238336383273696]
bf d9 e1 e3 e1 b5 88 6a	[float64: H12: -0.40441224138169807]
bf 59 b0 b5 6d 9d fa e5 [float64: H13: -0.001568009544342602]
3f 60 78 83 61 97 fa 13 [float64: H21: 0.0020105901755862548]
- 8 bytes -				[float64: H22]
- 8 bytes -				[float64: H23]
- 8 bytes -				[float64: H31]
- 8 bytes -				[float64: H32]
- 8 bytes -				[float64: H33]

QString (File name):
- 4 bytes -				[uint32: string length, 0xFFFFFFFF if null]
- X bytes -				[string data in UTF-16 format]

- 4 bytes - 			[int32: inliers count]
- 4 bytes - 			[int32: outliers count]

Second object detected:
(same as above...)

[...]

There was an error in the documentation, the file name and the inliers/outliers counts were not shown. This is fixed now.
cheers,
Mathieu

Thank you!
I may be slowly getting there.
I managed to translate the string to decimal values and it all makes sense until the ens where the file name should be. I only get zeros.
I am also wondering what the filename refers to: The filename of the saved object, i.e. the .png file?
0,
100,
0,
0,
0,
1,
0,
0,
0,
3,
0,
0,
0,
245,
0,
0,
0,
251,
63,
234,
179,
138,
22,
63,
96,
217,
191,
133,
45,
196,
202,
141,
222,
191,
190,
190,
200,
87,
95,
168,
150,
130,
63,
197,
233,
105,
197,
106,
122,
99,
63,
237,
254,
126,
28,
114,
22,
207,
63,
58,
138,
230,
8,
19,
134,
70,
64,
115,
184,
229,
216,
98,
121,
120,
64,
97,
237,
102,
234,
222,
190,
186,
63,
240,
0,
0,
0,
0,
0,
0, --- from this line on it should be the file name
0,
0,
0,
0,
0,
0,
0,
10,
0,
0,
0,
60

Hi,
If the object was added from a file, the file path will be added here. In the case where the object is added by area selection in the scene, the file path would be null, so length of 0.
0, --- from this line on it should be the file name

0,
0,
0,
0,
  \----> HEX(00 00 00 00) to 32bits Integer = 0: string size is 0 (no file path)

0,
0,
0,
10,
  \----> HEX(00 00 00 0A) to  32bits Integer = 10: 10 inliers

0,
0,
0,
60
  \----> HEX(00 00 00 3C) to  32bits Integer(60): 60 outliers

cheers,
Mathieu

Makes sense! When trying it out I realized the application didn't recognize objects when the object is loaded from a file. Since this is a different topic, I opened another issue: #13. I am closing this for now.


Remove Unused Error Types

Can I remove these types? So, I don't need to handle the no-std for them.
I didn't find any usage of them under the current code.
https://github.com/rust-ethereum/ethabi/blob/09da0834d95f8b43377ca22d7b1c97a2401f4b0c/ethabi/src/errors.rs#L31-L45

If they really aren't used then I'd say go ahead but with these #[from] s it could be the case that they are only used implicitly when applying ? to a function that returns the inner error.

If they really aren't used then I'd say go ahead but with these #[from] s it could be the case that they are only used implicitly when applying ? to a function that returns the inner error.

Yes, I have just found that.


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20220425154518725 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20220425154518725 to main with localized lcls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.002%) to 42.23%

Files with Coverage Reduction
New Missed Lines
%

extensions/machine-learning/src/common/processService.ts
2
81.48%

Totals

Change from base Build<PHONE_NUMBER>:
0.002%

Covered Lines:
27785

Relevant Lines:
61559

💛  - Coveralls


Bump csi driver version

@aramase I've disabled both providers in values.yaml as I think this should be explicitly defined by the operator as oppose to silently defaults to something. WDYT?

@ritazh agreed!


Secret-requiring tests ignored for 3rd party contributors

Is there an existing issue for this?

[X] I have searched the existing issues

Problem Statement
Currently, the Enterprise tests are included in the tests-and-coverage job, which runs all tests. Non-Kong org members (e.g. Dependabot) cannot successfully complete these tests because they do not have access to secrets. There is no solution to this barring some Enterprise test option that does not require a license secret.
Proposed Solution
Separate Enterprise tests into their own, non-mandatory job. We will ignore results of this job for external PRs. If the PR is relevant to Enterprise, we will need to duplicate it under one of our accounts to run Enterprise CI.
Additional information
No response
Acceptance Criteria

[ ] if an external user opens a PR, we can see success on tests that do not use Enterprise license secrets.
[ ] failure of Enterprise tests does not block auto-merge.

Closed as "won't fix" because of low 3rd party PR volume today.
A fix would be porting https://github.com/Kong/kubernetes-ingress-controller/pull/2273 from KIC to this repo.


[NF-6869] Publicly document existing Export API calls on documentation website and deprecate PDF

Here we're converting the export API documentation from a PDF to our documentation website so we're adding some json-schema files and using them to generate html pages.

Is this published somewhere for QA?  I'd like to take a look.

Yes this is published on the QA site, you can also check the WA PR associated.

Did we remove the PDF download button on the root page?

@benjaminoakes your comments are addressed.


snippet completions

https://github.com/KittyCAD/modeling-app/assets/1445228/7fe512e3-c119-431a-bd76-3b58504b9ed4

breaking this into parts


Add Brazilian Portuguese Translation

Please, add brazilian portuguese translation, it is very important for us brazilians to have its component in our language! Only 5% of Brazilians know English and only 3% are fluent.

Thanks!


Fiber finalizers and transition events

I've been noticing a few cases where fiber finalizers would be really helpful. (#326, #294)
I propose a method on the Fiber class to add finalizers to a fiber which will run immediately before it completes, successfully or otherwise. This would allow a safe try/finally, by running a finalizer to clean up resources like file handles before unwinding the stack.
I also propose a static method to watch for fiber transition events and run a supplied block before it occurs, which receives a reference to the fiber that is to be transitioned to. This would allow for automatically applying finalizers to newly entered fibers which could be used to drain the scheduler at the completion time of any fiber.

I think we would want to drain only at the point that we complete the last fiber. By "last", I mean a fiber that doesn't have any other fiber to return to. We don't want to bounce to the scheduler during arbitrary fiber transitions. Fibers are not only for IO, and it would be a real problem if the user can't predict which fiber calls will interleave IO and which won't.

I propose a method on the Fiber class to add finalizers to a fiber which will run immediately before it completes, successfully or otherwise.

.try(_) effectively is that, but I think you have something else in mind. Can you show me some examples of how you'd use it?

I also propose a static method to watch for fiber transition events and run a supplied block before it occurs, which receives a reference to the fiber that is to be transitioned to.

I could be wrong, but I don't think we need this. (And, if possible, I'd like to avoid adding it, to keep Fiber as minimal as possible.) I believe this is something only the CLI's scheduler needs and since it controls its own fiber transitions anyway, it could probably put this logic in there.


hacktoberfest -added quicksort in cpp and python and updated readme.md

Thanks ! :)

ur welcome @saru95

this pr for issue #1


how to do an incremental build

I am new to ES6 modules - the build for this project takes awhile, I am used to reloading the web app after making changes to client code :)
is there an easy way to do an incremental build with WebPack for this project? Please let me know! thanks for this project!

perhaps using
$ npm run dev
instead of
$ npm run build
is good enough? probably :)

Hi @ORESoftware — yes, npm run dev (or npm start) will build incrementally 👍

thanks! makes sense, and HMR is in place.
one issue I am having is that login is not working,
if I click Google/Github/Twitter, I do not get directed to an OAuth page, never am logged in, and also, I never see any todo page!
I want to make some todos! I am not sure how to debug this problem. Do you have any ideas?

my guess is my auth on my firebase account is not setup correctly

yep, here is why
https://www.dropbox.com/s/zppbao47ddgoo40/Screenshot 2016-09-14 19.14.58.png?dl=0
thanks anyway, you can close!


XDAI & MATIC network support in android wallet by default

Is your feature request related to a problem? Please describe.
many evm compatible networks are supported like POA or TOMOCHAIN, which few use.
the rather popular XDAI and MATIC networks are not on the list when importing a private key :(
Describe the solution you'd like
bring XDAI and MATIC networks in the list at key import
Describe alternatives you've considered
i have to use another wallet for these networks, but i love trustwallet

Can you be more specific?
Do you mean implementing XDAI and MATIC blockchain support in wallet core?
Or just the possibility for address derivation?
Support for these blockchains is not planned currently.


Fixed issue where back side of card was not rendering correctly

Notes
This has consistently happened to me when the card flips to the back side, it seems to work but then the backside suddenly shows the reversed front side. It appears adding a z-index to the jp-card-front class this issue no longer happens.
Screenshots
Without z-index

With z-index

Thanks @jspangler, Iv'e added the fix in version 1.2.5


Updated Cell Inwards Writing

Updated Cell's writeInwards to let you overwrite a large range with a small pattern (example shown below)

Based on the existing code, it seems like the feature of only being able to write to one codon was intentional, so it probably won't merge. I'll certainly be using this, however.

@ben9583  Yeah I thought so too. However i felt it would make it more like how an actual virus would work, as it's not really supposed to instantly kill the cell after creating a few versions of itself but force the cell to make many copies of itself until it dies naturally. (Although that's not to say you can't have a virus that lets the cell live by not interfering with it too much, it's just less efficient that way)

Yea I think it would definitely make a lot more possible, like what if you could make a virus that makes the cell more efficient? Maybe this feature could be seen as compensation for the fact the simulation is an oversimplification to begin with, given the fact there are only just a few lines of code per cell.

I think this would definately be a neat addition and allow for more possibilities. And I think more possibilites are a plus.


Provide more useful help information for ctr

ctr containers/checkpoints contains lots of important subcommands,
but now help command can't show subcommands. Adding subcommands to
help information will avoid user from digging into the code for
getting necessary command list.
Signed-off-by: Zhang Wei<EMAIL_ADDRESS>

After this, it will look like:
$ sudo ./bin/ctr help containers
NAME:
   ctr containers - interact with running containers

USAGE:
   ctr containers COMMAND [arguments...]

DESCRIPTION:

    COMMAND:
    exec      exec another process in an existing container
    kill      send a signal to a container or its processes
    list      list all running containers
    pause     pause a container
    resume    resume a paused container
    start     start a container
    stats     get stats for running container
    watch     print container events
    update    update a containers resources

$ sudo ./bin/ctr containers start --help
NAME:
   ctr containers start - start a container

USAGE:
   ctr containers start [command options] ID BundlePath

OPTIONS:
   --checkpoint, -c 				checkpoint to start the container from
   --attach, -a					connect to the stdio of the container
   --label, -l [--label option --label option]	set labels for the container
   --no-pivot					do not use pivot root

LGTM, thanks!

LGTM


Publish segment replication experimental feature documentation

Signed-off-by: ariamarble<EMAIL_ADDRESS>Description
Adds segment replication experimental feature documentation
Issues Resolved
#989
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Final tech review and editorial review is wrapping up

tech review completed

@natebower got feedback on this, working on that now, thanks.


removeAttribute of null error in line 1000 - html2canvas.js

For some unknown reason, this line:
document.querySelector(selector).removeAttribute(attributeName);
returns an error since querySelector(selector) is null. Please fix this one.

I get that error if I do 2 snapshots at the same time, is that your case also?

@niklasvh was this issue resolved? I am still getting the error.

@briankoech Are you using 1.0.0? If so, please share an example on jsfiddle where you are experiencing the issue and I'll take a look


Loophole when expired tokens

Theres a loophole making infinite request in the front page when both JWT token are expired ( exemple when restarting the dockers)

Fixed using a function inside itself


Bug in mvc-datalist.js

Looks like a typo where the word "this" got mixed with "autocomplete".  I'd do a PR for the fix, but I can't right now.  If you aren't able to get to it in the next few days I might help out.

https://github.com/NonFactors/MVC5.Datalist/blob/a2eee43b3da30e459528edc21fd786aca52a4e71/src/Datalist/Scripts/MvcDatalist/mvc-datalist.js#L493

Wow... and it's so old, it's ok I will fix it.

Awesome!  Thanks!


Validation of newly generated BOM files fails

Context
Windows 10
Cyclone versions:
NPM Version<EMAIL_ADDRESS>of CycloneDX for NPM
.NET Version: 2.7.0 of CycloneDX for .NET
IDEs
VS 2022
VS Code
npm version 9.2.0
node version 18.12.1
Actions

Generating NPM and .NET BOMs from the latest boilerplate project on https://aspnetboilerplate.com as is - unpack, restore packages and run the BOM generation as described below

// for the NPM BOM
cyclonedx-npm --output-format "JSON" --output-file "bom.json"

// for the .NET BOM
dotnet-CycloneDX .\FMS.sln -o ./
dotnet-CycloneDX .\FMS.sln -o ./ -j

The generation is ok.

Validation
To validate the generated BOMs I am using the hosted version : https://cyclonedx.github.io/cyclonedx-web-tool

The validation tools returns errors on both BOMs
Results
From both validations I get alert : The file is not a valid v1.4 BOM.
From the NPM BOM validation I get :
'<' is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0.
From the .NET BOMs in JSON validation I get:
"Validation failed: #/properties/components/items"
From the .NET BOMs in XML validation I get:
Validation failed at line number 373 and position 28: The 'http://cyclonedx.org/schema/bom/1.4:id' element is invalid - The value 'NOASSERTION' is invalid according to its datatype 'http://cyclonedx.org/schema/spdx:licenseId' - The Enumeration constraint failed.
The resulting BOMs are attached.
BOMs.zip

Can you attach the XML BOMs as well. The ZIP only has the JSON one.

Hi,
Here it there are.
.net.bom.json.zip
.net.bom.xml.zip
npm.bom.json.zip


Form wizard nav tabs

Recently, as part of a job at my university, I implemented a custom template tag for form wizards that generates nav tabs for each step in the wizard.
This is what my example application looks like:

Since those nav tabs require Bootstrap, I thought it might be a good fit for django-bootstrap3 and would like to know your opinion on this. Currently, my code is a standalone Django app, but I'd be happy to create a fork and submit a pull request.
Please let me know what you think.

I'm sorry this was never paid proper attention to. Your idea and execution look just fine.


Getting message to a module?

I have this simple piece of code:
`async def snapmain():
module_client = IoTHubModuleClient.create_from_edge_environment()
# connect the client.
await module_client.connect()

# define behavior for receiving an input message on input1
async def input1_listener(module_client):
    while True:
        input_message = await module_client.receive_message_on_input("input7")  # blocking call
        print("the data in the message received on input1 was ")
        print(input_message.data)
        print("custom properties are")
        print(input_message.custom_properties)

# Schedule tasks for Method Listener
listeners = asyncio.gather(
    input1_listener(module_client)
)`

Started with:
 loop = asyncio.get_event_loop()
        loop.create_task(snapmain())
        loop.run_forever()

But i cannot get a message through to the modules input7, is there some routing I need, or other things specifically to enable this to work?

Hi @njbuch , you do need routing to make this work.  If this information doesn't help you, can you tell us how you are sending the message and also provide a copy of your routing rules.
(note: these are all IoT Edge routing rules and not IoT Hub routing rules.)
As an example, if you wanted to have a module called firstMod send a message to the output named toNextMod and route it to the module named nextMod on the input named input7, you would add something that looks like like myTestRoute below into your IoT Edge deployment manifest.
{
  "routes": {
    "myTestRoute": "FROM /messages/modules/firstMod/outputs/toNextMod INTO BrokeredEndpoint(\"/modules/nextMod/inputs/input7\")"
  }
}

If routes and deployment manifests are new to you, you can learn about them here: https://docs.microsoft.com/en-us/azure/iot-edge/module-composition
If you want to experiment with routes without the worry of creating a new deployment manifest every time you change something, you can change routes in the Azure portal.  This is what I will typically do when experimenting.  (the overhead of composing a deployment manifest is something I save for the time when I have to put things into production and need a more script-based approach to deployment):
https://docs.microsoft.com/en-us/azure/iot-edge/how-to-deploy-modules-portal

@BertKleewein Thank you so much for good comments! Essentially I need to send a message from a web-app running somewhere else to this module. So its going through the IoTHub, and I want to receive in this piece of python code, not sure of I then need to route on the edge device from the edgeHub module to this module or what? Thanks again

Hi @njbuch , you do need routing to make this work. If this information doesn't help you, can you tell us how you are sending the message and also provide a copy of your routing rules.

I am simply sending them directly from Vscode for testing-purposes. "Send C2D message to device".

@njbuch - The IoTHub feature set lets you send a C2D message to a an IoTHub device.  It does not let you send a C2D message to an IoTHub (or IoTEdge) module.  The most direct route to get information from the cloud to an IoTEdge module is to use a direct method or a module twin desired property.

@BertKleewein - Thanks for clarifying this, but I dont understand why there is no replacement for that design-decision in the world of IotEdge technologies. Software components should be well structured and needs to be able to live on the device, independently of the other modules and what else might be running the device. In the device-model the module needs to have device specific configuration which is making the configuration and setup very clumsy.

@BertKleewein, @njbuch, thank you for your contribution to our open-sourced project! Please help us improve by filling out this 2-minute customer satisfaction survey