Thanos receiver adopted remote write headers for multi tenant

Hi Team
We wonder to adopt HTTP headers of remote write via prometheus setup to send metrics for Thanos to achieve multi-tenant. But currently we cannot sure the behavior whether exactly. So wanna to confirm if any missing configuration.
thanos-receiver parameters
      - args:
        - receive
        - --grpc-address=<IP_ADDRESS>:10901
        - --http-address=<IP_ADDRESS>:10902
        - --remote-write.address=<IP_ADDRESS>:19291
        - --receive.replication-factor=1
        - --receive.hashrings-file-refresh-interval=1m
        - --receive.hashrings-algorithm=ketama
        - --objstore.config-file=/etc/thanos/objectstorage.yaml
        - --tsdb.path=/var/thanos/receive
        - --tsdb.retention=6h
        - --tsdb.out-of-order.time-window=2h
        - --receive.tenant-header="THANOS-TENANT"
        - --receive-forward-timeout=5m
        - --label=receive_replica="$(NAME)"
        - --label=receive="true"
        - --tsdb.no-lockfile
        - --tsdb.allow-overlapping-blocks
        - --receive.hashrings-file=/etc/thanos/thanos-receive-hashrings.json
        - --receive.local-endpoint=$(NAME).thanos-receive.thanos.svc.cluster.local:10901

thanos-receive-hashrings.json
    [
        {
          "hashring": "soft-tenants",
          "endpoints": [
              "thanos-receive-0.thanos-receive.thanos.svc.cluster.local:10901",
              "thanos-receive-1.thanos-receive.thanos.svc.cluster.local:10901",
              "thanos-receive-2.thanos-receive.thanos.svc.cluster.local:10901",
              "thanos-receive-3.thanos-receive.thanos.svc.cluster.local:10901"

          ]
        },
        {
          "hashring": "tenant-testing",
          "endpoints": [
              "thanos-receive-3.thanos-receive.thanos.svc.cluster.local:10901",
              "thanos-receive-4.thanos-receive.thanos.svc.cluster.local:10901"
          ],
          "tenants": ["testing"]
        }
    ]

Prometheus manifest via CLI
$ k get prometheus/prometheus -n cic-system -o yaml

  externalLabels:
    cluster: rm-uat
    project: rm
    purpose: staging
  externalUrl: https://prometheus.rm-uat.xxxxxxxxxxx.io.com
  image: quay.io/prometheus/prometheus:v2.42.0
  listenLocal: false
  logFormat: logfmt
  logLevel: info
  paused: false
  podMetadata:
    annotations:
      sidecar.istio.io/inject: "false"
    labels:
      app: prometheus
      prometheus: prometheus
  podMonitorNamespaceSelector: {}
  podMonitorSelector: {}
  portName: web
  probeNamespaceSelector: {}
  probeSelector:
    matchLabels:
      release: prometheus
  remoteWrite:
  - headers:
      THANOS-TENANT: testing
    url: http://thanos-receive.thanos.xxxxxxxx/api/v1/receive

Prometheus revision: v2.42.0
Thanos receive revision: v0.31.0
issue as screenshot
As far as i know the tenant_id need to be tenant_id=testing. But currently only showing default-tenant. Just wanna confirmed if any misunderstanding?

I'am has been fix issue on my end since updated - --receive.tenant-header=THANOS-TENANT without quote. It would become expected.


Add employee risk assessment smart answer

Use this service to find out if you should go back to your place of work at this phase of coronavirus lockdown, and what you can do if you should not be going into work.
https://trello.com/c/NaXjzKiX/29-build-smart-answer-for-labs

Looks good to me. Does it need content / product review? https://smart-answer-covid-19-e-kemccc.herokuapp.com/coronavirus-employee-risk-assessment

Thanks @sihugh - the current content has been reviewed, there will be a few changes coming in but wanted to get it merged in as a draft for now so we can split work up better without having to do everything on one branch


CPP: Update change notes.

Might be best if I fix this up after https://github.com/Semmle/ql/pull/1811 is merged?

Sorry for the overlap @geoffw0. Would it be more efficient for you to edit my PR directly since it's a small change?

Yep you're probably right.


Fix safe area containers causing potentially incorrect display

Resolves #2748
Fixes the case where a SafeAreaContainer's padding may be set greater than than its DrawSize, potentially causing inverted children.
Also fixes TestSceneSafeAreaContainer's checkboxes not triggering an update of the test containers.

I'd like to do a bit more testing on this before it gets merged, just to make sure it covers any edge cases.

Alright, looks good.  I just wanted to verify that it could handle SafeAreaContainers that clipped both top/bottom and left/right spans.


Does this project support chatgpt plus multi tokens?

I have 10 ChatGPT Plus accounts (Don't ask how, but it's thanks to my university).
With this project is it possible to use multiple chatgpt plus tokens?
What I want to achieve is to use the 10 different chatgpt plus tokens that I have and if at some point a token already spent its use of gpt4 automatically use another token.

Hi, that is a pretty niche case so no, there is no built-in method to rotate tokens for you. However, if you set the following env var in your .env file, you can simply change the token from the UI whenever you wish
##########################
# ChatGPT Endpoint:
##########################

# ChatGPT Browser Client (free but use at your own risk)
# Access token from https://chat.openai.com/api/auth/session
# Exposes your access token to `CHATGPT_REVERSE_PROXY`
# Set to "user_provided" to allow the user to provide its token from the UI.
# Leave it blank to disable this endpoint
CHATGPT_TOKEN="user_provided"

Awesome! Thanks for trying it out


Feature/tvos ios one build script

Single build script that builds for ios and tvos.
python3 scripts/gha/build_ios_tvos.py

Build for iOS and tvOS.

optional arguments:
  -h, --help            show this help message and exit
  -b BUILD_DIR, --build_dir BUILD_DIR
                        Name of build directory.
  -s SOURCE_DIR, --source_dir SOURCE_DIR
                        Directory containing source code (top level CMakeLists.txt)
  -p PLATFORM [PLATFORM ...], --platform PLATFORM [PLATFORM ...]
                        List of platforms to build for.
  -a ARCHITECTURE [ARCHITECTURE ...], --architecture ARCHITECTURE [ARCHITECTURE ...]
                        List of architectures to build for.
  -t TARGET [TARGET ...], --target TARGET [TARGET ...]
                        List of CMake build targets
  -o OS [OS ...], --os OS [OS ...]
                        List of operating systems to build for.

In addition to building frameworks for all os/platform/architecture combinations, it will also build "universal" frameworks and "xcframeworks".
The xcframeworks being generated contain both ios and tvos libraries.
Other notable change is a new "merged" Info.plist template file that contains entries for both ios and tvos.

Is there still a build script in build_scripts/ios?

Is there still a build script in build_scripts/ios?

For now, yes as our documentation needs to be updated too. Infact, there are build scripts specifically for tvos.
I will clean things up after ensuring the new xcframeworks work as expected.

argparse is good. But I wasn't sure if you noticed Google's practice of Command line parsing

I personally feel the benefit of using a standard library module argparse for simple standalone scripts like this is that we do not have any unnecessary external dependencies.

argparse is good. But I wasn't sure if you noticed Google's practice of Command line parsing

I personally feel the benefit of using a standard library module argparse for simple standalone scripts like this is that we do not have any unnecessary external dependencies.

Just wanna share that "absl" is an option and is used in our project.
And sure, I agree with you that it's good not to unnecessary external dependencies.

The iOS build workflow takes longer than before: https://github.com/firebase/firebase-cpp-sdk/actions/workflows/ios.yml
Originally, the builds for different architectures are in subprocesses.
Could you add similar features here with Thread?

Thanks for pointing this out. I did some quick tests to see what works best and I think multiprocessing is working great. For debugging purpose, threading/multiprocess makes it a little hard as the log output will be interleaved but we can look into it once it becomes a bigger issue.
Options (and local tests from macbook pro with 12 logical cores):
Comparison with current state of things (building everything serially):  29 minutes

Use cmake --build -j <cpu_count>
This options is great as just the build for a specific architecture is parallelized by cmake but it is very slightly slower than multiprocessing.
Time: 9m 32 s

Multithread
Time: 10m

Multiprocess
Time: 7m 56s

Since github runners have only 3 cores, these times are different but in general multiprocessing is definitely faster.

What's the plan about tvos?
If add tvos to the packaging workflow, probably need to update the release note later.

Thinking more about it, I think I will revert changes to github workflow files for now. It definitely helped to test the packaging workflow and make sure nothing broke in the process but we should truly include tvos once all the work on simulators on github is done.

Have removed changes to workflow files from this PR as we will wait until the work on tvos simulator integration tests on Github is done.
Though, this script was put through a test in cpp-packaging workflow and worked,
https://github.com/firebase/firebase-cpp-sdk/actions/runs/965593738


New version: Nushell.Nushell version 0.96.1

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

/azp run

/azp run


Add NPM package

+1

https://www.npmjs.com/package/angular-img-cropper

The npm package is apparently outdated, looks like done by another author.


Clean up gitignore files to have one at root of project

Ran into issue with running cargo test --release generating new binary files that were not being ignored properly because the file case did not match the case in the gitignore file in the same directory.
Would look to consolidate the ignored files to a single ignore file at the root of the project directory based on file extensions and directories and at this at the top to handle binary files with no extension.
#Do not modify these first three ignore rules.  Needed to ignore files with no extension
# Ignore all files including binary files that have no extension
*
# Unignore all files with extensions
!*.*
# Unignore all directories
!*/

# Add specific file extensions and directories below

Ignoring all files without extension sounds like a good idea but I'm not sure about using a single gitignore file, I'll ask on zulip.


SW-5979 Implemented feature to update country variable during boundary update

#2479  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tommylau523 and the rest of your teammates on  Graphite


Add some docs for OSX

Added the steps I had to take to build Hops on OSX

Proposed changes are already in master.


unsupported hive

My code:
await regedit.createKey(["HKEY_LOCAL_MACHINE\SOFTWARE\PFM"]);
regedit.putValue({
"HKEY_LOCAL_MACHINE\SOFTWARE\PFM": {
myname: {
value: myvalue,
type: "REG_SZ",
},
},
});

+1

Version 5.00 seems to work for me

this is fixed now, sorry for the delayed response to this. published on 5.1.2


Update AMDS Interface to AMDC

[x] Create "amds" development branch off of v1.3-staging in AMDC-Firmware
[x] Create branch off of develop in AMDS repo
[x] Get working AMDC+AMDS setup and probe the interface between the boards to understand the timing
[x] Update AMDS's firmware to send data back to AMDC's new IP driver over UART immediately after SPI communications from daughtercards are complete

Also see https://github.com/Severson-Group/AMDC-Firmware/issues/365

@codecubepi will make a new issue which documents the testing which needs to be completed before merging the PR linked to this.

See #388 and #389 in the AMDC-Firmware repo.


apt update is now required to install libevent-dev

Must be because the metadata in the image is now stale
https://travis-ci.community/t/unable-to-locate-package-libevent-dev/9608

https://staging.travis-ci.org/github/BanzaiMan/travis_staging_test/builds/762886


FINERACT-1526: Upgrade dependencies

Description
Some dependency updates (e. g. Checkstyle) required some minor code changes.

Have to investigate this failing email campaign test...


Fail to deploy the Jenkis VM.

{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.","details":[{"code":"Conflict","message":"{\r\n "status": "Failed",\r\n "error": {\r\n "code": "ResourceDeploymentFailure",\r\n "message": "The resource operation completed with terminal provisioning state 'Failed'.",\r\n "details": [\r\n {\r\n "code": "VMExtensionProvisioningError",\r\n "message": "VM has reported a failure when processing extension 'jenkinsInit'. Error message: \"Enable failed: failed to execute command: command terminated with exit status=100\"."\r\n }\r\n ]\r\n }\r\n}"}]}
Correlation Id: a0ec1a8e-64a4-424e-86f6-fa0890f8bfc3

could you check the log under /var/log/VMExtension... ?


Fix bugs with delimiter arrays

Bugs:

importing doesn't work,
adding tags insert many delmiters at once.


user is forced to log out after predefined time

[ ] delete chatbox components
[ ] force user to log out after about 1 min if he/she doesn't perform any operation
[ ] add alert message before user is forced logged out
[ ] If user closes the tab, backend will log user out in 2 mins

need to test with https://github.com/sopra-fs22-group-27/Pictionary-Server/pull/124

@SyLi9527 Great work man! Works fine. I think it is ready to merge


Hash transformer is too slow

I'm currently using RandomUuid for most of the columns but I was asked to hash the original values to maintain the same masked value.
I've replaced RandomUuid with Hash and what used to take less than a minute to dump/transform the data now takes 30 min.
This is what looks like the transformation config for 6 tables
    - schema: core
      name: users
      transformers:
        - name: Hash
          params:
            column: email
        - name: Hash
          params:
            column: first_name
        - name: Hash
          params:
            column: last_name

We will review the implementation. But I suspect it is due to the hash function. I think we should provide hash function choice and hash function params. We will try to resolve it in the next release.
For now, I can suggest a temporal solution. You can use a simple shell script to implement any hashing function. For instance
#!/bin/bash

while read line
do
   printf "%s" "$line" | md5sum | awk '{print $1}'
done

And  the config can be like:
    - schema: "humanresources"
      name: "employee"
      transformers:
        - name: "Cmd"
          params:
            driver:
              name: "text"
            expected_exit_code: -1
            skip_on_null_input: true
            executable: "/var/lib/playground/test.sh"
            columns:
              - name: "jobtitle"

The result

Read about Cmd transformer

I see that the current hash implementation is using an encryption algorithm, maybe a hash algorithm would be faster.
I'm going to push back this requirement for now until there is a built-in solution for it, thanks

Agreed. We will try to deliver it soon, but any contribution is appreciated. Thank you!

Another finding about the Hash transformer, it seems to generate duplicate values even for a small set of values.
I have a table users with 1000 records and the email column is unique (UNIQUE INDEX), when I use the Hash I get an error during pg_restore: ERROR:  could not create unique index \"users_email_ux\""

Yeah, a collision was caused. I will rewrite the implementation with the possibility of choosing a hash function (md5, sha1, SHA224/256/384/512). The expected release date is 14 February. Thank you so much for reporting.

Never mind, it was my fault, the UNIQUE INDEX has a FILTER condition allowing duplicate emails for deleted users.
Sorry for the false alarm.

FIxed in v0.1.5

I gave it a try,  the new hash transformer is crazy fast now, thank you


@tsed/mongoose - OverwriteModelError: Cannot overwrite User model once compiled.

Version: 5.32.1
After enough server restarts, I'm getting OverwriteModelError for an existing mongoose model which worked before. I'm still trying to understand why.
It already happened to me before with a different model, and it was fixed once I renamed it with a model name that hasn't been used before.
I'm really struggling to understand what's going on.
The name "User" is unique both as a mongoose model and as a class name within the app in general.
schemas/user/User.ts
import { Property } from '@tsed/common';
import { Model, ObjectID } from '@tsed/mongoose';

import SubSchema from './SubSchema';

@Model()
export default class User {

  @ObjectID('id')
  _id: string;

  @ObjectID()
  app_id: string;

  @Property()
  email: string;

  @Property()
  name: string;

  @Property()
  subSchema: SubSchema;

}

Error:
 { OverwriteModelError: Cannot overwrite `User` model once compiled.
    at new OverwriteModelError (D:\Projects\matchmakingApp\server\node_modules\mongoose\lib\error\overwriteModel.js:20:11)
    at Mongoose.model (D:\Projects\matchmakingApp\server\node_modules\mongoose\lib\index.js:517:13)
    at Object.createModel (D:\Projects\matchmakingApp\server\node_modules\@tsed\mongoose\src\utils\createModel.ts:25:19)
    at Model (D:\Projects\matchmakingApp\server\node_modules\@tsed\mongoose\src\decorators\model.ts:45:27)
    at DecorateConstructor (D:\Projects\matchmakingApp\server\node_modules\reflect-metadata\Reflect.js:541:33)
    at Object.decorate (D:\Projects\matchmakingApp\server\node_modules\reflect-metadata\Reflect.js:130:24)
    at __decorate (D:\Projects\matchmakingApp\server\build\models\schemas\user\User.js:4:92)
    at Object.<anonymous> (D:\Projects\matchmakingApp\server\build\models\schemas\user\User.js:76:8)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at Object.<anonymous> (D:\Projects\matchmakingApp\server\build\services\UserService.js:26:32)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
  message: 'Cannot overwrite `User` model once compiled.',
  name: 'OverwriteModelError' }

Hello @royibernthal
On stackoverflow I saw that:
So Another Reason why You might get this Error is if you use the same model in different files but your require path has a different case. For example in my situation I had:

require('./models/User') in one file and then in another file where I needed access to the User model I had require('./models/user').

I guess the look up for modules & mongoose is treating it as a different file. Once I made sure the case matched in both it was no longer an issue.

Can you check if you this problem ;)
See you
Romain

https://stackoverflow.com/questions/19051041/cannot-overwrite-model-once-compiled-mongoose

Hi @Romakita
The file name is using the exact same case in all of the imports.
As for
https://stackoverflow.com/questions/19051041/cannot-overwrite-model-once-compiled-mongoose
Is there any way I could be instantiating the same schema more than once? If I understand correctly, the instantiation is done by tsed under the hood, I'm simply injecting what's supposed to be a single instance.
The odd thing is, if I do a rename refactor for that model, to a name that wasn't used before, it works as expected.
On the other hand, if I refactor using a name that I used before, I get the same error. It's as if things are cached somewhere somehow.

Do you have a link where I can checkout your project ?

Sure, I omitted some auth stuff since this repo is public, but it's more or less complete:
https://github.com/royibernthal/matchmaking-server

@royibernthal I haven't error on https://github.com/royibernthal/matchmaking-server

@Romakita That's the point. It works in the beginning in a clean env, but I'm starting to get that error after the server has been restarted enough times (or so it seems). See what I wrote above about renaming and possible cache - if that makes sense.

@royibernthal Do you use our given command to start project ?
{
  "scripts": {
     "start": "nodemon --watch 'src/**/*.ts' --ignore 'node_modules/**/*' --exec ts-node src/index.ts"
  }
}

It should fix your problem in dev mode ;)

@Romakita Bingo :) That was the issue. I noticed it now in the optional package.json in getting started doc.

Maybe it should be emphasized more somewhere? Or is it emphasized in another place I missed?
I had to remove the single quotes for it to work for me. Does it work with the quotes for you? If no, maybe the example should be updated?
nodemon --watch src/**/*.ts --ignore node_modules/**/* --exec ts-node src/index.ts
How did using that command solve the issue? What I did before was compile ts manually and have nodemon watch the build dir.
Will I not encounter the same issue in prod?

Yes I'll change de documentation ;)
It depend on your Os. I'm on mac/linux and it works for me. Without single quote it works also. I'll update all example ;)
Hum an intuition ^^. Watching file built by tsc generate always issue (one of my contributors already ask me about that) due to Os filesystem, disk latency and deamon restart your app faster than the code is compiled. So this is what, I use a tsconfig with noEmit: true in dev mode to avoid filesystem issue (and  reach performance). I remove noEmit options when I build the source in production mode and run PM2 or node process over generated files.
Certainly not ^^

See you
Romain

Got it. Thanks a lot for the help and the explanations :)


[uwebsockets] update to 20.62.0

[X] Changes comply with the maintainer guide
[X] SHA512s are updated for each updated download
[ ] ~The "supports" clause reflects platforms that may be fixed by this new version~
[ ] ~Any fixed CI baseline entries are removed from that file.~
[ ] ~Any patches that are no longer applied are deleted from the port's directory.~
[X] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[X] Only one version is added to each modified port's versions file.

This will resolve the upgrade issue I added: https://github.com/microsoft/vcpkg/issues/37355


Create a tag

Please, could you create a tag of this repo that had relation with depthai-core release?
I have seen in #46  that maybe it would be merged in the main directory, but in the meantime create a tag could not be difficult.

We'll consider it for next release & merge it to main at that point


Is there a way to change your LND wallet seed once setup is running?

I want to change the LND 24 word seed without fresh install and keeping old setup. Is this possible?

What do you define as old setup?
Quoting Roasbeef:
Remove everything in the lnd application directory. The location depends on you OS, for example will be in ~/.lnd for linux.
https://github.com/lightningnetwork/lnd/issues/1216


Ship esm for connect-query (in addition to cjs)

closes #17
It doesn't seem like this needs to also be done for the protoc generator, but please someone correct me if I'm wrong.

Are there any plans to merge this?

Would also like to know if there is any progress on this?

@timostamm would you mind taking another look.  I gave this one a completely fresh start, and I think it is hopefully close.  Are there extra fields that should be added to the /build/cjs/package.json and /build/esm/package.json files?  Maybe dependencies related fields?

@dimitropoulos Thank you, will give alpha a try.

@dimitropoulos I tried it out on the marketing site for buf (which is now using connect-query 🎉 ) but am still running into this issue. I have to explicitly tell nextjs to transpile connect-query:
error - Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/paulsachs/code/buf.build/node_modules/@bufbuild/connect-query/dist/esm/src/create-query-service' imported from<EMAIL_ADDRESS>    at new NodeError (node:internal/errors:372:5)
    at finalizeResolution (node:internal/modules/esm/resolve:437:11)
    at moduleResolve (node:internal/modules/esm/resolve:1009:10)
    at defaultResolve (node:internal/modules/esm/resolve:1218:11)
    at ESMLoader.resolve (node:internal/modules/esm/loader:580:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:294:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:80:40)
    at link (node:internal/modules/esm/module_job:78:36)

I'm guessing it's because these files don't include the .js extensions.

@dimitropoulos We are facing the same issue @paul-sachs mentioned
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/sher/app/node_modules/@bufbuild/connect-query/dist/esm/src/create-query-service' imported from<EMAIL_ADDRESS>    at new NodeError (node:internal/errors:399:5)
    at finalizeResolution (node:internal/modules/esm/resolve:326:11)
    at moduleResolve (node:internal/modules/esm/resolve:945:10)
    at defaultResolve (node:internal/modules/esm/resolve:1153:11)
    at nextResolve (node:internal/modules/esm/loader:163:28)
    at ESMLoader.resolve (node:internal/modules/esm/loader:838:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:77:40)
    at link (node:internal/modules/esm/module_job:76:36) {
  code: 'ERR_MODULE_NOT_FOUND',
  page: '/'
}

ok, thanks for the feedback, I'll keep trying.  There's another approach we can take but it creates a problem for the connect-query codebase.  I'll give that a shot.

I think I fixed it now, maybe? (pushed to a different branch until I see if this worked).

nix the above: @paul-sachs and I found a different problem with it in manually testing it.  I am closing this PR and trying (:yawning_face: yet again) a different approach in https://github.com/bufbuild/connect-query/pull/39.


Reddit link: Success: I have a working setup of ImGui on Vulkan.

https://www.reddit.com/r/rust/comments/crb7q7/success_i_have_a_working_setup_of_imgui_on_vulkan/

Well done. We also use imgui with ash at embark. :)


Revisit responsive typography

This theme does a great job at managing responsive font sizes. But I noticed there's a need for another breakpoint for larger viewports. To get a feel for what I mean on OS X open System Preferences and access Displays, and scale for More Space as shown here:

Here's an example of what the theme looks like with the More Space setting on a Retina display with a full-screen browser window:

As you can see things are a bit eye-straining. As a result, next time responsive typography is revisited please consider adjusting based on the guidance here:
https://ia.net/know-how/responsive-typography-the-basics
https://ia.net/know-how/100e2r
And take a peek at how iA looks at the More Space setting:

Cheers!

This one is actually pretty easy to fix. I purposely set type in relative units like ems and rems to globally scale font-sizes and white space up/down.
Inside of _reset.scss there's this line that bumps up the base font size from the default of 16px to 18px. Could easily add another breakpoint to go to 20px` for larger screens.
I'm not at my iMac currently, but if you wanted to test this minor change and see if it improves things that would be cool.

html {
  /* apply a natural box layout model to all elements */
  box-sizing: border-box;
  background-color: $background-color;
  font-size: 16px;

  @include breakpoint($medium) {
    font-size: 18px;
  }

+  @include breakpoint($large) {
+    font-size: 20px;
+  }

  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

If type goes to large too quick might work better on $x-large instead.


seg fault generating for wasi-http

~/go/bin/wit-bindgen-go generate wasi-http.json
Output dir: .
Package root: github.com/dev-wasm/dev-wasm-go/lib/wasi
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x61e772]

goroutine 1 [running]:
github.com/ydnar/wasm-tools-go/wit/bindgen.(*generator).defineInterface(0xc0000e4600, 0x0, 0x0, {0xc000104b73, 0xb})
        /root/go/pkg/mod/github.com/ydnar/wasm-tools-go@v0.1.5/wit/bindgen/generator.go:310 +0xf2
github.com/ydnar/wasm-tools-go/wit/bindgen.(*generator).defineWorld.func1({0xc000104b73?, 0x6b2049?}, {0x711dc8?, 0xc000106438?})
        /root/go/pkg/mod/github.com/ydnar/wasm-tools-go@v0.1.5/wit/bindgen/generator.go:273 +0xcc
github.com/ydnar/wasm-tools-go/wit/bindgen.(*generator).defineWorld.(*Map[...]).all.func3()
        /root/go/pkg/mod/github.com/ydnar/wasm-tools-go@v0.1.5/wit/ordered/list.go:15 +0x54
github.com/ydnar/wasm-tools-go/wit/bindgen.(*generator).defineWorld(0xc0000e4600, 0xc0000eeb00)
        /root/go/pkg/mod/github.com/ydnar/wasm-tools-go@v0.1.5/wit/bindgen/generator.go:269 +0x531
github.com/ydnar/wasm-tools-go/wit/bindgen.(*generator).defineWorlds(0xc0000e4600)
        /root/go/pkg/mod/github.com/ydnar/wasm-tools-go@v0.1.5/wit/bindgen/generator.go:230 +0xa5
github.com/ydnar/wasm-tools-go/wit/bindgen.(*generator).generate(0xc0000e4600)
        /root/go/pkg/mod/github.com/ydnar/wasm-tools-go@v0.1.5/wit/bindgen/generator.go:180 +0x2c
github.com/ydnar/wasm-tools-go/wit/bindgen.Go(0x8c3be0?, {0xc00008b6e8?, 0x2?, 0x11?})
        /root/go/pkg/mod/github.com/ydnar/wasm-tools-go@v0.1.5/wit/bindgen/generate.go:15 +0x35
github.com/ydnar/wasm-tools-go/cmd/wit-bindgen-go/cmd/generate.action({0x8c3be0?, 0x8?}, 0x8c3be0)
        /root/go/pkg/mod/github.com/ydnar/wasm-tools-go@v0.1.5/cmd/wit-bindgen-go/cmd/generate/generate.go:95 +0x558
github.com/urfave/cli/v3.(*Command).Run(0x8c3be0, {0x712a20, 0xc0000a2990}, {0xc0000ca420, 0x2, 0x2})
        /root/go/pkg/mod/github.com/urfave/cli/v3@v3.0.0-alpha9/command.go:647 +0x19a8
github.com/urfave/cli/v3.(*Command).Run(0xc0000da288, {0x7129e8, 0x8e7fa0}, {0xc0000a2270, 0x3, 0x3})
        /root/go/pkg/mod/github.com/urfave/cli/v3@v3.0.0-alpha9/command.go:620 +0x1945
main.main()
        /root/go/pkg/mod/github.com/ydnar/wasm-tools-go@v0.1.5/cmd/wit-bindgen-go/main.go:51 +0x23e

wasi-http.json is attached and is generated using wasm-tools from https://github.com/WebAssembly/wasi-http
wasi-http.json

I just tried this with latest version of wasm-tools, wasm-tools-go and latest wit files from WebAssembly, and seems to have worked for me but fails for the json file that you have attached.
could you please share how the json file was generated, and which version of wasm-tools was used for that? thanks
~/go/src/github.com/WebAssembly/wasi-http git:(main)
$ git remote -v
origin<EMAIL_ADDRESS>(fetch)
origin<EMAIL_ADDRESS>(push)

~/go/src/github.com/WebAssembly/wasi-http git:(main)
$ git pull --rebase
Already up to date.

~/go/src/github.com/WebAssembly/wasi-http (cloud-docker/ap-south-1) git:(main)
$ ~/Downloads/wasm-tools-1.216.0-aarch64-macos/wasm-tools component wit ./wit --json > wit2.json

~/go/src/github.com/WebAssembly/wasi-http (cloud-docker/ap-south-1) git:(main)
$ cd ../../ydnar/wasm-tools-go

~/go/src/github.com/ydnar/wasm-tools-go (cloud-docker/ap-south-1) git:(main)
$ git remote -v
origin  git@github.com:rajatjindal/wasm-tools-go.git (fetch)
origin  git@github.com:rajatjindal/wasm-tools-go.git (push)
upstream        git@github.com:ydnar/wasm-tools-go.git (fetch)
upstream        git@github.com:ydnar/wasm-tools-go.git (push)

~/go/src/github.com/ydnar/wasm-tools-go (cloud-docker/ap-south-1) git:(main)
$ git fetch upstream

~/go/src/github.com/ydnar/wasm-tools-go (cloud-docker/ap-south-1) git:(main)
$ git rebase upstream/main
Current branch main is up to date.

~/go/src/github.com/ydnar/wasm-tools-go (cloud-docker/ap-south-1) git:(main)
$ go build -o wit-bindgen-go cmd/wit-bindgen-go/main.go

~/go/src/github.com/ydnar/wasm-tools-go (cloud-docker/ap-south-1) git:(main)
$ ./wit-bindgen-go generate ../../WebAssembly/wasi-http/wit2.json

Output dir: .

The JSON format emitted by wasm-tools is somewhat unstable. For instance the addition of feature gates broke this package.
wit-bindgen-go will shell out to wasm-tools to parse a WIT file or directory into the JSON representation, and consume it directly. Have you tried this?

@brendandburns I submitted a PR (#152) that adds support for older versions of wasm-tools without feature gate support. You can give that branch a shot, or update your copy of wasm-tools to generate JSON compatible with the current releae of this package.


Update Löve standard to 11.4

This also removes a function that was removed in 11.0 (love.window.getPixelScale) and a function that doesn't appear to exist (love.image.newCubeFaces)

Personally I think it's fine to just target the latest version because people actively developing games probably target the latest version of Löve, but I only started working with Löve just the other week so I might not have enough experience to make the right call.

I think I'll just keep going ahead with this for now and if anybody using Löve decides it is an issue we can help them contribute what it would take to have versioned presets.


Adding Kaliko CMS

[Y] verified that the CMS I'm adding is still maintained.
[Y] read CONTRIBUTING.md.
[Y] did not generate README.md.

Thanks a bunch, @fschultz!


ENH: scipy.signal - Tukey window

The Tukey window is helpful when you need to squeeze out as much as you can from limited data. I used the definition on Wikipedia, and adapted the docstring from existing functions.
I appreciate any and all comments and feedback!

It would be good to mention this new window on the mailing list. If there are more people that have a use for it, we can make sure that the API is OK for them

A few more things to do:

add a unit test
add to function listing in signal/__init__.py
add to release notes.

See gh-4536 for a recent PR that added the exponential window.

pep8 scipy also gives a few errors (hence the TravisCI failure). You may want to run that command locally before sending/updating a PR.

Thanks for the feedback! I've made the necessary changes, and will let the mailing list know.

Sorry for not catching this earlier, but there is tiny change still needed in get_window.  On line 1636 of the file in your branch, there is a list of windows that require a parameter.  Tukey should be added to that list.
Personally I'd rather not add the 'tuk' abbreviation either, but looking at get_window that ship has clearly sailed.  So I guess I'm -0 on that.

If you'd like, you could also add the recently merged exponential window that same list, seems I missed that when reviewing the earlier PR.

Ah, ok. I did not include it there since there are default values for the parameters, and I assumed it would be fine to simply return a window with those defaults.

Also, I feel it may make sense for get_window to use winstr.lower() for the comparisons, in case someone inputs 'Hann' or something. Then again, if this issue has never arisen before, it may just be clutter...

In general, we should be less forgiving here.  There are already too many different strings that result in identical windows.  Let not add a call to lower and multiply that up even more.

@e-q, if you could squash this down to 1 or two commits, I'll merge it in a few days barring any further comments.

Squashed. Thanks!

Travis failed due to exceeding the allowed time.  I restarted that particular job.

Thanks @e-q!


SignalR User specific hub.

This is an example Regarding signalR ,It has no explanation of these fuctions "Clients.User(user).SendAsync("ReceiveMessage", message)"
and yet no implementation as well ,just only three features were implemented ,
The purpose of an example project like this is to showcase the all the availible functions
Please add the implementation of the user specific notification.
URL of project is given below.
https://github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/signalr/groups/sample

Can you create an issue from the doc page? That will connect the doc to the issue. Go to the bottom of the page and select This page .


update disabled reward text

This message appears when a user's account is manually disabled (rewards abuse, etc).  We don't reach out to them via email, so we should ask them to reach out if they are actually legitimate users.

Great change, love that you are looking out for this stuff!


Fix spelling(steaming -> streaming) in kyuubi_ecosystem figure

Why are the changes needed?

Fix spelling(steaming -> streaming) in kyuubi_ecosystem figure
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

thanks, merged to master


set up code scanning for security vulnerability detection

CI should include code scanning for security vulnerabilities/misconfigurations. May use Snyk and/or similar services.

Resolved by #5.


refactor(ad_service_state_monitor): remove unused pointcloud_map param

Signed-off-by: Shumpei Wakabayashi<EMAIL_ADDRESS>Description

It seems /map/pointcloud_map config param is not used at ad_service_state_monitor so I remove it.
I tested planning_simulator and confirmed it works without it.
(I don't know who knows well about it, so I requested many people randomly to review this.)
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

Please avoid abbreviated words like rm.

What happens if you fail to launch the pointcloud loader?
For example, please test it with ros2 launch autoware_launch ... pointcloud_map_file:=dummy.

@kenji-miyake
Failed... let's me check, thank you.

@kenji-miyake
Could you tell me which source code does dummy option work?
I could not find one......

@shmpwk It's just setting a wrong option not to launch the pointcloud loader.
I'll explain it later more in detail.

If wrong pointcloud map is set, no other thing except vehicle model appears in rviz.
I think it is expected result, not related to this PR.

@shmpwk I've confirmed the behavior with the following commands.
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/Downloads/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
ros2 bag record /initialpose /planning/mission_planning/goal
# Send an initial pose and goal pose from RViz.

ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/Downloads/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit pointcloud_map_file:=dummy
ros2 bag play {rosbag_dir}
# Change the target frame to `base_link`, click `Zero` to reset the viewpoint, and confirm the route is set.
ros2 topic echo /autoware/state

The results are:

Before this PR, the state is 1.
With this PR, the state is 4.

Is this PR from the discussion here?
https://github.com/orgs/autowarefoundation/discussions/2680#discussioncomment-3053590

Close this PR since this is harmful for the transition of /autoware/state as @.kenji-miyake  hear


Missing license file

Hi,
Thanks for this FM.
Could you please add a license file to know how you publish your app?
Thanks.

Added


Allow creation of EVCs for untagged UNI - support matching packets without a VLAN tag

Hi,
We should enhance mef_eline to allow the creation of EVCs for untagged UNIs, i.e., matching packets without a VLAN tag.
According to OpenFlow spec 1.3:

Omitting the OFPXMT_OFB_VLAN_VID field specifies that a flow entry should match packets regardless of whether they contain the corresponding tag. Special values are defined below for the VLAN tag to allow matching of packets with any tag, independent of the tag’s value, and to supports matching packets without a VLAN tag. The special values defined for OFPXMT_OFB_VLAN_VID are:
/* The VLAN id is 12-bits, so we can use the entire 16 bits to indicate

special conditions.
/
enum ofp_vlan_id {
OFPVID_PRESENT = 0x1000, / Bit that indicate that a VLAN id is set /
OFPVID_NONE    = 0x0000, / No VLAN id was set. */
};

in our case, creating an EPL will work for untagged traffic, but it will end up matching much more than just untagged traffic: it will match everything in the interface.
If we try to create the EVC, I couldn't find an option to use untagged:
root@5cf51067a6e2:/# curl -H 'Content-type: application/json' -X POST http://<IP_ADDRESS>:8181/api/kytos/mef_eline/v2/evc -d '{"name": "vlan100", "dynamic_backup_path": true, "uni_a": {"tag": {"value": 0, "tag_type": 1}, "interface_id": "00:00:00:00:00:00:00:01:1"}, "uni_z": {"tag": {"value": 0, "tag_type": 1}, "interface_id": "00:00:00:00:00:00:00:03:1"}}'
{"code":400,"description":"VLAN tag 0 is not available in uni_a","name":"Bad Request"}
root@5cf51067a6e2:/# curl -H 'Content-type: application/json' -X POST http://<IP_ADDRESS>:8181/api/kytos/mef_eline/v2/evc -d '{"name": "vlan100", "dynamic_backup_path": true, "uni_a": {"tag": null, "interface_id": "00:00:00:00:00:00:00:01:1"}, "uni_z": {"tag": null, "interface_id": "00:00:00:00:00:00:00:03:1"}}'
{"code":400,"description":"The request body contains invalid API data. None for not nullable for field uni_a/tag.","name":"Bad Request"}
root@5cf51067a6e2:/# curl -H 'Content-type: application/json' -X POST http://<IP_ADDRESS>:8181/api/kytos/mef_eline/v2/evc -d '{"name": "vlan100", "dynamic_backup_path": true, "uni_a": {"tag": {}, "interface_id": "00:00:00:00:00:00:00:01:1"}, "uni_z": {"tag": {}, "interface_id": "00:00:00:00:00:00:00:03:1"}}'
{"code":400,"description":"The request body contains invalid API data. 'tag_type' is a required property for field uni_a/tag.","name":"Bad Request"}

This is also related to in-band management use case.

From the OpenFlow specification, there are 4 possible scenarios for VLAN tag matching (i.e., the combinations of wildcard bits and field values for particular VLAN tag matches) in Table 12 of OF 1.3.0 [1]:
Scenario 1: Matching packets with and without a VLAN tag
Scenario 2: Matching only packets without a VLAN tag
Scenario 3: Matching only packets with a VLAN tag regardless of its value
Scenario 4: Matching only packets with VLAN tag and VID equal value
Scenario 1 is the easiest: we just need don't provide the VLAN ID. For Mef_eline this is already implemented when we create an EPL.
Scenario 4: is also already covered: we just need to create an EVPL EVC with a valid Tag value (1-4095).
Scenario 3: could be done if we accept vlan_vid as being 0 (internally, this should setup the mask). This will require some changes on the core, so that Tag value can be zero
Scenario 2: this will require more changes. From the user perspective, it could be done if we accept vlan_vid as being -1. We have to work on of_core, because it assumes the flag OFPVID_PRESENT. Probably, we would also require some changes on flow_manager and, of course, Kytos core (to accept -1) and mef_eline (range of possible values for tag value).
[1] https://opennetworking.org/wp-content/uploads/2014/10/openflow-spec-v1.3.0.pdf

As discused
###Scenario 3: Matching only packets with a VLAN tag regardless of its value
An EVC with "tag": {"value": "any", "tag_type": 1} is posted on the API. This will result in a flow similar to:
cookie=0x0, duration=1.469s, table=0, n_packets=0, n_bytes=0, priority=1000,arp,in_port="s1-eth1",vlan_tci=0x1000/0x1000 actions=output:"s1-eth2"

Internally mef_eline will detect the value any and send a flow with dl_vlan: "4096/4096".
Matching (code) will have to be updated. Since in as_of_tlv() is expected the addition of 4095 to self.value, from_of_tlv needs to ignore 4096 otherwise will change it to 0.
###Scenario 2:Matching only packets without a VLAN tag
An EVC with "tag": {"value": "untagged", "tag_type": 1} is posted on the API. This will result in a flow similar to:
cookie=0xaaa16d05a1189a4f, duration=2.930s, table=0, n_packets=0, n_bytes=0, send_flow_rem priority=20000,in_port="s1-eth1",vlan_tci=0x0000/0x1fff actions=push_vlan:0x88a8,output:"s1-eth3"

mef_eline will send a flow with dl_vlan: 0
Matching also needs to be adapted to serialize value to OFPVID_NONE
Related PRs:
of_core will be able to manage "4096/4096" and 0, PR
flow_manager will allow masks with this PR

As discused

Scenario 3: Matching only packets with a VLAN tag regardless of its value
An EVC with "tag": {"value": "any", "tag_type": 1} is posted on the API. This will result in a flow similar to:

cookie=0x0, duration=1.469s, table=0, n_packets=0, n_bytes=0, priority=1000,arp,in_port="s1-eth1",vlan_tci=0x1000/0x1000 actions=output:"s1-eth2"

Internally mef_eline will detect the value any and send a flow with dl_vlan: "4096/4096". Matching (code) will have to be updated. Since in as_of_tlv() is expected the addition of 4095 to self.value, from_of_tlv needs to ignore 4096 otherwise will change it to 0.

Scenario 2:Matching only packets without a VLAN tag
An EVC with "tag": {"value": "untagged", "tag_type": 1} is posted on the API. This will result in a flow similar to:

cookie=0xaaa16d05a1189a4f, duration=2.930s, table=0, n_packets=0, n_bytes=0, send_flow_rem priority=20000,in_port="s1-eth1",vlan_tci=0x0000/0x1fff actions=push_vlan:0x88a8,output:"s1-eth3"

mef_eline will send a flow with dl_vlan: 0 Matching also needs to be adapted to serialize value to OFPVID_NONE

Related PRs:
of_core will be able to manage "4096/4096" and 0, PR
flow_manager will allow masks with this PR

Nicely done consolidating and proposing the implementation details.
Looks really great to me, it's nice how dl_vlan evolved on flow_manager too.
Regarding UNI.is_valid() are we going to accept the strings "untagged" and "any" not allocating any VLANs considering them as valid? and then when mef_eline sets tag.value as value/mask then the range is validated and consumed from available_vlans?

cc'ing:

@gretelliz working on sdn_trace. The changes on flow_manager (branch feat/support-vlan-range) alone to support str produces an for an empty trace. I have tested the changes for sdn_trace and mef_eline and it seems that the error is solved. To reproduce such error: Run kytos, install an EVC (both uni with tags), close kytos, open kytos again and wait ~40 seconds.

@ajoaoff working on a similar feature, vlan_range. I am using flow_manger support for str in dl_vlan

Now that we have more combinations for EVCs (range(1,4095), 0, "4096/4096", None), the flows coming out of mef_eline are more complicated. This spreadsheet presents all the possible combinations and the created flows, EVC combinations. Please feel free to change something that is incorrect.

@Alopalao

Regarding UNI.is_valid() are we going to accept the strings "untagged" and "any" not allocating any VLANs considering them as valid? and then when mef_eline sets tag.value as value/mask then the range is validated and consumed from available_vlans?

this point here is being addressed on https://github.com/kytos-ng/kytos/pull/331 for the record, so looks good.
Great spreadsheet. Overall, this feature looks very well defined. I'd like to confirm though regarding FlowMods priority as we briefly chatted. Currently, we have on mef_eline settings:
EVPL_SB_PRIORITY = 20000
EPL_SB_PRIORITY = 10000

Should we support any of these 4 configurations in the same UNI? It's probably worth confirming with @italovalcy and @jab1982, but in the same way EPL and EVPL are supported, maybe we should
I wonder if the levels of priority should be in descending order (I noticed in your spreadsheet some priorities there, but I figured it'd be easier to raise the questions here):

EVPL -> 20000
EVPL any 4096/4096 -> ? slightly lower than 20000?
untagged -> ? slightly greater than 10000?
EPL -> 10000

@Alopalao

Regarding UNI.is_valid() are we going to accept the strings "untagged" and "any" not allocating any VLANs considering them as valid? and then when mef_eline sets tag.value as value/mask then the range is validated and consumed from available_vlans?

this point here is being addressed on kytos-ng/kytos#331 for the record, so looks good.
Great spreadsheet. Overall, this feature looks very well defined. I'd like to confirm though regarding FlowMods priority as we briefly chatted. Currently, we have on mef_eline settings:
EVPL_SB_PRIORITY = 20000
EPL_SB_PRIORITY = 10000

Should we support any of these 4 configurations in the same UNI? It's probably worth confirming with @italovalcy and @jab1982, but in the same way EPL and EVPL are supported, maybe we should
I wonder if the levels of priority should be in descending order (I noticed in your spreadsheet some priorities there, but I figured it'd be easier to raise the questions here):

EVPL -> 20000
EVPL any 4096/4096 -> ? slightly lower than 20000?
untagged -> ? slightly greater than 10000?
EPL -> 10000

Hi @viniarck, good catch! IMO, we can deal with untagged with the same priority of EVPL, because it is not an overlapping matching. On the other hand, the any UNI would overlap with EVPL/untagged, and having a slightly lower priority would be interesting. My suggestion would be the following:

EVPL -> 20000
EVPL any 4096/4096 -> 15000
untagged -> 20000
EPL -> 10000

This discussion is finished and the PRs related to it are close to be merged.


Document OPAL_PCI_POLL

OPAL_PCI_POLL is undocumented

Skeleton docs in dc9ee7f37f0c200c56edf94c0da7b9ecc3466017, and 9a3314d7bfdbf1e42112eb79d6c6b59e3089dd91 for OPAL_PCI_RESET expected usage. Probably want more detailed and better docs.

Accidently closed this issue. Reopening ..
-Vasant


Collaboration with codedamn

Hi Sadanand
I came from your LinkedIn post on 2K stars. Congrats on that! I see a lot of challenges here are really good and cover a lot of important basics in JavaScript.
I'm the founder of codedamn (https://codedamn.com/) - an interactive learn-to-code platform where we focus a lot on full-stack web development and building practical, real-world skills for people (not just interview/DSA preparation)
Last month we launched a free interview-focused course on codedamn but with the focus on web development questions instead of standard DSA/competitive problems (https://codedamn.com/learn/web-development-interview).
Seeing your repo, I feel like students can get a lot of benefits if we convert these questions into free hands-on practice labs on codedamn where they can practice their concepts and check if they did it right.
The repository is MIT licensed, but still, I'd love to see if you're up for this and potentially also include you in the process (giving up appropriate credits on the course page). If you'd like to take the conversation on email, I'm at mehul[at]codedamn[dot]com
Looking forward to hear from you.

Thanks for reaching out. Happy to discuss about it


Flesh out readme a bit

@ProbablePrime, thanks for your PR! By analyzing the blame information on this pull request, we identified @connor4312 to be a potential reviewer

LGTM


Add diff-view for source translation in sbs-editor

Short description

This pr adds functionality to render the diff of the source translation since the last update of the target translation in the side-by-side page editor.
Proposed changes

Render the diff of the source translation in sbs-view
Add a button to toggle between the normal view and the diff view
Remove disabled tinymce editor instance in source translation for better consistency

Resolved issues

Fixes: #1449,  Fixes: #1573

Oh, somehow missed that...
Should be fixed now!

I have update the pr and the issues with minor edits should be resolved now.


Update install script to be runnable from any directory

Please update the install.sh script to be executable from any directory and also fail on any error

CLI has been moved to a different repository


[vcpkg] Fix the build on VS2015 debug

The VS2015 standard library requires, in debug mode, a comparison
operator on T × U and U × T to also be a comparison operator on
T × T and on U × U, and so in
vcpkg::Install::install_package::intersection_compare, I've added two
new operator() overloads which take those respectively, on VS2015.
Also, [nodiscard] was added to somewhere in vcpkg/base/strings.h,
which gives a warning in VS2015 -- thus, I added the vcpkg/pragmas.h
include, since that fixes the warning.

/azp run


[accessibility] Controls' icons should be explicitly hidden from assistive technology

Screen readers currently announce the "icons" or characters inside of controls because they're not hidden from ATs.
Taking the zoom in control as an example, a screen reader such as NVDA will announce Plus button zoom in on focus, and Plus on hover.

Similarly, the attribution control is announced as i button attributions on focus, and i on hover, because the character "i" (for "info") is not hidden from screen readers.
I propose that these icons/characters be wrapped in a child  as a child element of <button> to prevent screen readers from announcing them.
(Ideally this should also be a consideration for custom controls, if only by updating the examples.)

@Malvoz my understanding is that the ol/control/Zoom~Zoom zoomInLabel and zoomOutLabel properties facilitate wrapping the icons/characters in a child .
The following takes a different approach of instead adding a span with a descriptive aria-label which I think results in ATs describing the zoom buttons appropriately:
import Map from 'ol/Map.js';
import OSM from 'ol/source/OSM.js';
import TileLayer from 'ol/layer/Tile.js';
import View from 'ol/View.js';
import {defaults} from 'ol/control/defaults';

// Customise the Zoom control to add a aria-label attribute to each button
const zoomInLabel = document.createElement('span');
zoomInLabel.ariaLabel = 'Zoom in';
zoomInLabel.append('+');

const zoomOutLabel = document.createElement('span');
zoomOutLabel.ariaLabel = 'Zoom out';
zoomOutLabel.append('-');

const controls = defaults({
  zoomOptions: {
    zoomInLabel: zoomInLabel,
    zoomOutLabel: zoomOutLabel
  }
});

// Create a Map instance, specifying our custom control options via
// the `controls` option
const map = new Map({
  layers: [
    new TileLayer({
      source: new OSM(),
    }),
  ],
  target: 'map',
  view: new View({
    center: [0, 0],
    zoom: 2,
  }),
  controls: controls
});

I'd welcome your thoughts.


Make sure jOOQ worker pool is derived from max pool size

Probably 1/2 or 1/3 (with a min of 5 or similar)

@kamransaleem

JooqUtilities::DB_EXECUTOR_POOL

Perhaps boost the default max/min conn pool sizes in DIConfiguration


AsyncOAuthSettings uses CallbackOptions instead of AsyncCallbackOptions

Reproducible in:
pip freeze | grep slack
python --version
sw_vers && uname -v # or `ver`

The slack_bolt version
slack-bolt==1.1.4
slack-sdk==3.1.1
Python runtime version
Python 3.6.9
OS info
Darwin
Expected
AsyncOAuthSettings has a AsyncCallbackOptions instead of CallbackOptions. I'm fully on the async version of the SDK with strict type checking and this discrepancy made it harder to customize the success/failure handlers for OAuth flow.
callback_options: Optional[CallbackOptions] = None

should be
callback_options: Optional[AsyncCallbackOptions] = None

I ended up having to work around this by subclassing AsyncOAuthFlow and adding AsyncCallbackOptions to the constructor.
class MyAsyncOAuthFlow(AsyncOAuthFlow):
    def __init__(
        self,
        *,
        client: Optional[AsyncWebClient] = None,
        logger: Optional[Logger] = None,
        settings: AsyncOAuthSettings,
        callback_options: Optional[AsyncCallbackOptions] = None,
    ):
        super().__init__(client=client, logger=logger, settings=settings)
        if callback_options is not None:
            self.success_handler = callback_options.success  # type: ignore because mypy
            self.failure_handler = callback_options.failure  # type: ignore

Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Thanks for pointing this out! You are right (again): https://github.com/slackapi/bolt-python/blob/v1.2.1/slack_bolt/oauth/async_oauth_settings.py#L69
Although this project runs pytype for validating type hints, it seems the checker did not detect this issue. As with #208, this issue will be fixed shortly.

Thanks for pointing this out! You are right (again): https://github.com/slackapi/bolt-python/blob/v1.2.1/slack_bolt/oauth/async_oauth_settings.py#L69
Although this project runs pytype for validating type hints, it seems the checker did not detect this issue. As with #208, this issue will be fixed shortly.

I'd fix this myself but I need to figure out CLA first 😄 Thanks for taking a look @seratch!
I'm using mypy==0.790 for type checking FWIW.

I'd fix this myself but I need to figure out CLA first 😄 Thanks for taking a look @seratch!
I'm using mypy==0.790 for type checking FWIW.


Integrating velocity testing framework

@stewartmccoy issue #179 can be merged. Meteor <IP_ADDRESS> fixes the issue that prevented deployment when Velocity was included. So just to clarify, Velocity will only run when running meteor on localhost. When deployed, Velocity will not be included in the deployment package.

Hey, is there a reason you're merging directly to master? Can we merge to devel first?

@stewartmccoy, weird, I thought my pull request was for devel. I'll make a new one.


Filter fill()

Hello,
This is a new filter that permit returning a fit-in centered image with the size requested.
The empty aera are filled with the color passed as color name or hexadecimal code (with the starting #)
http://<IP_ADDRESS>:8887/unsafe/fit-in/80x80/filters:fill(blue)/github.com/globocom/thumbor/wiki/tom_before_brightness.jpg
result in a square image of 80x80 size with fit-in tom centered and surrounded by blue lines
This could be usefull when having  needed for precalculating page rendering on browser without breaking ratio of the image when width and height is not known.
I also add the "paste" method missing in graphicsmack engine and a new engine method "gen_image" to generate a uniform colored image of whatever size.
I would like some tests for this class but need some template for filters to help me.
Cheers,
--
Damien

We'll come up with some filter tests soon... Sorry and thanks A LOT for the contribution.


Refactor InboundParse API to conform to new design

We want to refactor the InboundParse API to address compatibility issues with Micronaut and Quarkus arising from the library's reliance on Spring framework.
We would like to have the Events API migrated to the new REST dependency and ensure the on going updates to the unit tests to validate the modifications and uphold code quality.
For guidance on the expected changes, kindly refer to this pull request #54.
PLEASE BRANCH OFF STAGING BRANCH AND ALL PRS SHOULD GO TO STAGING BRANCH FOR THESE CHANGES

Hi @mayorJAY , @unicodeveloper , I would like to work on this. Can you please assign this to me?

Sure, give it a shot @git-ashug

Hi @mayorJAY I already made a PR

Kindly ensure that an issue is assigned to you before you begin implementation @charan2628

Will raise a PR for this by tomorrow EOD, dev in progress

Hi @mayorJAY , raised PR. Please review


Option to specify version based on file instead of tags for non-release jars [needs enhancement label]

Use case:
Currently, I am working on Et Futurum Requiem. The current next in-progress version is 2.6.1. However, because the last tag released was 2.6.0, the jars are labeled as 2.6.0 builds. This is wrong, as these are development jars for 2.6.1, not 2.6.0; 2.6.0 was already released. I'd rather just have them be labeled as 2.6.1 with the proper commit hash, signifying they are 2.6.1 snapshots, for me I only want my releases to follow the latest tag name. So if I released 2.6.1 beta 1 under the tag 2.6.1-beta-1 tag, it'd still use that tag for the release, and I'd like the CI to continue to produce jars that are just called 2.6.1 with a commit hash, since 2.6.1 has not hit a full release and thus these builds are still snapshots leading up to 2.6.1.
As far as I can tell, there's no way to achieve this effect under the current revisions of the script.

Duplicate of #272


Add "Acquire::GzipIndexes" to contrib/mkimage/debootstrap

This results in a dramatic improvement in the size of individual "apt-get update" layers (on a clean wheezy base, from "29.88 MB" down to "8.273 MB").
Fixes #5639

FYI: This 'improvement' breaks debian's multistrap in a VERY non-trivial way - multistrap can't calculate required packages and silently produces a non-bootable/non-chrootable filesystem.

ping @tianon ^^

I think that's a pretty solid bug that should be filed against multistrap; the APT maintainers have previously been pretty firm on their position that these list files are supposed to be considered "internal state" and ought not be read directly by outside tools, or that external tools should handle configuration changes such as this one sanely (for example, aptitude handles this configuration appropriately).


better Installation instructions

Task is to write clear installation instructions that can be followed by novices with various computer configurations.
@kelle  & @ctheissen  - conda instructions of linux and MaxOS (with modifications for different chip types)
@adam - windows installation
For all, I'd recommend first installation of Anaconda Navigator or mini-anaconda (wls, ubuntu as back-up options?)
Windows notes:

run all the commands from Anaconda terminal (CMD.exe in Anaconda Navigator) <-- this is critical
[conda instructions]

Also necessary - setting environment variable to PYTHONPATH:

For MacOS or Linux: add the following line to your ~/.bashrc (MacOS 11.X and earlier) or ~/.zshrc (MacOS 12.X and later):
-- export PYTHONPATH=/Users/adam/python_codes/pyspextool:$PYTHONPATH

Note: replace "/Users/adam/python_codes/pyspextool" with the path to your pyspextool directory.

For Windows: see https://www.java.com/en/download/help/path.html for how to set environmental variables; either create or add to PYTHONPATH the pyspextool folder

Questions on conda environment

how do users set this in jupyter notebook? if calling from Anaconda Navigator?
how do we signal to users that they need to upgrade/install packages?

Some typical fail modalities

installation script fails because user doesn't have write access to top level directories - sudo sometimes worked, but also resulted in installation for sudo user instead of current user; Anaconda installation fixed most of these issues
wrong syntax for environmental variable
missing or outdated packages - conda environment may fix this
no pip or conda commands not recognized - anaconda installation fixed most of these issues

Using conda should negate the need to do anything with environment variables.
Yes, conda will also address the missing/outdated packages


Find history - add parameter --snapshot-summary to the rewrite command so that snapshot history statistics can be activated for old snapshots

What does this PR change? What problem does it solve?

Was the change previously discussed in an issue or on the forum?

Checklist

[x] I have read the contribution guidelines.
[ ] I have enabled maintainer edits.
[ ] I have added tests for all code changes.
[ ] I have added documentation for relevant changes (in the manual).
[ ] There's a new file in changelog/unreleased/ that describes the changes for our users (see template).
[x] I have run gofmt on the code in all commits.
[ ] All commit messages are formatted in the same style as the other commits in the repo.
[ ] I'm done! This pull request is ready for review.

fingers slipped and I created an empty PR. Closing.


Update system_filesystem.yml

Pull Request Template
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have checked my code and corrected any misspellings

师兄，不好意思，这个pr不用合并，只是想看一看ubuntu的内核版本

嗯，那我就 close 了


How to extract CategoryAxis class names from a chart in a PowerPoint?

Thanks for your remarkable work!
I try to get CategoryAxis class names and series names and values by python-pptx0.6.22, but I can only get the text of series names and values, can not find a way to extract CategoryAxis class names. How to get CategoryAxis class names from a chart in a PowerPoint?

I'm not familiar with the term "CategoryAxis class name". Can you say more?

Sorry, I may not be able to express myself clearly. The red box shown in the above picture is the "CategoryAxis class name" which
I cannot extract from a chart.

I think you're looking for Axis.tick_labels: https://python-pptx.readthedocs.io/en/latest/api/chart.html#pptx.chart.axis._BaseAxis.tick_labels
There is some more in the documentation here as well: https://python-pptx.readthedocs.io/en/latest/user/charts.html#axes

Thanks for your reply.
I read the documentation and try to find a way to extract the text of tick_labels of a chart, but still can not achieve. Is the text of tick_labels can only be set or be changed and not be able to read?

Post the code you tried and I'll take a look.

from pptx import Presentation
import json
def get_chart_data(chart):
charttext = ""
## try to get the text of category_axis.tick_labels but can not achieve (x axis labels)
# chartxaxislabels = ""
# tick_labels = chart.category_axis.tick_labels
# chartxaxis =

for series in chart.series:
    charttext += "|\t" + series.name + "\t|"
    charttext += '\t|'.join([str(value) for value in series.values]) + "\t|\n"  #一列数据
return {'chart title': chart.has_title and chart.chart_title.text_frame.text or '',
        'chart': charttext}

def extract_elements_info(ppt_file):
presentation = Presentation(ppt_file)
for i, slide in enumerate(presentation.slides):
for baseshape in slide.shapes:
chart = baseshape.chart
text = get_chart_data(chart)
return text
ppt_file_path = r"F:\temtestres\pdf\eval\ppttest/test.pptx"
res = extract_elements_info(ppt_file_path)
print(res)
with open(r'F:\temtestres\pdf\eval\ppttest/test.json', 'w', encoding="utf-8") as file:
json.dump(res, file, indent=2, ensure_ascii=False)
# json.dump(res, file, indent=2)
print("Done")

Post the code you tried and I'll take a look.

from pptx import Presentation
import json
def get_chart_data(chart):
charttext = ""
## try to get the text of category_axis.tick_labels but can not achieve (x axis labels)
# chartxaxislabels = ""
# tick_labels = chart.category_axis.tick_labels
# chartxaxis =

for series in chart.series:
    charttext += "|\t" + series.name + "\t|"
    charttext += '\t|'.join([str(value) for value in series.values]) + "\t|\n"  #一列数据
return {'chart title': chart.has_title and chart.chart_title.text_frame.text or '',
        'chart': charttext}

def extract_elements_info(ppt_file):
presentation = Presentation(ppt_file)
for i, slide in enumerate(presentation.slides):
for baseshape in slide.shapes:
chart = baseshape.chart
text = get_chart_data(chart)
return text
ppt_file_path = r"F:\temtestres\pdf\eval\ppttest/test.pptx"
res = extract_elements_info(ppt_file_path)
print(res)
with open(r'F:\temtestres\pdf\eval\ppttest/test.json', 'w', encoding="utf-8") as file:
json.dump(res, file, indent=2, ensure_ascii=False)
# json.dump(res, file, indent=2)
print("Done")

The goal of the above code is to input a PowerPoint with a chart and output the text Markdown of the table corresponding to the chart, but the code can only get the red box part in the following image. I try to get the x axis labels by the chart.category_axis.tick_labels, but there is no text information. Is there a way to get the the text of x axis labels?

Ok, you're looking for Plot.categories. There can be more than one plot in a single chart, like a line chart overlaid on a bar chart and each can have different categories.
Try chart.plots[0].categories.

It does work now, Thanks very much!!!!!


Addon install - add non-interactive commands

This MR adds support for non-interactive commands for the cluster-logging-operator addon.
Note: A sequence MR will print the commands for the non-interactive mode.
Related: SDA-5569

/hold
@oriAdler this is already supported, please don't hard-code addon parameters in ROSA, as ROSA should be agnostic to whatever addon parameters are in place.
This is from my master branch:
$ rosa install addon -c oadler-loggi cluster-logging-operator --use-cloudwatch true --use-app-logs true --use-infra-logs true --use-audit-logs true --cloudwatch-region us-east-1
? Are you sure you want to install add-on 'cluster-logging-operator' on cluster 'oadler-loggi'? Yes
I: Add-on 'cluster-logging-operator' is now installing. To check the status run 'rosa list addons -c oadler-loggi'

Changes look good to me thanks Ori, will leave it to victor to unhold this :smiley_cat:

/hold cancel

/lgtm

/lgtm

/lgtm

/lgtm


Update go-diskfs to latest

Description

This includes a fix for a panic when we attempt to open a fedora server ISO.
How was this code tested?

$ export OS_IMAGES='[{"openshift_version": "4.8","cpu_architecture": "x86_64","url": "https://download.fedoraproject.org/pub/fedora/linux/releases/37/Server/x86_64/iso/Fedora-Server-dvd-x86_64-37-1.7.iso","version": "48.84.202109241901-0"}]'
$ IMAGE=quay.io/carbonin/assisted-image-service:latest make build run

Before the update this resulted in:
{"file":"/go/src/github.com/openshift/origin/pkg/servers/servers.go:94","func":"github.com/openshift/assisted-image-service/pkg/servers.(*ServerInfo).httpsListen","level":"info","msg":"Starting https handler on :8080...","time":"2022-12-01T13:55:56Z"}
{"file":"/go/src/github.com/openshift/origin/pkg/imagestore/imagestore.go:277","func":"github.com/openshift/assisted-image-service/pkg/imagestore.(*rhcosStore).cleanDataDir","level":"info","msg":"Removing /data/.gitkeep from data directory","time":"2022-12-01T13:55:56Z"}
{"file":"/go/src/github.com/openshift/origin/pkg/imagestore/imagestore.go:277","func":"github.com/openshift/assisted-image-service/pkg/imagestore.(*rhcosStore).cleanDataDir","level":"info","msg":"Removing /data/isoutil866884391 from data directory","time":"2022-12-01T13:55:56Z"}
{"file":"/go/src/github.com/openshift/origin/pkg/imagestore/imagestore.go:210","func":"github.com/openshift/assisted-image-service/pkg/imagestore.(*rhcosStore).Populate","level":"info","msg":"Creating minimal iso for 4.8-48.84.202109241901-0-x86_64","time":"2022-12-01T13:55:56Z"}
panic: runtime error: slice bounds out of range [:32768] with capacity 17408

goroutine 33 [running]:
github.com/diskfs/go-diskfs/partition/gpt.tableFromBytes({0xc000394000, 0xc000394000, 0x4400}, 0x200, 0x0)
	/go/pkg/mod/github.com/diskfs/go-diskfs@v1.2.1-0.20210727185522-a769efacd235/partition/gpt/table.go:378 +0xcc5
github.com/diskfs/go-diskfs/partition/gpt.Read({0x9f0070, 0xc0002aa130}, 0x200, 0x50)
	/go/pkg/mod/github.com/diskfs/go-diskfs@v1.2.1-0.20210727185522-a769efacd235/partition/gpt/table.go:516 +0x165
github.com/diskfs/go-diskfs/partition.Read({0x9f0070, 0xc0002aa130}, 0x91c2a0, 0xc000282501)
	/go/pkg/mod/github.com/diskfs/go-diskfs@v1.2.1-0.20210727185522-a769efacd235/partition/partition.go:16 +0x31
github.com/diskfs/go-diskfs/disk.(*Disk).GetPartitionTable(0xc0002840f0)
	/go/pkg/mod/github.com/diskfs/go-diskfs@v1.2.1-0.20210727185522-a769efacd235/disk/disk.go:55 +0x30
github.com/diskfs/go-diskfs.initDisk(0xc0002aa130, 0x38)
	/go/pkg/mod/github.com/diskfs/go-diskfs@v1.2.1-0.20210727185522-a769efacd235/diskfs.go:237 +0x6f2
github.com/diskfs/go-diskfs.OpenWithMode({0xc000291f40, 0x38}, 0x0)
	/go/pkg/mod/github.com/diskfs/go-diskfs@v1.2.1-0.20210727185522-a769efacd235/diskfs.go:289 +0x157
github.com/openshift/assisted-image-service/pkg/isoeditor.Extract({0xc000291f40, 0x0}, {0xc000288678, 0x17})
	/go/src/github.com/openshift/origin/pkg/isoeditor/isoutil.go:20 +0x31
github.com/openshift/assisted-image-service/pkg/isoeditor.(*rhcosEditor).CreateMinimalISOTemplate(0xc00002c017, {0xc000291f40, 0x38}, {0xc0002ce6c0, 0x43}, {0xc000291e00, 0x3b})
	/go/src/github.com/openshift/origin/pkg/isoeditor/rhcos.go:38 +0x94
github.com/openshift/assisted-image-service/pkg/imagestore.(*rhcosStore).Populate(0xc000240000, {0x9f2f48, 0xc000022080})
	/go/src/github.com/openshift/origin/pkg/imagestore/imagestore.go:218 +0x6c5
main.main.func1()
	/go/src/github.com/openshift/origin/main.go:72 +0x46
created by main.main
	/go/src/github.com/openshift/origin/main.go:71 +0x451

After we get:
{"file":"/go/src/github.com/openshift/origin/pkg/servers/servers.go:94","func":"github.com/openshift/assisted-image-service/pkg/servers.(*ServerInfo).httpsListen","level":"info","msg":"Starting https handler on :8080...","time":"2022-12-01T13:53:19Z"}
{"file":"/go/src/github.com/openshift/origin/pkg/imagestore/imagestore.go:277","func":"github.com/openshift/assisted-image-service/pkg/imagestore.(*rhcosStore).cleanDataDir","level":"info","msg":"Removing /data/isoutil2801760868 from data directory","time":"2022-12-01T13:53:19Z"}
{"file":"/go/src/github.com/openshift/origin/pkg/imagestore/imagestore.go:210","func":"github.com/openshift/assisted-image-service/pkg/imagestore.(*rhcosStore).Populate","level":"info","msg":"Creating minimal iso for 4.8-48.84.202109241901-0-x86_64","time":"2022-12-01T13:53:19Z"}
{"file":"/go/src/github.com/openshift/origin/main.go:74","func":"main.main.func1","level":"fatal","msg":"Failed to populate image store: failed to create minimal iso template for version map[cpu_architecture:x86_64 openshift_version:4.8 url:https://download.fedoraproject.org/pub/fedora/linux/releases/37/Server/x86_64/iso/Fedora-Server-dvd-x86_64-37-1.7.iso version:48.84.202109241901-0]: remove /data/isoutil866884391/images/pxeboot/rootfs.img: no such file or directory\n","time":"2022-12-01T13:53:28Z"}

Assignees

/cc @CrystalChun
/cc @danielerez
Links

Related to: https://issues.redhat.com/browse/MGMT-12740
go-diskfs PR: https://github.com/diskfs/go-diskfs/pull/158
Checklist

[x] Title and description added to both, commit and PR
[x] Relevant issues have been associated
[x] Reviewers have been listed
[x] This change does not require a documentation update (docstring, docs, README, etc)
[x] Does this change include unit tests (note that code changes require unit tests)

Seems 'OpenWithMode' was removed from the new version of diskfs? :/
level=warning msg="[runner] Can't run linter unused: buildir: analysis skipped: errors in package: [/home/prow/go/src/github.com/openshift/assisted-image-service/integration_test/images_test.go:200:23: OpenWithMode not declared by package diskfs]"

Seems 'OpenWithMode' was removed from the new version of diskfs? :/
level=warning msg="[runner] Can't run linter unused: buildir: analysis skipped: errors in package: [/home/prow/go/src/github.com/openshift/assisted-image-service/integration_test/images_test.go:200:23: OpenWithMode not declared by package diskfs]"

Use Open() instead I guess: https://github.com/diskfs/go-diskfs/pull/137

Yeah, I just missed fixing it in tests
Just about to push the fix.

/lgtm
/hold
(unhold if no need to wait for tests)

/unhold


Turn restrictions broken on Firefox

There used to be red or green arrows, but now it's all black and stays black when I click on it.
Firefox 43.0a2 Linux Mint

Thanks for the report - I can confirm they are also broken on OS X, Firefox 42.0.  Instead of blacked out icons, I don't see anything at all.  Will fix..

I think I fixed this issue - Can you test against https://openstreetmap.us/iD/master/ and let me know if it looks right?

Yes! I can confirm that it works there.


Cannot mount mock router with composition API

Hello,
I seem to be struggling with the same issue as this user in stackoverflow.
Specs: Vue 3 | Vuex 4 | VTU 2
I followed the VTU 2 documentation but it uses the $router. However, I am using the setup() function
Component.vue file
<script>
import { useStore } from "vuex";
...
export default {
    ...
    setup() {
        const store = usestore()
        store.dispatch(..., route.params.id); // TypeError: Cannot read property 'params' of undefined
        ...
    }
}
</script>

Component.test.ts
test("Form data binding works", async () => {
  const $route = {
    params: {
      id: 100,
    },
  };
  const $router = {
    push: jest.fn(),
  };
  const wrapper = mount(Event, {
    data() {
      return {
        ...
      };
    },
    global: {
      mocks: {
        $route,
        $router,
      },
      plugins: [store],
    },
  });
  expect ...
}

Desired outcome
To be able to inject the mock store into the code when doing unit test on the component
Outcome
The code errors out by saying that the router object has no parameters. In other words, the router object was not injected into the test.

@loocurse In your component, where does route come from? Are you using the composition API with useRoute()?

Yes correct

In that case using global.mocks won't help you.
You can use https://github.com/posva/vue-router-mock and set route and the params to whatever you want.
Hope this helps.
Closing as this is not a VTU issue.


File > Restart often just closes FD, doesn't restart it

For me, the File > Restart command only works about half of the times. At other times, FD is closed but doesn't restart, I have to restart manually.

This .NET feature is not super stable, but i'd like to improve it in the future.

Maybe it can be removed from the menu instead of disable the function.

I'd say this shouldn't be disabled or removed but fixed, because the user should have the option to restart after downloading plugins and some other stuff from AppMan, but as Mika says, this is a known and documented .NET bug. Maybe some small helper utility should be added that is launched on calling Restart, and once that one detects that FD is closed it should run FD again.


Scientific reviewers for pull requests

Dear ESMValTool developers,
Some pull requests are open for a long time because it is often hard to find developers that could do the scientific review of a new recipe. Here, I would like to compile a list of potential developers that could be asked to do such a review as discussed at the last monthly ESMValTool meeting (#1801). I tried to sort the proposed potential reviewers by scientific theme. This list is a first attempt and is not meant to be complete or comprehensive. Please add / correct / remove items from this list as you think. Any help is appreciated.
Atmosphere - aerosols
@mattiarighi
@MichaelSchulzMETNO
@jgriesfeller
Atmosphere - chemistry
@irenecionni
Atmosphere - clouds
@axel-lauer
@LanderVT
Atmosphere - emergent and observational constraints
@bettina-gier
@schlunma
@lukasbrunner
Atmosphere - greenhouse gases
@bettina-gier
@hb326
@zechlau
Atmosphere/Ocean - modes of variability
@yukosaka
@makelaj
Extreme events
@IreMav
@cwmohr
@maritsandstad
@jhardenberg
@chunxueyang
Hydrology, water cycle
@jeromaerts
@katjaweigel
Land surface
@edavin
@StefanHagemann
@BenMGeo
@tobstac
Ocean - biogeochemistry/-physics
@tillku
@ytakano3
@LesterMK
@qlejeune
Ocean - general
@tomaslovato
@zklaus
Sea ice
@fmassonn

Raising my hand for Atmosphere - aerosols.
I am working for @MichaelSchulzMETNO.

@jgriesfeller : Thanks! That's great! I added you to the list.

is there information on what is expected from a scientific review? or a "how to guide" with best practices? might be helpful for people who have never done it before

I am fine reviewing a GHG pull request. Could someone point me to these? Could nod find any label adressing it....

is there information on what is expected from a scientific review? or a "how to guide" with best practices? might be helpful for people who have never done it before

@ruthlorenz Very good suggestion, we'll need to write one!

I am fine reviewing a GHG pull request. Could someone point me to these? Could nod find any label adressing it....

@zechlau Great! The list is intended as a reference of who to ask when a pull request comes in. What does GHG stand for? Then we can add you as a specialist for this topic.

What does GHG stand for

greenhouse gases, already enlisted ;-)
Perhaps we could indeed add labels for the topics that Axel used above? I'm not sure if that list is exhaustive though. What to do with PRs that don't fit in these categories?

The labels are a good idea. Any ideas/wishes how these should look like? Also, please feel free to add to our list, this was meant as a starting point only. Any input is welcome!

Labels are nice for categorizing, but we would also need some way to attract the attention of relevant reviewers to a pull request. Maybe we could publish the list above in a new Review chapter in https://docs.esmvaltool.org/en/latest/community/, along with some instructions on how to request a review and how to contribute a review/what to look out for when doing a review?

A pull request with guidelines for doing reviews is now available in #1872 and I created the @ESMValGroup/science-reviewers team. @axel-lauer Would you have time to add the people who signed up to be scientific reviewers to that team so they can be tagged as a group when someone needs a scientific review?

@bouweandela I removed you from the team @ESMValGroup/science-reviewers. So far, no one has signed up to be a (science) reviewer, people listed above are taken from the list of all ESMValTool developers who indicated interest in a specific field. I guess we need to contact people and ask.

Hi all, thanks so much for signing up for these teams! I noticed that the GitHub review teams are not completely in sync with the list of user names in this issue.
If no one objects I'll update the GitHub teams with the names from this issue and close the issue.

I haven't added the names listed here to our new reviewer teams because I thought it might be good to add only people to the teams that have explicitely agreed to become a member. The list of potential reviewers in this issue was just a wild first guess from my side. People listed here did not object but that typically simply meant no feedback. Technically, it would be good to have more members in the reviewer teams but I guess it would be good to continue asking people first. What do you think?

Thanks @axel-lauer, good to know! Should we then at least add the people that confirmed in this issue they are willing to do reviews?

@nielsdrost Yes, I think that would be a good idea and I just added @zechlau to the "atmosphere" reviewer team. @jgriesfeller is not a member of the ESMValTool development team yet. @jgriesfeller would you like to join?
Did I miss anyone else?

Thanks @axel-lauer! @lukasbrunner added himself to the "Atmosphere - emergent and observational constraints" category, so I assume he is ok with being on the reviewers team :-)
And afterwards perhaps we should start actively approaching people (via email?) for the science reviewer team(s)?

I am happy to join the ESMValTool development team.


Fixed the incorrect link for memory Qos

Fixes : #45929

The link that's there is stale, rather than outright incorrect.
LGTM.

/lgtm

/retitle Update the stale link for memory Qos


Alpine based docker image does not properly run in Kubernetes

I am running an instance of db-rest:6 for some time in kubernetes. A few hours ago, it stopped working (Error: reason: getaddrinfo EAI_AGAIN). While I have no idea why it worked before, I found out that the problem seems to be, that db-rest:6 is based on Alpine which seems to have known problems to resolve DNS in kubernetes (see here)
I was able to resolve the issue by building a new image based of node-18-bullseye.
Probably I am the only one having this issue, so I don't know whether it's worth fixing it.

It stopped working means every single response fails with the same error described above. Restarting pods, the cluster, the kubernetes dns and so on did not help.
I've gone through many debugging steps (following this).. Using the dnsutils Pod describe in the guide everything works fine, if I instead use the node-18-alpine image, nslookup fails with NXDOMAIN. It might be fixed in other alpine images, however in the base image of your Dockerfile it is not.
My current fix is as simple as:
FROM derhuerst/db-rest:6 as builder

FROM node:18-bullseye
WORKDIR /app

COPY --from=builder /app .

EXPOSE 3000

ENV HOSTNAME example.com
ENV PORT 3000

CMD ["node", "index.js"]

Maybe there is a way to configure it so that it works with the node-18-alpine image, maybe it is fixed in a node-20-apline image, but I did not want to run db-rest with an maybe unsupported node version.

I've tried, but it still gives me ** server can't find kubernetes.default: NXDOMAIN. I don't think this has anything to do with JS dependencies.

Could it be that you're resolving the API's domain with every single request, and that eventually their DNS server blocks requests?

I don't know how to find out if that's what's happening, but tonight it broke again after running for two days, so maybe it is some kind of DNS caching issue. However, other containers running on the same cluster querying different APIs of DB don't have the same issue

You could debug more by shelling into the container and using e.g. dig (which talks directly to the name servers when used with the @<ns> notation), host and nslookup to debug this. Some of these use the locally configured resolver, some of them don't, so this might be a debugging angle.

Well, the problem is that I don't want to redeploy the official docker image, as it failed. And I don't have the time right now to build a second setup to test the failing pod. Maybe if I have time in March I will try to do some further debugging or if something breaks before that.

Well, the problem is that I don't want to redeploy the official docker image, as it failed.

You don't have to deploy something else I think. A simple kubectl exec <db-rest-container> should be enough.
Unfortunately, I can't help debug your Kubernetes network setup, and I don't want to switch away from Alpine Linux because of something that is not 100% confirmed to be caused by Alpine Linux.
If you have the time to provide more details about the error, don't hesitate to post here!

To clarify again: I'll definitely consider adapting the db-rest Docker image if there is a confirmation that the network issues are indeed related to Alpine Linux (even if it's only in combination with Kubernetes).
Until then, I'll close this, as I'd like to keep an overview over more actionable tasks in my projects. Please don't hesitate to re-open the Issue if you have found out more!


implement plugin autoupdating

plugins should have some form of autoupdating, of course this should be something the user can opt out of

Personally, I'd advocate for automatically attempting to update a plug-in when attempting to install a runtime that can't be found.
I scratched my head for a few minutes at this one before realizing I needed to update the ruby plug-in in order to “see” v3.2.1:
% rtx install -a
⢄ Installing runtime<EMAIL_ADDRESS>not found
[ERROR] [ruby] script exited with non-zero status: exit code 1
[ERROR] Run with RTX_DEBUG=1 for more information.
[ERROR] rtx 1.9.0 macos-arm64 (built 2023-02-13)

ruby appears to be unique here. Most languages that I've seen download all of the versions so you don't have to update the plugin to just get a new version.

Ah. Good to know.

should be opt in tbh. or is reproducibility not a goal of mise?
are suprising bugs resulting from shifting outputs from newer plugins a desired goal?


Use PrivateKey of size 32 instead of 64

I'm generating Keypairs on a different system and send them to the client device. My Keys (pub + priv) both have a size of 32 and are base58 encoded. After decoding them with bs58 I want to create a JWT with the private key and decode the JWT on a node.js backend.
final secret = "F2ZNsmXYwLsryvhVVXnqEoWM2Umro6vtWPQCyEg7oj8P"

generateJwt(String subject, String secret) {
  final decodedRaw = Base58Decode(secret);
  /* [208, 105, 206, 135, 43, 101, 101, 250, 227, 140, 174, 15, 170, 99, 69, 156,
   193, 74, 234, 158, 136, 83, 124, 133, 190, 248, 205, 196, 217, 126, 164, 196] */

  final jwt = JWT(
    {
      'subject': subject,
    },
    issuer: subject,
  );

  final key = EdDSAPrivateKey(decodedRaw);
  // JWTUndefinedError: Invalid argument(s): ed25519: bad privateKey length 32

  final token = jwt.sign(key, algorithm: JWTAlgorithm.EdDSA);

  print('Signed token: $token\n');
}

When I try to sign the JWT with my private key I get the error : JWTUndefinedError: Invalid argument(s): ed25519: bad privateKey length 32.
Is it possible to use a private key of size 32 to sign a JWT?

I found out that the required 64 bytes key is produced by concatenating the private and public key. My SO question


My brew seems to have been deleted, getting "application error""

Browser Type/Version: [Chrome/ Most recent]
Operating System: [Windows 10 32 bit]
Issue Description: [Brew not accessible "application error"] the link used to be http://homebrewery.naturalcrit.com/share/SybFKJVkH
Brew code to reproduce: none

Looks to be working now. From 6:10pm UTC  to 7:10pm UTC there were over 1,500 timeout errors on the server. I am currently investigating why this happened.

Related to the database migration I had to do a while back. Fixed.


gce-cli: compute-address and other network calls hang because no region

Several commands in ./gcloud.sh hung because they expected region (both create and describe).
++ gcloud --project openshift-gce-devel compute addresses describe origin-ci-master-network-lb-ip '--format=value(address)'
For the following addresses:
 - [origin-ci-master-network-lb-ip]
choose a region:
 [1] asia-east1
 [2] europe-west1
 [3] us-central1
 [4] us-east1
 [5] us-west1
Please enter your numeric choice:  3

I added --region flags to all the commands that didn't have it specified and that fixed the issue.
$ gcloud version
Google Cloud SDK 130.0.0
alpha 2016.01.12
beta 2016.01.12
bq 2.0.24
bq-nix 2.0.24
core 2016.10.07
core-nix 2016.03.28
gsutil 4.21
gsutil-nix 4.18

Opened a potential fix, haven't tested this on older gcloud versions


Upgrade to SDL 2.0

There's currently issues in SDL 1.2 preventing it from linking with RecastDemo when using Visual Studio 2015.  Given this, it's probably time to upgrade to 2.0.  There shouldn't be a whole lot of issues in the process, as RecastDemo mostly just relies on it for input events and creating a window with a gl context.

Last I saw @rwindegger uses SDL 2 over in his fork. Though it's probably too diverged to be easily integrated.


Different results for scipy.fft.fft() when passing different types of argument (DataFrame, np.array) with the same values

Describe your issue.
From the attached CSV file, input_data.csv, I import the, say, test_list. Then, I create a pd.Dataframe to store my data in test_df.
from scipy import fft
import numpy as np

test_df = pd.DataFrame(index=range(len(test_list)), columns=['test'])
test_df['test'] = test_list

I want to calculate the FFT transform of the signal in test_df['test']. However, I get different results when I pass as input different types of arguments to the scipy.fft.fft().
Once I pass the signal as a nympy.array I get the plot #1.

Once I pass the signal as a pd.Dataframe I get the plot #2.

Both inputs, np.array and pd.DataFrame contain the same information.
From the problem definition the plot#2 seems to have a better physical interpretation.
However, it is not clear why I get different results.
May be it is a bug?
The code I use is below:
from scipy import fft
import numpy as np

test_df = pd.DataFrame(index=range(len(test_list)), columns=['test'])
test_df['test'] = test_list

########## PLOT 1: from Numpy  ##############

to_np = test_df['test'].to_numpy()
print(to_np)

fft_output = fft.fft(to_np)
power = np.abs(fft_output)
freq = fft.fftfreq(len(to_np))

mask = freq >= 0
freq = freq[mask]
power = power[mask]

plt.plot(freq, power)
plt.show()

########## PLOT 2: from pd.DataFrame  ##############

to_df = test_df['test'].to_frame()
print(to_df)

fft_output = fft.fft(to_df)
power = np.abs(fft_output)
freq = fft.fftfreq(len(to_df))

mask = freq >= 0
freq = freq[mask]
power = power[mask]

plt.plot(freq, power)
plt.show()

Reproducing Code Example
from scipy import fft
import numpy as np

test_df = pd.DataFrame(index=range(len(test_list)), columns=['test'])
test_df['test'] = test_list

########## PLOT 1: from Numpy  ##############

to_np = test_df['test'].to_numpy()
print(to_np)

fft_output = fft.fft(to_np)
power = np.abs(fft_output)
freq = fft.fftfreq(len(to_np))

mask = freq >= 0
freq = freq[mask]
power = power[mask]

plt.plot(freq, power)
plt.show()

########## PLOT 2: from pd.DataFrame  ##############

to_df = test_df['test'].to_frame()
print(to_df)

fft_output = fft.fft(to_df)
power = np.abs(fft_output)
freq = fft.fftfreq(len(to_df))

mask = freq >= 0
freq = freq[mask]
power = power[mask]

plt.plot(freq, power)
plt.show()

SciPy/NumPy/Python version and system information
1.10.1 1.23.5 sys.version_info(major=3, minor=9, micro=16, releaselevel='final', serial=0)
Build Dependencies:
  blas:
    detection method: cmake
    found: true
    include directory: unknown
    lib directory: unknown
    name: OpenBLAS
    openblas configuration: unknown
    pc file directory: unknown
    version: 0.3.18
  lapack:
    detection method: cmake
    found: true
    include directory: unknown
    lib directory: unknown
    name: OpenBLAS
    openblas configuration: unknown
    pc file directory: unknown
    version: 0.3.18
Compilers:
  c:
    commands: cc
    linker: ld64
    name: clang
    version: 13.1.6
  c++:
    commands: c++
    linker: ld64
    name: clang
    version: 13.1.6
  cython:
    commands: cython
    linker: cython
    name: cython
    version: 0.29.33
  fortran:
    commands: gfortran
    linker: ld64
    name: gcc
    version: 12.1.0
  pythran:
    include directory: /private/var/folders/_f/lyvxf0v13gs7984d7sf7j83c0000gn/T/pip-build-env-oi1yv7w9/overlay/lib/python3.9/site-packages/pythran
    version: 0.12.1
Machine Information:
  build:
    cpu: aarch64
    endian: little
    family: aarch64
    system: darwin
  cross-compiled: false
  host:
    cpu: aarch64
    endian: little
    family: aarch64
    system: darwin
Python Information:
  path: /private/var/folders/_f/lyvxf0v13gs7984d7sf7j83c0000gn/T/cibw-run-re4zhq8x/cp39-macosx_arm64/build/venv/bin/python
  version: '3.9'

It seems that it is a numpy issue


[OnlineMeeting&Jan.17]SeaTunnel community meeting Topic collect

CalvinKirs invites you to a meeting on Tencent Meeting
Meeting Topic: SeaTunnel Community Meeting
Time: 2023/01/17 20:00-21:00 (GMT+08:00) China Standard Time - Beijing
Click the link to join the meeting or to add it to your meeting list:
https://meeting.tencent.com/dm/JVPnDkfKaDLG
#TencentMeeting：391-436-432
Copy this invitation and open in Tencent Meeting app (V2.13 or later) to join the meeting
Everyone is very welcome to join:
If you have an issue, please submit it one day before the meeting, and provide a specific issue link and context.

pull request: #3939
issue: #2492
About the spotless plugin.

#3952 Support config check

#3954 Support save mode

For some PRs that have not been updated for a long time and no response, do we have contributors who are willing to complete the development on this basis?

#3964 Upgrade flink version

#3431

For some PRs that have not been updated for a long time and no response, do we have contributors who are willing to complete the development on this basis?

I want to try


Start wayvnc only once

ERROR: ../src/ctl-server.c: 696: Another wayvnc process is already running.

Fixed