Proposal: bosh update & bosh update-env

Currently when we run bosh deploy or bosh create-env the collection of flags + input file locations is not cached. This means that to upgrade we must recreate the exact same commands used to originally create the deployment/env.
Instead, I propose that we cache the flags + file locations that were used to most recently deploy/create-env; and we add bosh update and bosh update-env <name> commands. These are effectively wrappers around bosh deploy and bosh create-env, preceded by changing to the original working directory and reusing the same flags.

bosh upgrade and bosh upgrade-env are alternate name ideas - this would match the brew upgrade and apt-get upgrade commands

Similarly bosh delete-env could reuse all the original template locations without the operator having to reconstruct a valid bosh delete-env command.

I wholeheartedly support the idea of making environments a little more CRUD-like in the BOSH cli. But I have been wrestling with some of these same notions, with the hope of eventually integrating BBL-like functionality into the CLI itself. So I ask here the questions I have been unable to answer on my own:

Why does delete-env need anything more than a state file anyway?  It's quite frustrating to supply ops files and vars files which have no effect on the CPI calls which would be needed to tear down a bosh environment. I suggest that we should be able to omit as many needed args from delete-env as possible, independent of this suggestion.
Where would this be cached? In the state file? In ~/.bosh with the environment info? This is difficult for me, because I want bosh envs to be always in sync with this, but I also want the artifacts from bosh create-env to always be stored along with the commands that created them, so I'm split between those two options.
Is there any situation where the "cache" needs to be invalidated? What if I delete an ops file from bosh-deployment or, say, git pull deletes it, and then run bosh update.
If all the arguments are the same, why would I want to run it? I assume so that I can pass more args, but then we'll almost certainly hit the cache invalidation issue. e.g What if your ops files need to apply in a specific order to work? What if you want to remove an ops file? Or remove a variable that is now unused?
How could I see what the arguments I originally created with are? If, say, I wanted to make another director like the one I had, or see what is different about two directors?

im of a quite different opinion on this topic. proposed command would be quite mysterious since it's not clear what inputs are going into it: which ops files, which directory for bosh-deployment, how do i add a config, how do i remove, etc.
what i've been recommending to people is to simply save their create-env and delete-env invocations into a bash script that they can always reference. not too much indirection and always clear what cli is going to act on. then create per director directory so that it's easy to manage them.
from a sec perspective, i would hope that these commands dont cache my variety of credentials in unknown places.
i dont think we can farily compare this to brew since it doesnt need to manage multiple copies, configs, or creds.

what i've been recommending to people is to simply save their create-env and delete-env invocations into a bash script that they can always reference.

may be that's worth adding that to a guide

what i've been recommending to people is to simply save their create-env and delete-env invocations into a bash script that they can always reference.

I agree with this approach and have seen it work well.
Of more importance to me personally is the issue raised by @evanfarrar :

Why does delete-env need anything more than a state file anyway? It's quite frustrating to supply ops files and vars files which have no effect on the CPI calls which would be needed to tear down a bosh environment. I suggest that we should be able to omit as many needed args from delete-env as possible, independent of this suggestion.

It's a major pain to keep the "delete-env" script up to date with the create script.  I would love to see this experience improve.

Why does delete-env need anything more than a state file anyway? It's
quite frustrating to supply ops files and vars files which have no effect
on the CPI calls which would be needed to tear down a bosh environment. I
suggest that we should be able to omit as many needed args from delete-env
as possible, independent of this suggestion.

we dont necessarily know how your ops files are modifying entirety of the
manifest. eg bosh-deployment has cpi specific ops files that add
appropriate cpi configuration.
one future possibility we ve entertained is to separate cpi config, cloud
config and manifest for create-env as well. in this case you would only
need cpi config and state file. there are pluses and minuses to this
approach as well.
On Tue, Oct 10, 2017 at 12:07 PM, Zac Bergquist<EMAIL_ADDRESS>wrote:

what i've been recommending to people is to simply save their create-env
and delete-env invocations into a bash script that they can always
reference.
I agree with this approach and have seen it work well.
Of more importance to me personally is the issue raised by @evanfarrar
https://github.com/evanfarrar :
Why does delete-env need anything more than a state file anyway? It's
quite frustrating to supply ops files and vars files which have no effect
on the CPI calls which would be needed to tear down a bosh environment. I
suggest that we should be able to omit as many needed args from delete-env
as possible, independent of this suggestion.
It's a major pain to keep the "delete-env" script up to date with the
create script. I would love to see this experience improve.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cloudfoundry/bosh-cli/issues/326#issuecomment-335575291,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AALV98yXX7bNva1GSf6OWpDTy8ice0iaks5sq8AWgaJpZM4PwANj
.

i would recommend for bbl to accept exact same arguments every time
regardless if it is running for the first or second time. i definitely had
problems with hidden state being not obvious when using bbl.

This is actually very similar to the direction BBL is currently headed:
the create-env call will be a script in your state directory.

for bbl to expose that feels somewhat leaky. why does user of bbl need to
see this. can they modify it, will it be overriden. etc. becomes quites
complex.
On Tue, Oct 10, 2017 at 12:27 PM, Evan Farrar<EMAIL_ADDRESS>wrote:

what i've been recommending to people is to simply save their create-env
and delete-env invocations into a bash script that they can always
reference.
This is actually very similar to the direction BBL is currently headed:
the create-env call will be a script in your state directory. That is the
easiest way we could find for users to inspect and modify the litany of
create-env arguments that we have determined need to be run for
bosh-deployment.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cloudfoundry/bosh-cli/issues/326#issuecomment-335581488,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AALV954Y0lIF2CnewCAc6Jvo984SMi60ks5sq8UcgaJpZM4PwANj
.

i would recommend for bbl to accept exact same arguments every time
regardless if it is running for the first or second time. i definitely had
problems with hidden state being not obvious when using bbl.

I agree hidden state is very troublesome, but if introspection of state can be made intuitive and discoverable then I believe we can make that state feel like it has object permanence: read the state, write the state, update the state, delete the state.
If bbl made you remember all of the particulars of every environment then BBL would be plagued exactly the problem raised in this issue.

for bbl to expose that feels somewhat leaky. why does user of bbl need to
see this. can they modify it, will it be overriden. etc. becomes quites
complex.

They can modify it. It will sometimes be overwritten. It is quite complex. But I'd rather the tool deal with complexity than hope that my brain can do it reliably every time. I'd rather users be mad at my tool sometimes than be mad at themselves all the time while using my tool. The former we can ask forgiveness for, the latter results in users quietly leaving your ecosystem out of embarrassment.

They can modify it. It will sometimes be overwritten. It is quite complex. But I'd rather the tool deal with complexity than hope that my brain can do it reliably every time.

that introduces multiple paths that user has to reason about (install vs update). they need figure out initial set of args, and then on subsequent installs they need to figure out something different. i think this goes against most of the tooling we typically use (bosh, concourse, terraform, cloudformation, etc.) which is surprising imho.


Template expansion may fail in argo 3.5.10 and 3.5.11

Pre-requisites

[X] I have double-checked my configuration
[X] I have tested with the :latest image tag (i.e. quay.io/argoproj/workflow-controller:latest) and can confirm the issue still exists on :latest. If not, I have explained why, in detail, in my description below.
[X] I have searched existing issues and could not find a match for this bug
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened? What did you expect to happen?
Template expansion may fail in argo 3.5.10 and 3.5.11．
It doesn't fail every time, but seems to occur when there is a certain amount of load.
Also, we manage multiple clusters, and even though they are the same version, there are some clusters where the problem occurs and some where it doesn't.
This problem does not exist in v3.4.6.
I discovered a problem when upgrading from 3.4.6 to 3.5.10, and tried 3.5.11, but the same error occurred.
Version(s)
v3.5.10,v3.5.11
Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: sample-
spec:
  entrypoint: entrypoint
  templates:
  - name: entrypoint
    steps:
    - - name: generate-param
        template: generate-param
    - - name: with-param
        template: with-param
        arguments:
          parameters:
          - name: item
            value: '{{item}}'
        withParam: '{{steps.generate-param.outputs.result}}'
  - name: generate-param
    container:
      image: busybox
      command: [echo, '["foo", "bar", "baz"]']
  - name: with-param
    inputs:
      parameters:
      - name: item
    container:
      image: busybox
      command: [echo, '{{inputs.parameters.item}}']

While this workflow works well in many cases, there are some cases where it can fail:
NAME           STATUS      AGE   DURATION   PRIORITY   MESSAGE
sample-twvvt   Failed      38s   20s        0          withParam value could not be parsed as a JSON list: {{steps.generate-param.outputs.result}}: invalid character '{' looking for beginning of object key string
sample-ft2vd   Failed      39s   10s        0          withParam value could not be parsed as a JSON list: {{steps.generate-param.outputs.result}}: invalid character '{' looking for beginning of object key string
sample-hsbz8   Failed      40s   10s        0          withParam value could not be parsed as a JSON list: {{steps.generate-param.outputs.result}}: invalid character '{' looking for beginning of object key string

Logs from the workflow controller
Nothing showed up in the controller log.

Logs from in your workflow's wait container
Since the template expansion failed, init containers are not starting either.

Can you ensure you've got pod RBAC correct: https://argo-workflows.readthedocs.io/en/release-3.5/workflow-rbac/
Can you provide logs from the wait container of the generate-param step?

Can you ensure you've got pod RBAC correct: https://argo-workflows.readthedocs.io/en/release-3.5/workflow-rbac/

This workflow always works with same manifests, but sometimes fails. I don't think rbac is important.

Can you provide logs from the wait container of the generate-param step?
This error only occurs in the production environment, and the argo-workflows in the production environment have already been rolled back.
We will continue to verify in the test environment whether it can be reproduced.

Are you running the 3.5.11 executor in your created pods?

Though I tried also 3.5.11. , I got the same error.

Seeing this on v3.5.12 as well.

We have the issue on v3.5.12, especially when the system is under heavy load.

Can you provide logs from the wait container of the generate-param step?

These are the logs when it fails:
time="2024-11-07T17:33:11.128Z" level=info msg="Starting Workflow Executor" version=v3.5.12
time="2024-11-07T17:33:11.132Z" level=info msg="Using executor retry strategy" Duration=1s Factor=1.6 Jitter=0.5 Steps=5
time="2024-11-07T17:33:11.132Z" level=info msg="Executor initialized" deadline="2024-11-10 17:33:05 +0000 UTC" includeScriptOutput=false namespace=sonar-workflows podName=sonar-wow-v2-clgcv-read-group-561843697 templateName=read-group version="&Version{Version:v3.5.12,BuildDate:2024-10-30T10:56:15Z,GitCommit:8fe8de2e16ec39a5477df17586a3d212ec63a4bd,GitTag:v3.5.12,GitTreeState:clean,GoVersion:go1.21.13,Compiler:gc,Platform:linux/amd64,}"
time="2024-11-07T17:33:11.196Z" level=info msg="Starting deadline monitor"
time="2024-11-07T17:33:17.211Z" level=info msg="Main container completed" error="<nil>"
time="2024-11-07T17:33:17.211Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2024-11-07T17:33:17.211Z" level=info msg="Saving output parameters"
time="2024-11-07T17:33:17.211Z" level=info msg="Saving path output parameter: groups"
time="2024-11-07T17:33:17.211Z" level=info msg="Copying /mnt/vol/groups.json from volume mount"
time="2024-11-07T17:33:17.223Z" level=info msg="Successfully saved output parameter: groups"
time="2024-11-07T17:33:17.223Z" level=info msg="No output artifacts"
time="2024-11-07T17:33:17.244Z" level=info msg="Alloc=8593 TotalAlloc=13731 Sys=19557 NumGC=4 Goroutines=8"
time="2024-11-07T17:33:17.251Z" level=info msg="Deadline monitor stopped"
time="2024-11-07T17:33:17.251Z" level=info msg="stopping progress monitor (context done)" error="context canceled"

And when it's working correctly:

time="2024-11-08T11:27:05.754Z" level=info msg="Starting Workflow Executor" version=v3.5.12
time="2024-11-08T11:27:05.851Z" level=info msg="Using executor retry strategy" Duration=1s Factor=1.6 Jitter=0.5 Steps=5
time="2024-11-08T11:27:05.870Z" level=info msg="Executor initialized" deadline="2024-11-11 11:26:36 +0000 UTC" includeScriptOutput=false namespace=sonar-workflows podName=sonar-wow-v2-fvv7h-read-group-764570069 templateName=read-group version="&Version{Version:v3.5.12,BuildDate:2024-10-30T10:56:15Z,GitCommit:8fe8de2e16ec39a5477df17586a3d212ec63a4bd,GitTag:v3.5.12,GitTreeState:clean,GoVersion:go1.21.13,Compiler:gc,Platform:linux/amd64,}"
time="2024-11-08T11:27:06.246Z" level=info msg="Starting deadline monitor"
time="2024-11-08T11:27:53.751Z" level=info msg="Main container completed" error="<nil>"
time="2024-11-08T11:27:53.751Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2024-11-08T11:27:53.751Z" level=info msg="Saving output parameters"
time="2024-11-08T11:27:53.751Z" level=info msg="Saving path output parameter: groups"
time="2024-11-08T11:27:53.751Z" level=info msg="Copying /mnt/vol/groups.json from volume mount"
time="2024-11-08T11:27:53.753Z" level=info msg="Successfully saved output parameter: groups"
time="2024-11-08T11:27:53.787Z" level=info msg="No output artifacts"
time="2024-11-08T11:27:53.945Z" level=info msg="Alloc=7697 TotalAlloc=13747 Sys=23397 NumGC=4 Goroutines=8"

These 2 seem to be relevant on the error one:
time="2024-11-07T17:33:17.251Z" level=info msg="Deadline monitor stopped"
time="2024-11-07T17:33:17.251Z" level=info msg="stopping progress monitor (context done)" error="context canceled"

Let me know if I can provide something else to help investigate

@RafaPinzon93 do u have the controller logs? i think this happening even in 3.4.11 as i encounter https://github.com/argoproj/argo-workflows/issues/13799 when under load

@tooptoop4  It seems we didn't have some controller logs at that time. The last logs that I see are these:
time="2024-11-07T18:10:47.693Z" level=warning msg="Non-transient error: <nil>"
time="2024-11-07T16:38:55.136Z" level=info msg="Workflow step group node sonar-wow-v2-p8h4p-sub-thpqx-4266272020 not yet completed" namespace=sonar-workflows workflow=sonar-wow-v2-p8h4p-sub-thpqx
aks-spotbigcpu16-12311640-vmss000001
time="2024-11-07T16:38:55.133Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=sonar-workflows workflow=sonar-wow-v2-p8h4p-sub-rb9kr

According to my investigation, when looking at the status of Workflow resource where the error occurred, the following fields under the outputs key of each node are not being properly stored. However, strangely enough, the value for status.nodes.${name}.outputs.exitCode is always being saved.

status.nodes.${name}.outputs.result
status.nodes.${name}.outputs.parameters

Is the condition for these field values not being saved randomly on the executor side, or is it on the workflow controller side?


build: add support to build with sanitization

Add support to configure the build to use sanitizers to aid in finding
issues.  The DISPATCH_USE_SANIZITERS is a cmake option that defaults
to none, but can be one of Address, Memory, MemoryWithOrigins,
Undefined, Leaks, Address;Undefined.  This allows for easily building
libdispatch and the tests with the sanitizers.

CC: @das @dgrove-oss

Since I put this up on a weekend, a gentle ping during the work week!

out of interest, do the sanitizers actually work with libdispatch on Linux ?
on Darwin, they depend on layers of the OS layered above libdispatch (or entangled with it) so we cannot use them for libdispatch at present
probably means you want to conditionalize  this for linux

Yeah, I was able to build with them on Linux.  I can certainly add a limitation to only allow them on Linux.

but do they run? (the problem on Darwin is not at build time FWIW)

Yes, it did run as well for me :-).

awesome!


Demo mq v2

PR addresses the following:

Add privileged scc to pipeline sa in ci namespace due to recent change in OpenShift Pipelines.  This will be removed once the buildah task has been updated so it no longer requires privileged permissions
Separate out the ClusterIssuer and Certificate resources for cert-manager into separate ArgoCD applications to fix the issue where the resources are not applied in the right order causing ArgoCD sync failure

Also, updated the Channel version for the ibm-platform-navigator and ibm-common-services operators to the latest version.
Updated the ibm-platform-navigator-instance with the license that matches the latest version.


What would you like to learn? What do you already know?

Maintaining source code the right way
Creating branches, Assigning tasks, work items etc

Creating repositories, branches, reviews, etc.

Creating Branches, merging issues handling,

general knowledge of Github

Creating and managing Repositories

Creating software documentation on Github, code review, code update and versioning

General Knowledge of Github and versioning

Creating software documentation on Github, code review, code update and versioning


Fixed #28992 -- added validate into GenericIPAddressField's prep value

Ticket: #28992

It's nearly my lunchtime so 🤯 a bit but... I'm not seeing quite how this solve the reported issue, which was a 500 from search_fields in the admin.

Won't raising the ValueError still result in the 500 error response? (Just a different exception.)
Shouldn't the submitted search_fields values be validated (using a form) similar to your other PR #10895 @cansarigol, which I see we still need to get finished? (I'll pick that up again... — sorry for the delay there. 🤹♀)

you're right about admin side. I will look asap. I wanted to take an approved about which exception will be raised for field-side from you.

It’s not immediately clear to me that we get that much benefit raising the ValueError here. I guess it’s quicker than a trip to the DB...
Thinking about this, it seems we’ll need to expose the form, via the ChangeList class..., so users can add their own validators. We need to have a little think about how that’ll look, but first thing is to get #10895 in.


gnome.aisleriot: 3.22.22 -> 3.22.23

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for gnome.aisleriot is: "A collection of patience games written in guile scheme"
meta.homepage for gnome.aisleriot is: "https://wiki.gnome.org/Apps/Aisleriot"
meta.changelog for gnome.aisleriot is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.22.23 with grep in /nix/store/jd769m6np755s1gxa1j7ym9bk02q7gpy-aisleriot-3.22.23
found 3.22.23 in filename of file in /nix/store/jd769m6np755s1gxa1j7ym9bk02q7gpy-aisleriot-3.22.23

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

1 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
0 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
gnome.aisleriot

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/jd769m6np755s1gxa1j7ym9bk02q7gpy-aisleriot-3.22.23 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A gnome.aisleriot https://github.com/r-ryantm/nixpkgs/archive/9344541ff215ee2929767196fb639b0f93d6ad63.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/jd769m6np755s1gxa1j7ym9bk02q7gpy-aisleriot-3.22.23
ls -la /nix/store/jd769m6np755s1gxa1j7ym9bk02q7gpy-aisleriot-3.22.23/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

gnome.aisleriot

Maintainer pings
cc @bobby285271 @hedning @jtojnar @dasj19 @maxeaubrey for testing.

Pretty much just new card deck graphics. https://gitlab.gnome.org/GNOME/aisleriot/-/compare/3.22.22...3.22.23


Add check for unique redirect URLs

Fixes #1.
It will be faster to do the checks within the redirect registration but I think doing the check in a separate function is cleaner. There aren't too many edges (currently less than 200) so I think performance is not an issue yet.
The build does not fail when errors are thrown because Gatsby catches them I think. I'm not sure how to get around this except using process.exit() instead of throwing an error. @bvaughn Any thoughts?
The errors are currently printed like this. Comments welcome!
⠁ The following paths are being redirected to different permalinks:
  - docs/animation-ja-JP.html → docs/create-fragment.html, docs/animation.html
  - docs/index.html → docs/accessibility.html, docs/hello-world.html
error Plugin default-site-plugin returned an error

  Error: Found the following redirect_froms to be duplicated:
    - docs/animation-ja-JP.html
    - docs/index.html

  - gatsby-node.js:95 Object.exports.createPages
    /Users/yangshun/Developer/reactjs.org/gatsby-node.js:95:11

  - next_tick.js:188 process._tickCallback
    internal/process/next_tick.js:188:7

@bvaughn Thanks for your feedback and the idea. I literally changed the PR to the code you provided 😂
Now the errors look like these. Pretty clear IMO 👍
...
⠁ Duplicate redirect detected from "docs/index.html" to:
* docs/accessibility.html
* docs/hello-world.html

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.


🚀 replace old logo Zenika by the new one

Some of the SVGs seem to change size, is that expected ?
Some of the SVGs seem to not visually change at all, any reason for that ?

no, I think it's a mistake 😕 I mix icons and shapes repertory
no, but as we use a 'npm run generate', I think this change any svg 🤷♂

@arthurzenika I resize some icons 😅

@jeanphibaconnais great. packages/assets/src/icons/body-tatoo-1.svg seems to be still wrong, but the rest look great. Almost there !

Rha 😅  I just fixed it. I ask to @hgwood if the error during deploy preview speak him about


exe starts and closes immediately

Describe the bug
Running the .exe normally or as administrator causes a cmd to flash (open and close very quickly). No GUI appears.
Version:
v0.0.13
Python Version
3.12.2
To Reproduce
Steps to reproduce the behavior:

Go to 'C:\Users*\Desktop\DD2AutoSlider'
Click on 'DD2AutoSlider.exe'
See error

Preset/Template
Can't get that far
Expected behavior
A GUI appears
Screenshots
No added context
Desktop (please complete the following information):
Edition	Windows 11 Home
Version	23H2
Installed on	3/22/2024
OS build	22631.3296
Experience	Windows Feature Experience Pack 1000.22687.1000.0

Could you open a terminal in that folder and type in DD2 then push tab, it should auto select the exe file. Then push enter to run it.
It should give an error, can you let me know what that error is?
I'm assuming it's about a missing dll or something but I can't reproduce on my end.

I have a same issue.
Here is the error:
Traceback (most recent call last):
File "C:\Users\mxrid\OneDrive\Projects\DDCC\venv\Lib\site-packages\cx_Freeze\initscripts_startup_.py", line 124, in run
File "C:\Users\mxrid\OneDrive\Projects\DDCC\venv\Lib\site-packages\cx_Freeze\initscripts\console.py", line 17, in run
File "src\main.py", line 3, in
ImportError: DLL load failed while importing win32gui: The specified module could not be found.

Give me a minute, I'm gonna kick off a GitHub build and see if that works for you.

Try this one:
https://github.com/Mx772/dragons-dogma-2-auto-character-creator/actions/runs/8498655211/artifacts/1372716198

DD2AutoSlider.zip
Try this one

it work for me.
Thank you.

Updated Nexus and release for 13. I used a different build tool which doesn't seem to work for everyone.


bip39::Language::find_word returning indices starting from 0 is a footgun for the user

I wanted a tool where I could conveniently create a BIP39 seed phrase from a safe source of entropy. I ended up with seed_entropy_blower.
I originally wrote this code as part of the UI:
    println!("\nBIP39 seed phrase ✍🗝");
    println!("position|word|number");
    let mut i = 1;
    for word in bip39.word_iter() {
        println!("{}|{}|{}", i, word, bip39::Language::English.find_word(word).expect("this should be a valid word"));
        i+=1;
    }

which rendered:
BIP39 seed phrase ✍🗝
position|word|number
1|card|276
2|bomb|201
3|process|1372
4|antenna|78
5|twin|1883
6|weird|1993
7|fine|694
8|leopard|1026
9|glimpse|793
10|taste|1777
11|appear|84
12|wealth|1985
13|cash|282
14|ice|897
15|pear|1296
16|cargo|277
17|trade|1845
18|minute|1130
19|dish|505
20|unfold|1897
21|cable|255
22|inhale|925
23|poverty|1352
24|level|1029

I went to check the official BIP39 github page and noticed that:

my UI prints card as 276
the list has card as 277

So I had to adapt my code to:
    println!("\nBIP39 seed phrase ✍🗝");
    println!("position|word|number");
    let mut i = 1;
    for word in bip39.word_iter() {
-        println!("{}|{}|{}", i, word, bip39::Language::English.find_word(word).expect("this should be a valid word"));
+        println!("{}|{}|{}", i, word, bip39::Language::English.find_word(word).expect("this should be a valid word")+1);
        i+=1;
    }

But that left me worndering: why is bip39::Language::find_word API returning using the indices starting from 0?
This standard of  indices starting from 1 seems to be the one that's widely used:

https://tinyseed.io/bip-39/
https://www.blockplate.com/pages/bip-39-wordlist
https://privacypros.io/bip39-word-list/

Speaking from my own experience, I feel this API is a massive footgun for the users of this crate. I'm glad I verified and was able to adapt my code to avoid issues, but I'm reporting this here anyways.

Yeah the old debate about 0-index vs 1-index.
This would be a breaking change and also annoying AF since the last i+1 new API word would probably overflow the returning u16 type.
I would just add a
/// # Warning
///
/// Lorem ipsum dolor ....

in the docstring of find_word.

I understand that you had felt some pain because of this off-by-one error but the whole issue and fix is a non-issue IMO, in computer science indecies start at 0. If github or other wallets choose to call the word stored in an array at index 0 "word 1" that is not our problem. Sorry to be harsh, I tried to say it in a more friendly way before :)


Empty schema of filtered_information_schema_columns when initializing

Overview
We use elementary and dbt with BigQuery projects. The BigQuery tables modeled by dbt are created in multiple Google Cloud project. And we have GCP projects specialized to persist results of elementary.
When we tried to upgrade elementary and dbt-data-reliability from 0.8.0 to 0.10.3 with a dbt run --select elementary --profile elementary, we got the subsequent error. According to my research, the elementary_v0.filtered_information_schema_columns model tries to access metadata of all tables in the dbt project. In my opinion, when creating and upgrading the schemas of elementary, it would be ok to create empty ones.

dbt: 1.5.0 and 1.6.2
elementary: 0.10.0
dbt-data-reliability: 0.10.3

07:26:53  14 of 29 ERROR creating sql view model elementary.filtered_information_schema_columns  [ERROR in 33.93s]

403 GET https://bigquery.googleapis.com/bigquery/v2/projects/xxx-analysis/datasets/if_master/tables?maxResults=1&prettyPrint=false: Access D
enied: Dataset xxx-analysis:master: Permission bigquery.tables.list denied on dataset xxx-analysis:master (or it may not exist).

What is the change?
I would like to create empty schemas of elementary, when creating and upgrading the dbt schemas of elementary. To do so, there might be a couple of solutions.  First, we use an environment variable to call the get_empty_columns_from_information_schema_table macro to get empty schemas of filtered_information_schema_columns. Second, as the pull request, we take advantage of the information of the --select option. context["invocation_args_dict"]["select"] enables us to get a list of values passed by the option.

As the elementary team plan to change the implementation of the way we take the schema snapshots, we can' close the pull request. It would be good to discuss and implement the new approach instead of the pull request.
https://github.com/elementary-data/elementary/issues/945#issuecomment-1734793684


Bug: Enum Mapping info lost on switching between form and text mode

Similar issues

[X] I have searched and found no existing similar issues

How are you using Studio?
Legend Studio
Current and expected behavior
Current : If we copy-paste the attached grammar and toggle between form mode & text mode we loose Enumeration Mapping attached with property mapping and compilation fails as expected
Expected : Toggling between form mode & text mode should not affect the grammar
Steps to reproduce
Copy the attached grammar in studio workspace & toggle between form & text mode. Compilation fails after toggle
Model data
###Pure
Enum demo::TestEnum
{
  Value1,
  Value1
}

Class demo::TestClass
{
  testEnum: demo::TestEnum[1];
}

Class demo::S_testClass
{
  testEnum: String[1];
}

###Mapping
Mapping demo::TestEnumMapping
(
  demo::TestEnum: EnumerationMapping
  {
    Value1: ['value1'],
    Value1: ['value2']
  }
)

Mapping demo::TestMapping
(
  include demo::TestEnumMapping

  *demo::TestClass: Pure
  {
    ~src demo::S_testClass
    testEnum: EnumerationMapping demo_TestEnum : $src.testEnum
  }
)

Environment
System:
    OS: windows 10
  Browsers:
    Chrome: 95.0.4638.69

Possible solution and workaround
No response
Contribution

[ ] I would like to work on the fix for this issue

@hardikmaheshwari Does this pass the grammar roundtrip in engine?

Yes it does. Also a bit of investigation that I did in case its helpful

We start from text mode with this grammar. Compilation succeeds
Toggle to Form mode

When we pass the grammar to transformGrammarToJsonApi, we have this field - "enumMappingId": "demo_TestEnum",

Compile in Form Mode

When we pass the json to transformJsonToGrammarApi this field is missing

@hardikmaheshwari gotcha. Also, we should probably file bug in engine for not catching this at compile time. Duplicated enum values and duplicated class properties.
Studio probably would hard fail this at graph builder step.

@akphi yes that's a good observation. I'll do that

Updated the grammar. The issue is unrelated to the duplicate enums. We should file an issue with engine to do these via compilation checks for both duplicate property names and duplicate enum values. Pure right now has this validation.

Updated the grammar. The issue is unrelated to the duplicate enums. We should file an issue with engine to do these via compilation checks for both duplicate property names and duplicate enum values. Pure right now has this validation.

Thanks @MauricioUyaguari . Yes I'll do that but just to clarify issue that I am reporting here is not related to duplicated values
but on togling between form and text mode we are lossing info about EnumerationMapping
testEnum: EnumerationMapping demo_TestEnum : $src.testEnum
gets changed to
testEnum: $src.testEnum

@hardikmaheshwari Yes, that is correct.


properties of triangles

I would like to add properties of triangles like circumcenter,circumradius,incentre, orthocentre and their properties
There are lots of identities for solution of triangles

Hey @sairish2001 Could you pls help me with a thing

Go ahead
Feel free to ask your doubts,if any
Deadline 27 March,2021 (11:59 PM IST)

I am not just getting how to add formulae as it is getting distorted Could you pls tell me how to do that

[1)\space\int x^n ,dx\space=\frac{x^{(n+1)}}{n+1}+c] like this
Where can I find the documentation @sairish2001

See  how am i typing the formula

This is how I want it  way better than mine
Did u understood what i meant to say ? @sairish2001

This is LaTeX text
https://www.overleaf.com/learn/latex/Mathematical_expressions
Check this out

@sairish2001 Created a PR Have a look!


Get and Set Config for Files and Plugins

App

unify ClientConfig and Config into Config
use /config.json as default
add provider for custom functionality

Client

add Client#getForFile, Client#setForFile, Client#getForPlugin and Client#setForPlugin
rename App#loadConfig to #getConfig

Related to #1066
Related to #1397
Closes #1425

@nikku @barmac I will add a minimal example of getting/setting deployment details to the deployment plugin stub. Will let you know when I'm done.

Test fail, please fix this.

I've removed the bits in this PR that expose the tab via props to the extension.
The way to access application state is via events. This is what we agreed upon to get out of the React propagation mess. :100:

@barmac Please take this PR over for review.

Sure.

@barmac Ready to be reviewed


RedisSearch SORTBY does not work

It might actually not be a "bug" but when I use the SORTBY search option it seems to be ignored (which makes sense considering it is commented out in /packages/search/lib/commands/SEARCH.ts).
I can see that a MSORTBY option is supported but when I try to use it I get an error from Redis (ReplyError: Unknown argument MSORTBY at position 1 for ...)
Is there a way to workaround this issue?
Environment:

Node.js Version: 14.17.0
Redis Server Version: 6.2.3
Node Redis Version: 4.0.0
Platform: Windows 10

You can use client.sendCommand with SEARCH.transformArguments and SERACH.transformReply as a workaround for now:
import { transformArguments, transformReply } from '@node-redis/client/dist/lib/commands/SEARCH';

const searchArgs = transformArguments(...);
searchArgs.push('SORTBY', '...');
const reply = transformReply(await client.sendCommand(searchArgs));

the SORTBY option should be supported, It'll be released with<EMAIL_ADDRESS>

Wahoo, that's exactly what I've done and I was about to comment my own issue in case it could be useful to someone else! ;)
(I still don't get the point of MSORTBY since it is not supported by Redis as far I know but maybe I've missed something..)
Many thanks anyway!

You can use client.sendCommand with SEARCH.transformArguments and SERACH.transformReply as a workaround for now:
import { transformArguments, transformReply } from '@node-redis/client/dist/lib/commands/SEARCH';

const searchArgs = transformArguments(...);
searchArgs.push('SORTBY', '...');
const reply = transformReply(await client.sendCommand(searchArgs));

the SORTBY option should be supported, It'll be released with<EMAIL_ADDRESS>
Can you explain this example for typescript? I am getting an error on the import statement
Cannot find module '@node-redis/client/dist/lib/commands/SEARCH' or its corresponding type declarations. ts(2307)

@amansubhan I've updated my command

You can use client.sendCommand with SEARCH.transformArguments and SERACH.transformReply as a workaround for now:
import { transformArguments, transformReply } from '@node-redis/client/dist/lib/commands/SEARCH';

const searchArgs = transformArguments(...);
searchArgs.push('SORTBY', '...');
const reply = transformReply(await client.sendCommand(searchArgs));

the SORTBY option should be supported, It'll be released with<EMAIL_ADDRESS>
Can you explain this example for typescript? I am getting an error on the import statement Cannot find module '@node-redis/client/dist/lib/commands/SEARCH' or its corresponding type declarations. ts(2307)

I'm not using TS but here is the import I use (and that works):
import redisSearch from '@node-redis/search';
then redisSearch.search.transformArguments for instance..

@bertrand-riviere @leibale Thanks to both of you, it's working now as you pointed out the import

You can use client.sendCommand with SEARCH.transformArguments and SERACH.transformReply as a workaround for now:
import { transformArguments, transformReply } from '@node-redis/client/dist/lib/commands/SEARCH';

const searchArgs = transformArguments(...);
searchArgs.push('SORTBY', '...');
const reply = transformReply(await client.sendCommand(searchArgs));

the SORTBY option should be supported, It'll be released with<EMAIL_ADDRESS>
Can you explain this example for typescript? I am getting an error on the import statement Cannot find module '@node-redis/client/dist/lib/commands/SEARCH' or its corresponding type declarations. ts(2307)

I'm not using TS but here is the import I use (and that works): import redisSearch from '@node-redis/search'; then redisSearch.search.transformArguments for instance..


MambaBDA训练时候报错：IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)

Hello, when I was training mamba-BDA-Tiny, the training results were good, but in the 10500 round of evaluation, I made an error: IndexError: Dimension out of range (expected to be in range of [-1,0], but got 1). I printed the probas.shape correctly afterwards. Is there any way to modify this situation.
11%|█         | 10965/100000 [10:43:56<87:08:49,  3.52s/it]
Traceback (most recent call last):
  File "/home/wg/MambaCD-master/changedetection/script/train_MambaBDA.py", line 236, in
    main()
  File "/home/wg/MambaCD-master/changedetection/script/train_MambaBDA.py", line 232, in main
    trainer.training()
  File "/home/wg/MambaCD-master/changedetection/script/train_MambaBDA.py", line 120, in training
    lovasz_loss_clf = L.lovasz_softmax(F.softmax(output_clf, dim=1), labels_clf, ignore=255)
  File "/home/wg/MambaCD-master/changedetection/utils_func/lovasz_loss.py", line 167, in lovasz_softmax
    loss = lovasz_softmax_flat(*flatten_probas(probas, labels, ignore), classes=classes)
  File "/home/wg/MambaCD-master/changedetection/utils_func/lovasz_loss.py", line 181, in lovasz_softmax_flat
    C = probas.size(1)
IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)

Hi,
Thank you so much for your question and your interest to our work. I never encountered such a problem previously.
Could you please check the dimensions of the labels and the range of label values in the dataset you are using?
Best,

hi, thanks for your reply, this problem seems to be an unexpected error in the position where evaluation is batch size=1, after I re-ran it, it doesn't seem to have this problem anymore, in addition, can you provide the weight of the BDA task? Thank you so much

after I re-ran it, it doesn't seem to have this problem anymore
Glad to hear that!

can you provide the weight of the BDA task
BDA and SCD weights will be released after the paper is accepted.

thanks~

Hello, I'm also experiencing this problem and encountering the same error in a different location every time I run it, have you encountered anything similar?

Hello, I'm also experiencing this problem and encountering the same error in a different location every time I run it, have you encountered anything similar?
I don't have this issue after re-running it again, this issue should be an unexpected error with Batch size =1,https://github.com/ChenHongruixuan/MambaCD/issues/27#issuecomment-2113328034，You can try this method.

You can try to increase training size to higher resolution such as 512.

Hello, when I was training mamba-BDA-Tiny, the training results were good, but in the 10500 round of evaluation, I made an error: IndexError: Dimension out of range (expected to be in range of [-1,0], but got 1). I printed the probas.shape correctly afterwards. Is there any way to modify this situation.
11%|█         | 10965/100000 [10:43:56<87:08:49,  3.52s/it] Traceback (most recent call last):   File "/home/wg/MambaCD-master/changedetection/script/train_MambaBDA.py", line 236, in     main()   File "/home/wg/MambaCD-master/changedetection/script/train_MambaBDA.py", line 232, in main     trainer.training()   File "/home/wg/MambaCD-master/changedetection/script/train_MambaBDA.py", line 120, in training     lovasz_loss_clf = L.lovasz_softmax(F.softmax(output_clf, dim=1), labels_clf, ignore=255)   File "/home/wg/MambaCD-master/changedetection/utils_func/lovasz_loss.py", line 167, in lovasz_softmax     loss = lovasz_softmax_flat(*flatten_probas(probas, labels, ignore), classes=classes)   File "/home/wg/MambaCD-master/changedetection/utils_func/lovasz_loss.py", line 181, in lovasz_softmax_flat     C = probas.size(1) IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)

您好，请问您最后是怎么解决的呢？

Hi,
Please try to not use lovasz softmax loss or enlarge the crop size. Or you can pre-crop the xBD dataset and exclude the samples whose label values are all 0.
Best,
Hongruixuan :)

label 值均为 0 的样本

Hi, did you end up solving the problem by pre-cropping the xBD dataset and excluding samples with label values that are all 0?


Get to a working eth binary for C.H.I.P.

As of November 29th we have a runtime error as per @phonikg.

C.H.I.P. install went well, but then:
chip@chip:~/eth/bin$ ./eth
(++)Ethereum
Beware. You're entering the Frontier!
⧎ ℹ  05:06:36|eth  Id: ##7346fb5b…
pure virtual method called
terminate called without an active exception
Aborted
chip@chip:~/eth/bin$
So close...

See #10, but we'll move C.H.I.P. specific discussion here

Aside.   Have you ever tried a native eth build on C.H.I.P.  @phonikg?   I think the answer is 'not yet'.
Is that the case?

So I have never used gdb before.  It was not pre-installed with the Debian img supplied by NTC.  I installed via: sudo apt-get install gdb
it now runs, but can you confirm that the exact syntax to utilize it is in fact: gdb ./eth ? This what I currently get which leads me to believe either I'm not issuing the command properly, or there are additional commands to issue once inside the (gdb) :+1:
chip@chip:~/eth/bin$ gdb ./eth
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./eth...done.
(gdb)

@bobsummerwill Correct: not yet.

I've not used it myself command-line for a long time either.   Looks like you just need to do 'run'.
http://www.chemie.fu-berlin.de/chemnet/use/info/gdb/gdb_5.html
You are in the GDB shell, but I imagine you can do gdb --run ./eth or similar on the command line to do it non-interactively.

Gdb is just the GNU debugger.   Nearly everwhere it is used is wrapped in layers of graphical debuggers now, or remote debugging where you have a gdbserver process on device talking the 'augmented' application and another GDB process on your host machine talking to gdbserver on the target.

Okay, this is what it returned:
(gdb) run
Starting program: /home/chip/eth/bin/eth
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
(++)Ethereum
Beware. You're entering the Frontier!
⧎ ℹ  16:54:20|eth  Id: ##c72bb614…
[New Thread 0xb474f450 (LWP 1336)]
[New Thread 0xb3dff450 (LWP 1337)]
pure virtual method called
terminate called without an active exception
Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb3dff450 (LWP 1337)]
__libc_do_syscall ()
at ../ports/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:44
44	../ports/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb)

What is best route at this point?  Would it be greatly helpful to try to compile on device first?

I think @anthony-cros hit something very similar looking at some point.
Yeah - I think it would certainly help to try a native build on device.   It might 'just work' and would be the best long-term solution for C.H.I.P. anyway.
Cross-builds for SBC are nice-to-have for various reasons but are not essential.   Namely ...

You can do a build without needing the device
The build process will likely be much faster, because you can use a kick-ass desktop or server.
Err ....

Or you HAVE to cross-build, due to platform limitations (iOS, Android, Tizen, PlayStation, XBOX, many embedded platforms).

This is fairly low priority I imagine, but would have been nice if it just worked
Hmmm... C.H.I.P. is also very light... only 3GB left on the EMMC.  Might be tight to build "on device", however there is no room (or storage expansion) for the blockchain anyway.

Also, I understand what you are saying regarding cross-builds not being necessary for most devices, but I tell you it is nice to finally have a 5 minute ethereum install for the SBC's!!!
^^^understatement of the month^^^

What was your previous setup process versus what you are doing now?
Were you always building natively per device?   You could likely have built natively once, copied the files off to your desktop and reused them on the other devices.    Though I guess that might not have worked depending on the ABI settings for each ... ?
Well anyway - if if has helped your workflow then that's good!

I think @anthony-cros hit something very similar looking at some point.

no I think it's a new message actually, though it does resemble the ones we typically get

(gdb) run

@phonikg , could you also issue bt (for backtrace) at the prompt and after run finishes?

Yes @anthony-cros I will try soon.

Hey @phonikg!   Please could you try https://github.com/doublethinkco/webthree-umbrella-cross/releases/tag/crosseth-armhf-15-12-17 on your C.H.I.P?   You are still the only "blessed individual" with one :-)

UPDATE!
root@chip:~/eth/bin# ./eth
./eth: error while loading shared libraries: libboost_thread.so.1.59.0: cannot open shared object file: No such file or directory

Me thinks this is a $PATH issue...

Et Voila:

nice!!

Oh my goodness!   Thanks, @phonikg.
Another cell bites the dust.    Tweet it up, and I'll link to the tweet in the umbrella-cross README matrix.
Best wishes!

I see you already tweeted.   All done-and-dusted.   Many thanks :-)
https://twitter.com/EthEmbedded/status/697220510208258048


Fix fine amplitude analysis

Summary
This fix fine amplitude cal analysis so that it can reflect user provided initial guesses for d_theta and baseline.
Details and comments

This doesn't change the tutorial. In principle any analysis can take user input and it provides systematic guess if an user provides nothing. The user guess defaults to None so systematic guess value is automatically chosen.
https://github.com/Qiskit/qiskit-experiments/blob/2e51daaa298b5ab6109229808f589679ed2e9316/qiskit_experiments/library/calibration/analysis/fine_amplitude_analysis.py#L85

No, auto guess is completely fine. But there is no reason to prohibit user from providing d_theta. Just for standardization of logic.


Migrate this project into SH Netlify

See title

I need to ask the netlify support to do it, it will take some time


how to change brakepoint?

Hello! I have two pictures - in separate mj-columns and this brakes very early! Can i customize a brake point in this way

hey @wireinet, in MJML 4 you can customize the breakpoint with the mj-breakpoint component: https://github.com/mjmlio/mjml/blob/master/packages/mjml-head-breakpoint/README.md
Not sure to understand what you mean though about "breaks very clearly".

ngarnier  - thank you! Dont knowed about new version!

but...as i can see app is not a new - in offecial site - download for windows 2.6.0
Can you tell me how to get version MJML 4 ?

No worries! For now the only way is using MJML locally and installing with npm: https://github.com/mjmlio/mjml#installation
If you're not familiar with it, the best is to wait that we update the MJML App.

Thank you! i use npm, but love app - its great! Thank you again for answers


(GH-2549) Use new default modulepath

This updates Bolt to use the new default modulepath ['modules'] and
append the .modules/ directory to the end of both the default
modulepath and configured modulepath.
!feature

Update default modulepath
(#2549)
Bolt's default modulepath is now ['modules'] instead of
['modules', 'site', 'site-modules']. Bolt will also automatically
append the project's .modules/ directory to all modulepaths,
whether a project uses the default modulepath or a configured
modulepath.

QQ: Does this update the generated reference docs (like bolt_project_reference) with the new defaults? When I checked this branch out and ran the rake task, I'm still getting
- **Type:** Array, String
- **Default:** ["project/modules", "project/site-modules", "project/site"]

But I might be doing it wrong 😊

QQ: Does this update the generated reference docs (like bolt_project_reference) with the new defaults? When I checked this branch out and ran the rake task, I'm still getting
- **Type:** Array, String
- **Default:** ["project/modules", "project/site-modules", "project/site"]

But I might be doing it wrong 😊

Ah, nope, forgot to update the default. Good catch! 👍

Ah, nope, forgot to update the default. Good catch! 👍

[x] Updates the default modulepath to ['modules'] if modulepath isn't configured
[x] Appends .modules/ to the modulepath

[x] When modulepath is configured
[x] When modulepath isn't configured

[x] Uses the default modulepath even if modulepath is "set" in bolt-defaults.yaml
[x] project migrate moves modules from the previous default modulepath ['modules', 'site-modules', 'site'] to the modules directory Note: this does mean that if modules have the same name, one will get overridden

[x] If modulepath isn't configured
[x] If modulepath is configured to ['modules']
[x] If modulepath is configured to 'modules'
[x] Does not move modules if modulepath is configured to anything other than ['modules']
[x] If modulepath is ['modules', 'site-modules', 'site']

[x] Still appends the project to the modulepath if named
[x] Is still overridden by --modulepath

[x] Updates the default modulepath to ['modules'] if modulepath isn't configured
[x] Appends .modules/ to the modulepath

[x] When modulepath is configured
[x] When modulepath isn't configured

[x] Uses the default modulepath even if modulepath is "set" in bolt-defaults.yaml
[x] project migrate moves modules from the previous default modulepath ['modules', 'site-modules', 'site'] to the modules directory Note: this does mean that if modules have the same name, one will get overridden

[x] If modulepath isn't configured
[x] If modulepath is configured to ['modules']
[x] If modulepath is configured to 'modules'
[x] Does not move modules if modulepath is configured to anything other than ['modules']
[x] If modulepath is ['modules', 'site-modules', 'site']

[x] Still appends the project to the modulepath if named
[x] Is still overridden by --modulepath


The attribute "border-radius" is not suported in PDF2 plugin

Expected Behavior
I'm using customized pdf2 plugin and hope to apply the attribute "border-radius" into the styling of  in final PDF output.
Actual Behavior
I added the line:
<xsl:attribute name="border-radius">5pt</xsl:attribute>
in custom.xsl file.
Copy of the error message, log file or stack trace
However, I got nothing changed in the PDF:

Possible Solution
I am wondering if the FOP formatter supports for such attribute ("border-radius"), or if there is other approaches to take the same effects in PDF.
Environment

DITA-OT version:
dita-ot-3.7.0
Operating system and version:
Windows
How did you run DITA-OT?
dita command
Transformation type:
PDF2

XSL FO 1.1 does not have property border-radius, thus you can't use it with PDF2.

BTW, which version has the property border-radius ?

The FOP docs describe that a FOP extension supports some form of border radius. You need to prefix its use with the fox: names pace. I haven't tested it,but I actually have a possible use case. See docs at https://xmlgraphics.apache.org/fop/2.7/extensions.html#rounded-corner. You'd probablywant to add the template/attribute-set changes to one of the FOP specific stylesheets.

The 2.7 FOP docs describe that a FOP extension supports some form of border radius. You need to prefix its use with the fox: namespace. I haven't tested it, but I actually have a possible use case - separating  elements. See docs at https://xmlgraphics.apache.org/fop/2.7/extensions.html#rounded-corner. You'd probablywant to add the template/attribute-set changes to one of the FOP specific stylesheets.
<fo:block-container margin="10 20pt 20pt 20pt">
          <fo:block border-style="solid" border-width="10" border-color="#00f"
                           fox:border-radius="20pt" padding="20pt" text-align="center" margin-bottom="10pt">
               Circular corners are specified when 'border-radius' is set to a single value.
               This value is the radius of the outer quadrant of the corner.
          </fo:block>
          <fo:block border-style="solid" border-width="10" border-color="#00f"
                           fox:border-radius="20pt 40pt" padding="20pt" text-align="center" margin-bottom="10pt">
                 Quarter-ellipse corners can be generated by setting two values for the property.
                 The first value is the radius in the Inline Progression Direction.
                 The second value is the radius in the Block Progression Direction.
          </fo:block>
</fo:block-container>

@kirkilj
Thank you for your help. I have applied the property successfully!

I'm glad it helped. I tested it as well. I'm proposing using them to group cause/remedy pairs in DITA Troubleshooting topics.

@jelovirt , can you redisposition this issue so it's no longer tagged as Invalid?


fixes volumes mount

for vmagent and vmalert
https://github.com/VictoriaMetrics/operator/issues/97

LGTM


The autocomplete does not complete user defined functions and variables.

Autocomplete does not even acknowledge user defined functions, classes, modules, and variables.

Added in v0.0.7


Show PR status in list

Is your feature request related to a problem? Please describe.
It's unclear what PRs in the list need action based on their review status, because this info isn't displayed in the list anywhere.
Describe the solution you'd like
It would be really helpful to see some sort of status on the PR list (awaiting review, approved, etc.) so that you know what status a PR has.
Describe alternatives you've considered
I've created a workaround by adding additional lists with review status filters, which works but clutters up the dashboard.

We could use the following symbols:

Orange dot for "awaiting review"
Red cross for "changes requested"
Green tick for "changes approved"

Would that fulfill your needs?

I've done a few tests, and it looks feasible. The only problem is that it would require adding an additional request for each PR, which would very quickly rate-limit the users.
I think we could mitigate this by using the GraphQL API (V4), but that would imply big changes to the extension.
I think the GraphQL query would then look like this:
fragment _PR on PullRequest {
  title
  url
  repository {
    nameWithOwner
  }
  comments {
    totalCount
  }
  reviews(first: 100) {
    nodes {
      createdAt
			author { login }
      state
    }
  }
}

fragment _Issue on Issue {
  title
  url
  repository {
    nameWithOwner
  }
  comments {
    totalCount
  }
}

{
  search(
		query: "is:open type:pr repo:rgehan/octolenses-browser-extension",
		type: ISSUE,
		first: 100
	) {
    edges {
      node {
        ... on PullRequest {
          ..._PR
        }
        ... on Issue {
          ..._Issue
        }
      }
    }
  }
}

The GitHub API returns, for each PR, an array of reviews like this one:
const reviews = [
  {
    createdAt: "2018-09-01T13:48:06Z",
    author: {
      login: "rgehan",
    },
    state: "DISMISSED",
  },
  {
    createdAt: "2018-09-01T13:48:39Z",
    author: {
      login: "rgehan2",
    },
    state: "CHANGES_REQUESTED",
  },
  {
    createdAt: "2018-09-01T13:49:22Z",
    author: {
      login: "rgehan"
    },
    state: "CHANGES_REQUESTED"
  },
  {
    createdAt: "2018-09-01T13:49:30Z",
    author: {
      login: "rgehan"
    },
    state: "APPROVED"
  }
];

// To determine the state of a PR, we'd just need to find the last
// status for each reviewer.
// =>

const statuses =_.chain(reviews)
  .keyBy('author.login')
  .map('state')
  .value();

// => ['APPROVED', 'CHANGES_REQUESTED']

const isFailed = statuses.includes('CHANGES_REQUESTED');

I think the query should be something like this:
{
  search(query: "repo:laravel/framework is:open is:pr", type: ISSUE, first: 20) {
    edges {
      node {
        __typename
        ... on PullRequest {
          commits(last: 1) {
            edges {
              node {
                commit {
                  status {
                    state
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}


fix(cli): version prefix v now is now optional

Closes #463
📑 Description
The PR make changes to -v/--version in the glasskube cli. Previously it requires the user to add "v" prefix to the version. With the PR the user will be able to pass exact version and the code internally adds a "v" prefix.
✅ Checks

[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required

ℹ Additional Information

This looks good, but I think it would be a little cleaner to use strings.HasPrefix instead. Could you please make this change?

Made the changes. Can you check now?


Change helm chart to work out of the box

The gitea-chart does not seem to work out of the box.
Running in a minikube environmen:
helm repo add k8s-land https://charts.k8s.land
helm install gitea k8s-land/gitea

And adding gitea.local to /etc/hosts:
<IP_ADDRESS> gitea.local

Seems like gitea is not accessible out of the box.
$ curl gitea.local
curl: (7) Failed to connect to gitea.local port 80: Connection refused
$ curl gitea.local:3000
curl: (7) Failed to connect to gitea.local port 3000: Connection refused

Ingress controller seems to be running:
$ kubectl get pods -n kube-system
NAME                                        READY   STATUS    RESTARTS   AGE
nginx-ingress-controller-7d98965d48-dq5tq   1/1     Running   1          1d

Please let me know if I'm missing something.

Could you output kubectl get svc for me and let me know what the output is?

Seems like my problem was solved after updating minikube.


Release 0.0.12

Changelog for the 0.0.12 release:

Implemented method Container.wait(...)
Renamed LocalDocker to UnixDocker and RemoteDocker to TcpDocker (just a change for better names). The old Local* and Remote* classes are now deprecated and will be removed in a future version.
Started implementing the Exec API.
fix for #302

@rultor release it, tag is 0.0.12

@rultor release it, tag is 0.0.12

@amihaiemil OK, I will release it now. Please check the progress here

@rultor release it, tag is 0.0.12

@amihaiemil Done! FYI, the full log is here (took me 5min)

@ry99 FYI, Container.wait() has just been released

Job gh:amihaiemil/docker-java-api#335 is not assigned, can't get performer


Mark examplelibs as non-transitive, enable javadoc and sources for all

This fixes #368, fixes #283.
Mark the examplelibs configuration to only contain itself, since we actually ship the dependencies to the created project. This library is used only to copy its sources to the project template.
What do you think @MeFisto94 ?

good catch with the transitive = false. The false, false were coming from me where we still manually built the engine and thus it was not working, but due to us being back on maven central releases, that works again. Nice


Properly trim white space of text nodes

Line https://github.com/jaytaylor/html2text/blob/master/html2text.go#L340 should use the strings.TrimSpace function instead of strings.Trim to properly trim white spaces (especially unicode ones).
data = strings.TrimSpace(spacingRe.ReplaceAllString(node.Data, " "))

Thanks, and sorry about only seeing this now.
I'll gladly accept a PR for this one!

I've created PR https://github.com/jaytaylor/html2text/pull/34 for this. Let me know how it looks, thanks!

@jaytaylor going to bump this incase it got missed

Hi Mike, thanks for the reminder!  Merged it.


issue #693 - memberOf handles maxValueSet and all-languages value set

Signed-off-by: Troy Biesterfeld<EMAIL_ADDRESS>This change adds validation of the maxValueSet defined for a binding, and validation of language codes against BCP-47 when all-languages is the value set.

@tbieste Please download and install the code template and formatting rules for Eclipse here:
https://github.com/IBM/FHIR/wiki/Style-Guide
We are (mostly) consistent throughout our code base with:
if (condition) {
    doSomething();
} else {
    doSomethingElse();
}

and
try {
    doSomething();
} catch (Exception e) {
    // ...
}

@JohnTimm Thanks!  I imported the code template and formatting rules for Eclipse.

I was about to press merge on this one, but then I started thinking...
If a resource instance

has a Coding with a known "syntax-based" codeSystem, like all-langs or ucum; and
the code isn't valid per the syntax of those systems
then I'm thinking that should fail validation irregardless of the valueset binding or even the binding strength.

If a Coding claims to have system http://hl7.org/fhir/ValueSet/all-languages and isn't valid per that coding system, then this should be a validation error, full stop.  Why do we even need to involve the constraint generation?

Thought about it some more and realized that:

memberOf could get used outside of FHIRValidation and so we probably still want it to behave "properly" for these syntax-based valuesets; and
there's no need to do the CodeSystem validate-code if we've already validated its in a bound valueset (assuming the valueset was created properly)..so my comment above about taking a "shortcut" to avoid double-validation could go either way; and
we're not validating codes via CodeSystem validate-code at all just yet, and it seems beyond the scope of https://github.com/IBM/FHIR/issues/693

net: I'm still good with merging this and revisiting it if/when we validate CodeSystem codes

I agree with @lmsurpre that we need to visit the idea of validating arbitrary coded elements against a explicit code system (perhaps directly in the validator) but we really only need to do this for coded elements that are not bound to a checked value set and not already checked during object construction (if possible).


Can bird be assumed dead for klgev

@EricStienen : yesterday @peterdesmet and I were wondering about action klgev.
Can we assume that the bird is dead?
Possible combinations of actions found:

klgev only: 36 observations. Observation with Nummer:
122531<PHONE_NUMBER>16 127499   2014  12080<PHONE_NUMBER>84  61151<PHONE_NUMBER>26 128295   8268<PHONE_NUMBER>18<PHONE_NUMBER>74  32138  69276  32373 129637  92262  61545<PHONE_NUMBER>25<PHONE_NUMBER>31  93230  78951  99050  99047  92530  99048<PHONE_NUMBER>86 109382

klgev - rngkl: 1 observation. Observation with Nummer:
67962

Could be that the latter one means that the ringer found a color ring (of a dead bird?) and at the same time applied a ring to another one (in field Opmerking: "Pullus 2 van 4")?

The last issue (nr 67962) was an error and is adjusted in the database.
In all the other cases only the colour ring was found and this often means that the bird dided, but we also have cases of birds where we know for sure that the colour ring is lost.
So the answer to your question is: NO we can not assume that the bird is dead.

Thanks.


ElasticSearch authentication

Add authentication mechanisms. Two ideas:
How to connect using a username/token to elastic-search ?
Another mechanism when securing an Elastic-Search server is putting a nginx proxy in front of it.
The proxy blocks connection requests unless a special header is set - and a particular token
i.e. on the HTTP request if
'HEADER_MY_SECRET_ELASTIC_TOKEN' : 'MY_SECRET_PASSWORD'

Then nginx allows proxying the request

Does elastic4s do this?

Closing - and will re-open if requested & supported


Don't use global logger in callbacks

I separated out this issue from #2149:
As posted originally by @freddyaboulton:
Our raise_error_callback and log_error_callback functions use the logger created by our get_logger util.
This is problematic because pipeline evaluation could be happening in parallel so different workers could be attempting to write to the same file at the same time. Moreover, the computation could be happening in a remote machine, so the file that's written to would not be a file accessible by a user. I think the right thing to do is to use to JobLogger introduced in #1975 and add that as an argument to the callbacks.

After some discussion in https://github.com/alteryx/evalml/pull/2429#discussion_r658905960, we realized that simply introducing the JobLogger  as an argument to the callback does not suffice in the case where we raise an error. If we raise an error in the error_callback of AutoML, we never get to writing the progress thus far to the log. This is because JobLogger's messages are written to the log on the main node during _post_evaluation_callback which will not be hit if we error out beforehand. However, if we choose to write the JobLogger's messages in the callback, the messages will be written on a potentially-remote node that is not accessible to the main process.
The acceptance criteria for closing out this issue is: we need a way to raise an error and have the logs from that node accessible to the main node. The potentially-remote node's log must be accessible to the python code calling evalml.
Freddy had mentioned a few suggestions, including:

Not logging to a file and just to stdout. This doesn't feel too great though--as a user, I'd like to have a log of what was executing before my process errored out
Have raise_error_callback not error out (and just write to the JobLogger), then check in AutoMLSearch if we should raise an error. I worry that this may be confusing to users: if they write a custom callback method to raise an error, AutoMLSearch would not actually raise the error. Perhaps we could have some logic to check if any exception was raised?

Assigning to @chukarsten because I think this is directly related to parallel automl and he's leading that project. If I'm wrong please come chat with me!

Discussed with @chukarsten . We think we should hold off on this until the concurrent futures engine ™ is completed.


Fix typo guarding memfd export on android.

Extremely minor but crucial typo on import guard from #1773. @flxo

Thanks @detly!


Scripts tests fail when specifying PIPELINE_DESCRIPTOR

After specifying PIPELINE_DESCRIPTOR parameter in a seed pipeline to use PWS-specific file, the execution fails with ok 154 sourcing pipeline.sh should export an env var with lower case env var message. Also, many other tests output error messages without failing.

We've decided to create a separate CI job for the whole project. The seed jobs will be executed with test skipping.


bug: nvim_buf_set_lines() causes Assertion buf->b_signcols.count[prevwidth - 1] >= 0' failed.`

Neovim version (nvim -v)
NVIM v0.11.0-dev-322+ge7020306a Build type: RelWithDebInfo LuaJIT 2.1.1716656478
Operating system
Linux
Terminal emulator / GUI
Kitty
Describe the bug
When I run nvim_buf_set_lines() in a function...
;; Example
(fn M.set_title [title]
  (local line_count (api.nvim_buf_line_count 0))
  (var done false)
  (for [i 0 (- line_count 1) &until done]
    (local line (. (api.nvim_buf_get_lines 0 i (+ i 1) false) 1))
    (when (line:match "^#%s*(.+)")
      (local heading (.. "# " title))
      (api.nvim_buf_set_lines 0 i (+ i 1) false [heading])
      (set done true))))

... I get the following error:
nvim: /home/runner/work/neovim/neovim/src/nvim/decoration.c:857: buf_signcols_count_range: Assertion `buf->b_signcols.count[prevwidth - 1] >= 0' failed.

It doesn't cause the error when I disable the rendering.
Expected behavior
To not cause an error when I run nvim_buf_set_lines().
Healthcheck output (:checkhealth render-markdown)
render-markdown: require("render-markdown.health").check()

markdown.nvim [nvim-treesitter] ~
- OK installed
- OK markdown: parser installed
- OK markdown_inline: parser installed
- WARNING latex: parser not installed
  - ADVICE:
    - Disable LaTeX support to avoid this warning by setting { latex = { enabled = false } }
- OK highlights enabled

markdown.nvim [executables] ~
- WARNING latex2text: not installed
  - ADVICE:
    - Disable LaTeX support to avoid this warning by setting { latex = { enabled = false } }

markdown.nvim [configuration] ~
- OK valid

Additional information
No response

I can workaround this by calling  vim.api.nvim_buf_clear_namespace() before nvim_buf_set_lines(), but then running undo would then cause the error.

How are you running this function? Is it part of an auto command or some user command?

The function is part of a user command.
And the language is Fennel which transpiles to Lua. It's less verbose, but has poor tooling, which I'm fine with since I can workaround this by viewing the lua output file.

I'm going to need a reproducible example, as it definitely has to do with some specific behavior in your user command that I can't trigger on my side and not just nvim_buf_set_lines in general.
I added the following commands to my config:
vim.api.nvim_create_user_command('TestWriteH0', function()
    vim.api.nvim_buf_set_lines(0, 0, 1, false, { 'Test H0' })
end, {})

vim.api.nvim_create_user_command('TestWriteH1', function()
    vim.api.nvim_buf_set_lines(0, 0, 1, false, { '# Test H1' })
end, {})

vim.api.nvim_create_user_command('TestWriteH2', function()
    vim.api.nvim_buf_set_lines(0, 0, 1, false, { '## Test H2' })
end, {})

Which overwrite the first line of a file with different headings at different levels.
No matter how I ran them or in what order nothing errors.

Found out it occurs when I enable luukvbaal/statuscol.nvim or when I have the vim option statuscolumn set as %=%s%{v:relnum?v:relnum:v:lnum}%C
It seems certain status column config conflict with running nvim_buf_set_lines() when texts are concealed? Very odd.

Huh, I am unable to reproduce this behavior with either the plugin or the statuscolumn value.
Can you give me a file & a user command that trigger this issue?

(local api vim.api)

(local M {})

(fn M.rename []
  (M.set_title "Test"))

(fn M.set_title [title]
  (local line_count (api.nvim_buf_line_count 0))
  (var done false)
  (for [i 0 (- line_count 1) &until done]
    (local line (. (api.nvim_buf_get_lines 0 i (+ i 1) false) 1))
    (when (line:match "^#%s*(.+)")
      (local heading (.. "# " title))
      (api.nvim_buf_set_lines 0 i (+ i 1) false [heading])
      (set done true))))

(vim.api.nvim_create_user_command
  "MdRename"
  #(M.rename)
  {})

The error occurs when running :MdRename even after commenting out all vim options except statuscolumn and commenting out all plugins except for lazy.nvim and markdown.nvim.

Here's the sample markdown file where having a second heading causes the error:
# Heading 1
## Heading 2

The error has also occurred when I used another command that uses nvim_buf_set_text() to swap a node that contains a checkbox or a node that contains a table.

I forgot a crucial part. My config:
   {1 "MeanderingProgrammer/markdown.nvim"
    :name "render-markdown"
    :dependencies ["nvim-treesitter/nvim-treesitter"
                   "nvim-tree/nvim-web-devicons"]
    :opts
     {:headings [ "󰼏 " "󰎨 " "󰼑 " "󰎲 " "󰼓 " "󰎴 "]}}

Commenting out the headings opt prevents the error on that certain command. But it doesn't prevent the error when applying nvim_buf_set_text() to nodes with a checkbox or a table.
A pattern seems to be that the error occurs when the concealment adjusts the visual position of the text and you apply nvim_buf_set_lines() or nvim_buf_set_text() on said text.

Based on your config you're running an older version of this plugin, since headings are now set with:
{ heading = { icons = { "󰼏 " "󰎨 " "󰼑 " "󰎲 " "󰼓 " "󰎴 " } } }

If you update the plugin does the error still happen?
I wrote this version of your user command:
vim.api.nvim_create_user_command('MdRename', function()
    local line_count = vim.api.nvim_buf_line_count(0)
    for i = 0, line_count - 1 do
        local line = vim.api.nvim_buf_get_lines(0, i, i + 1, false)[1]
        if line:match('^#%s*(.+)') then
            local heading = '# Test'
            vim.api.nvim_buf_set_lines(0, i, i + 1, false, { heading })
            return
        end
    end
end, {})

Which I believe should do the same thing, but am unable to get any errors from the sample file.
When you say:

A pattern seems to be that the error occurs when the concealment adjusts the visual position of the text and you apply nvim_buf_set_lines() or nvim_buf_set_text() on the text?

With headings nothing is concealed (at least by default), so is this an example that doesn't follow the pattern or do you have something concealing the # of headings or something to that effect?

Yes, I still get the errors.
When I say concealed, I meant the rendering is enabled such as those icons.
Try swapping lines where one of them contains a checkbox item or a table and see if you get errors while you have the statuscolumn value and the rendering enabled.

So I set this as my entire config
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '

vim.opt.statuscolumn = '%=%s%{v:relnum?v:relnum:v:lnum}%C'

vim.keymap.set('n', '<A-j>', '<cmd>m .+1<cr>==', { noremap = true, silent = true })
vim.keymap.set('n', '<A-k>', '<cmd>m .-2<cr>==', { noremap = true, silent = true })

vim.api.nvim_create_user_command('Md1', function()
    local line = vim.api.nvim_win_get_cursor(0)[1] - 1
    vim.api.nvim_buf_set_lines(0, line, line + 1, false, { '# Heading 1' })
end, {})

vim.api.nvim_create_user_command('Md2', function()
    local line = vim.api.nvim_win_get_cursor(0)[1] - 1
    vim.api.nvim_buf_set_lines(0, line, line + 1, false, { '- [ ] Unchecked' })
end, {})

vim.api.nvim_create_user_command('Md3', function()
    local line_count = vim.api.nvim_buf_line_count(0)
    for i = 0, line_count - 1 do
        local line = vim.api.nvim_buf_get_lines(0, i, i + 1, false)[1]
        if line:match('^#%s*(.+)') then
            local heading = '# Test'
            vim.api.nvim_buf_set_lines(0, i, i + 1, false, { heading })
            return
        end
    end
end, {})

local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not vim.uv.fs_stat(lazypath) then
    local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
    vim.fn.system({ 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath })
end
vim.opt.rtp:prepend(lazypath)

require('lazy').setup({
    {
        'MeanderingProgrammer/markdown.nvim',
        config = function()
            require('render-markdown').setup({})
        end,
    },
})

Then wrote this markdown file:
# Heading 1
## Heading 2
- [x] Checked
- [ ] Unchecked

Here's a recording of what happens as I move lines around and run the various user commands:


Refactor /api/v1/org/ and /api/v1/org/users

@Kartones , @rafatower , @xavijam same question than #3662, this looks like it's not used anymore.

Not even from central?

Uhm, doesn't Kibana logs Central requests as well? cc @zenitraM

only used by 3 people

We don't log on Kibana requests done to Central, but we should be logging
calls done to UI from Central
On Tue, May 19, 2015 at 11:00 AM, Rafa de la Torre<EMAIL_ADDRESS>
wrote:

only used by 3 people
—
Reply to this email directly or view it on GitHub
https://github.com/CartoDB/cartodb/issues/3676#issuecomment-103405229.

@rafatower I've updated Kibana query removing those queries that look like org endpoints query but they're not. There's been only one valid request in 2015, without referrer.
I can't find any usage of this. Central seems to use /superadmin/ routes. If you take a look at the controller it looks like it was done thinking in JS API (see current_user usage), and it has not changed since the first commit (June, 12). I'd delete it unless @Kartones or @xavijam see something I don't.

@xavijam JS organization model uses that endpoint, but I can't trigger them, are they actually used?

Yes and no -> https://github.com/CartoDB/cartodb/blob/master/lib/assets/javascripts/cartodb/models/organization.js#L28

:-\
I guess I should keep those endpoints then, since JS code points to them (although they're currently "disabled"), isn't it?

It is disabled, yep.

Sorry, I haven't explained well. I was asking about keeping them or deleting them. We're refactoring all API endpoints: all of them will use the new v1_1 requests, and we're deleting the unused ones. My question was not whether it's disabled but whether I should keep (and refactor) it or deleting them.
If there's a good reason for keeping that JS code, even if currently disabled, I will create the new endpoint and controller. If it's not, I'll delete the endpoints and controller (and maybe I should delete JS code as well).

Closing because there's no point in refactoring unused code.


Bug: orderBy() function is not working when delete() function is used in query builder

$sql = "DELETE FROM `table_name` WHERE `feed_id` = " . $feed_id . " ORDER BY `date` ASC LIMIT 25"; // query to be executed

$result = $this->db->table('table_name')
        ->where('feed_id', $feed_id)
        ->orderBy('date', 'ASC')
        ->limit(25)
        ->delete();
echo $this->db->showLastQuery(); // DELETE FROM `table_name` WHERE `feed_id` = 15 LIMIT 25

orderBy() function is not working when delete() function is used in query builder.

What database driver are your using?

I see that the $QBOrderby property is never used in any driver so this is not a bug but a missing feature for deletes.
Are you willing to tackle this?

DB layer was ported from CI3 and we supported there a lot more databases. Not every one of them supported ORDER BY with DELETE. That's why we don't have this feature today.
With currently supported databases, it's now doable. Though SQLSRV may be a little tricky.


Added partial messages that form a larger one

Added a semi-rough way to split a large byte[] into multiple messages. On the other end, the messages are rebuilt in the right order even if sent out of order.
Added a new attribute 'MessageHandlerProgress' which calls the method it is attached to when Riptide gets a partial message. It also calls the original MessageHandler method when it receives all of the partial messages and, crappily, injects the byte[] into the message parameter's variable
How to setup:
Server Side

Add an enum to ServerToClientId named "PartialMessageInbound"
Add another enum to ServerToClientId named "PartialMessage"
Add one more enum to ServerToClientId named whatever you want to send the message to. For this example name it "DownloadMap"

Client Side

Copy the ServerToClientId enum from the server side
Create a static void method with the "MessageHandler" attribute with the ServerToClientId.DownloadMap passed in. (Same as a normal message)
If you want to get the progress of the partial messages, create another static void method with the "MessageHandlerProgress" attribute with the same ServerToClientId as setp 2

How to use:
Server Side
byte[] mapBytes = File.ReadAllBytes(@"E:\SpaceRP Server\Assets\StreamingAssets\testbundlemovement")

PartialMessageHandler.SendPartialMessage((ushort)ServerToClientId.PartialMessageInbound, (ushort)ServerToClientId.PartialMessage, (ushort)ServerToClientId.DownloadMap, mapBytes, fromClientId, PartialMessageHandler.MessageDirection.SendToClient);

Client Side
    [MessageHandler((ushort)ServerToClientId.DownloadMap)]
    private static void DownloadMapPlz(Message message)
    {
        var path = Path.Combine(System.IO.Directory.GetCurrentDirectory(), "Downloads");
        Directory.CreateDirectory(path);

        path = Path.Combine(path, "Maps");
        Directory.CreateDirectory(path);

        path = Path.Combine(path, "downloadedBundle");

        File.WriteAllBytes(path, message.Value);

        var asseteBundle = AssetBundle.LoadFromFile(path);
        var scenePaths = asseteBundle.GetAllScenePaths();
        SceneManager.LoadScene(scenePaths[0], LoadSceneMode.Additive);
    }

    [MessageHandlerProgress((ushort)ServerToClientId.DownloadMap)]
    private static void DownloadMapProgress(PartialMessageProgress message)
    {

    }

Things to note:

I couldn't find a good way to get the server and client from within the PartialMessageHandler so I set a reference of the server and client in their Start();
I had to add a new property to Message called 'Value' since I couldn't figure out how to get away from the message data length too big errors
I also tried to find a way to make this more automatic without requiring the 2 PartialMessage and PartialMessageInbound message ids but I couldn't think of a good way
Also in PartialMessageHandler I couldn't find a good way to get the unwritten length of a message to split into appropriate size chunks so I hard coded it to 1237 for now

Auto-splitting of large messages has been asked for more than once, but I probably won't merge this PR. Another thing I potentially want to explore is auto-batching of messages, and that might be able to use similar logic to an auto-splitting system for large messages.
I also think that something like this may be better as a decoupled helper class rather than an internalized feature...
That being said, if you need this functionality in order to send map data, there could be a better way of doing that, as sending the entire map data is rarely truly necessary:

If your map is procedurally generated, you could just send the seed to clients and have them recreate the terrain based on that (or send the data for each chunk separately).
If you have prebuilt maps, you could assign each one an ID and send that, which clients could use to load the correct scene/prefab.
If your map(s) are user-generated/built, sending the data with Riptide may just not be the way to go. Presumably you'd be storing the map data somewhere (like in a database), in which case giving clients read access to that or using a proper file transfer system would likely be better. Riptide isn't designed for transferring files, and while I'm not entirely opposed to changing that, it likely still won't be the best tool for the job.

Just for future reference, there are also a few coding style/formatting-related things that would keep me from merging this PR in its current state:

Commit messages should be written in the imperative mood (at least for this repo, you can obviously do what you like in your own repos), so instead of Added partial [...] it would be Add partial [...].
There's a new .gitignore file in your commit.
The curly braces are unnecessary around if statement bodies and getters/setters when they only consist of a single line, and I prefer leaving them out in those cases.
The changes to the RiptideNetworking.csproj file would need to be reverted—Visual Studio automatically adds those lines when creating new files, but it prevents the new files from being copied to the UnityPackage folder.

I should probably put some guidelines for PRs somewhere 🤔

I've removed the .gitignore and fixed the .csproj file

I'm going to close this now (should've done so a while ago) as v2.0.0 made it possible to increase the maximum message size. Doing so should still be avoided when possible, but Riptide will never be the best tool for transferring files anyways (and I don't see it being worth it to try and change that).


add official python tutorial to resources

:+1:

I can't merge this btw.

@tschuy  I don't seem to have the power to change that :/


PlexPy - Theme Support

Thanks for the work on the PlexPy module.  Just a quick feedback, I'm using the plex them currently and the there are some inconsistencies with the theme.  Most noteably the current streams and history tab grid are not honoring the selected theme.

Current streams reused some CSS from the system monitoring which comes in three colors orange, blue and green.  I may be able to update this for the themes.  For the history table that uses a JQuery plugin which may have limited theming support, but I ill try and find something that works with most of the themes.  Thanks for the feedback.

@kyse can you update and see if your issue is fixed?

Looks a lot better.  Only thing I notice now is a few broken images and the last two boxes have undefined listed.  Probably not related to the CSS though.

@kyse I just did some more testing looks like there are cases where things get reset in plexpy that I didn't know about.  Will work on more fixes over the next couple of days.

@kyse didn't go away just got busy with some things still looking to produce fixes for this.


add support for cpu element in SVD

I haven't added any of the optional elements from the "cpu" tag, since we don't really need them at the moment.
Use case for this pull request is another pull request I'll be submitting shortly on svd2rust. I use the CPU name tag to see if we're not a Cortex M device, and if so, skip core peripheral generation.

:pushpin: Commit 99bc675 has been approved by japaric

Thanks @ahixon.
This looks correct as per the SVD specification. Let's see if all the SVD files in the test suite adhere to the spec ...
@homunkulus r+

:hourglass: Testing commit 99bc675 with merge 99bc675...


jQuery version numbers

Describe the bug
jQuery version numbers are influenced by the filename in some cases.
If I scan a folder containing jquery-1.6.4.min.js, Dependency-Check reports this as jquery version 1.6.4.min. If I rename that file to jquery-1.6.4.min2.js, again, I'll get version 1.6.4.min2. However, if I rename the file to jquery-3.5.1.min.js, then DC properly detects it as jquery 1.6.4 (and reports it as version 1.6.4).
Version of dependency-check used
The problem occurs using version 6.2.2 of the CLI.
To Reproduce
Steps to reproduce the behavior:

Put jQuery 1.6.4 in a folder (jquery-1.6.4.min.js)
Run a scan. The report will indicate jquery version "1.6.4.min"
Rename jquery-1.6.4.min.js to jquery-1.6.4.min2.js. Re-scan. The report will now indicate jquery version "1.6.4.min2"
Rename jquery-1.6.4.min2.js to jquery-3.5.1.min.js. Re-scan. The report will now indicate jquery version "1.6.4"
Finally, put another copy of jQuery 1.6.4 named jquery-1.6.4.min2.js alongside the fake jquery-3.5.1.min.js. Re-scan. The report will now indicate jquery version "1.6.4.min2" again and list jquery-3.5.1.min.js as a related dependency.

Expected behavior
I would expect the dependency to be reported as jquery version "1.6.4" in all scenarios above.

This is expected behavior using evidence based detection: https://jeremylong.github.io/DependencyCheck/general/internals.html

How are the version numbers detected for JS files? It seems like DC is able to verify the information being inferred from the filename, seemingly by hash, since if I rename the file to something completely incorrect, it gets detected properly.
In that case, why isn't hash a higher confidence than whatever random stuff comes from the filename? Is there any way for us to get the actual detected version for JS components? In my example above, "1.6.4.min" and "1.6.4.min2" are not real jQuery versions; it's just jQuery 1.6.4, but DC doesn't seem to expose that at all.


rtl_433 multiple time formats

If rtl_433 is configured to use fractional seconds (IIRC -M time:usecs), rtl_watch throws an error because there is unparsed data in strptime().
Adding .%f (fractional seconds) to the strptime string %Y-%m-%d %H:%M:%S.%f resolves that but will fail if fractional seconds aren't present.
strptime() is pretty rigid for parsing.  Suggest trying datetime.fromisoformat().  However, It won't handle the case if rtl_433 has been configured to output epoch seconds, but it is part of the default library, so no additional installs.
< eTime = time.mktime(time.strptime(y["time"], "%Y-%m-%d %H:%M:%S.%f"))
--
> eTime = datetime.fromisoformat(y["time"]).timestamp() `

Stack trace as an FYI
(py310) G:\git\rtl_watch>python rtl_watch.py
subscribed to mqtt feed
Connected to MQTT Broker!
Exception in thread Thread-1 (_thread_main):
Traceback (most recent call last):
  File "C:\sw\Anaconda3\envs\py310\lib\threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "C:\sw\Anaconda3\envs\py310\lib\threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "C:\sw\Anaconda3\envs\py310\lib\site-packages\paho\mqtt\client.py", line 3591, in _thread_main
    self.loop_forever(retry_first_connection=True)
  File "C:\sw\Anaconda3\envs\py310\lib\site-packages\paho\mqtt\client.py", line 1756, in loop_forever
    rc = self._loop(timeout)
  File "C:\sw\Anaconda3\envs\py310\lib\site-packages\paho\mqtt\client.py", line 1164, in _loop
    rc = self.loop_read()
  File "C:\sw\Anaconda3\envs\py310\lib\site-packages\paho\mqtt\client.py", line 1556, in loop_read
    rc = self._packet_read()
  File "C:\sw\Anaconda3\envs\py310\lib\site-packages\paho\mqtt\client.py", line 2439, in _packet_read
    rc = self._packet_handle()
  File "C:\sw\Anaconda3\envs\py310\lib\site-packages\paho\mqtt\client.py", line 3033, in _packet_handle
    return self._handle_publish()
  File "C:\sw\Anaconda3\envs\py310\lib\site-packages\paho\mqtt\client.py", line 3327, in _handle_publish
    self._handle_on_message(message)
  File "C:\sw\Anaconda3\envs\py310\lib\site-packages\paho\mqtt\client.py", line 3570, in _handle_on_message
    on_message(self, self._userdata, message)
  File "G:\git\rtl_watch\rtl_watch.py", line 228, in on_message
    eTime = time.mktime(time.strptime(y["time"], "%Y-%m-%d %H:%M:%S"))
  File "C:\sw\Anaconda3\envs\py310\lib\_strptime.py", line 562, in _strptime_time
    tt = _strptime(data_string, format)[0]
  File "C:\sw\Anaconda3\envs\py310\lib\_strptime.py", line 352, in _strptime
    raise ValueError("unconverted data remains: %s" %
ValueError: unconverted data remains: .542401

Thanks for the feedback and analysis.   Obviously, my rtl_433 was set up to report just seconds in the JSON log.  I'll go back and test your suggestion and update the code.
I think I've used the same approach in my other code, so I'll need to go back and fix them all and document the problem for anyone using epoch seconds.
David

Instead of documenting that -M time:utc (IIRC) doesn't work try something like this (off the top of my head)
 def parse_ts(ts):
    """Parse timestamp string in ISO format timestemps or epoch seconds"""
     if ts.find('-') > 1: # rtl_433 yyyy-mm-dd hh:mm:ss{.f]
         return datetime.datetime.fromisoformat(ts).timestamp()
     else: # assume epoch seconds or epoch seconds with fraction
         return float(ts)

There are utilities like dateutil that will accept many timestamp formats, but they aren't part of the standard library or can be slow.

Thanks for the suggestion, Rob.  I've incorporated the fix to process either UTC or Epoch time format into rtl_watch as well as DNT and rtl_433_stats.
The edits in rtl_watch may currently be only in the v2.0.0 (development) branch, which you can download, but I hope to merge that into the main branch shortly.


TasitAcount.Contract test case for late subscription to a tx confirmation event

Expected:
// draft
const tx = contract.transfer(from, to, amount);
await mineBlocks(9)
tx.on('confirmation', (message) => {
  expect(message.data.confirmations).to.equal(10);
  fakeFn();
})
await mineBlocks(1)
expect(fakeFn.callCount).to.equal(1);

@marcelomorgado Can we reword test case for let subscription to a tx confirmation event in the name of this issue? I can't tell what that's supposed to mean. Thanks!

Actually, I don't remember exactly what that means.
Looking at the draft above, I think that issue is deprecated because:

We don't have const subscription = contract.subscribe() anymore
and
We already have a test case that is testing that "late subscription" scenario.

I'll be more explicit on the next issues creation.

Ah yeah, I think maybe you meant late rather than let
If we already have a test case for the late subscription scenario, then yes I think this issue may be done already.
I think even without contract.subscribe, it still makes sense to have two tests for sending an action, where the listener is added before or after some blocks are mined

@marcelomorgado If you agree with the above points and we already have this test, feel free to close the issue

Yes, we already have that test case: https://github.com/tasitlabs/TasitSDK/blob/af167f621b9ef80beac8c1d2474293a3ebd3add1/packages/tasit-action/src/contract/Contract.test.js#L298
Closing this.


Do not import set_handler from bluesky.log

This PR address the problem of unexpected bluesky console logging first observed at BMM.
Description
Removing the line
from .log import set_handler

from bluesky/__init__.py resolves the problem. It may be that bluesky/log.py should be completely removed.
How Has This Been Tested?
This change was tested while running scans at SRX.
In addition logging_tree confirms that the unwanted logging handler is added by the specified import.
Before removing the import:
 o<--"bluesky"
   |   Level INFO
   |   Handler Stream <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
   |     Formatter <bluesky.log.LogFormatter object at 0x7fd456e20b38>
   |   Handler TimedRotatingFile '/home/xf05id1/.cache/bluesky/log/bluesky.log' when='W0' interval=604800 backupCount=10
   |     Level INFO
   |     Formatter fmt='[%(levelname)1.1s %(asctime)s.%(msecs)03d %(name)s  %(module)s:%(lineno)d] %(message)s' datefmt=None

After removing the import:
  o<--"bluesky"
   |   Level INFO
   |   Handler TimedRotatingFile '/home/xf05id1/.cache/bluesky/log/bluesky.log' when='W0' interval=604800 backupCount=10
   |     Level INFO
   |     Formatter fmt='[%(levelname)1.1s %(asctime)s.%(msecs)03d %(name)s  %(module)s:%(lineno)d] %(message)s' datefmt=None

Like email from a Nigerian prince it was too good to be true. I got confused about which collection environment I was in.
But maybe we should think about using bluesky.log when setting up logging in nslsii.configure_base(...).


Missing LICENSE file

Hi, although the composer.json states the library is distributed under MIT, there's no LICENSE file in root. Could you add it? Thank you.

@ondrejmirtes - Thanks for the heads up. This has been added.

Thank you :)


clickMapObject

Me again. I have been struggling with how to determine which country was selected in the map. I create an array of countries which I use to populate other charts data.
In my website .js version I do this:
var arrCountry = [];
map.addListener('clickMapObject', function (event) {
arrCountry = [];
var selectedCountry = event.mapObject.id;
arrCountry.push(selectedCountry);
}
I don't know how to reference 'clickMapObject' for iOS.
Also, I can't figure out what to call when I 'manually' want to select a country. (A search result will return a country that I use to select in map)
My code is Swift - I am happy to have any help in Objective-c and I can just translate
var countryArray = ["US"];
for sArea in map.mapDataProvider.areas as NSArray as [AmMapArea]{
var areaID = sArea.uid;
if contains(countryArray, areaID!){
sArea.showAsSelected = true; // highlights
// How to zoom here? ( I am using an array but in this case it will always only have one country)
}else{
sArea.showAsSelected = false;
}
Thank you

Please ask questions about personal projects on StackOverflow.  This space is reserved for bugs with the AmCharts wrapper library.