[New chain]: Celo Alfajores Testnet - deployment problem

ChainId
44787
Chainlist
https://chainlist.org/chain/44787
Contract deployed
The contracts deployed on different addresses than expected
Version of contracts deployed
v1.4.1
Relevant information
Logs:
─➤ npm run deploy-custom
<EMAIL_ADDRESS>deploy-custom
rm -rf deployments/custom && npm run deploy-all custom
<EMAIL_ADDRESS>deploy-all
hardhat deploy-contracts --network custom
Nothing to compile
No need to generate any newer typings.
reusing "SimulateTxAccessor" at 0x4dbfCDd25092cEaaF804608FbF13bA24dEa9acbF
reusing "SafeProxyFactory" at 0x8278066FD89fA0c77CB21528c34045903F4B3FeA
reusing "TokenCallbackHandler" at 0xbf05d26F7B9D8B4dE839AFf55EA3Cdf619e47c06
reusing "CompatibilityFallbackHandler" at 0x0C9354F975928Db26A74c44d59c11281Fb0731b8
reusing "CreateCall" at 0x008Bc9f122c7AD866A75f8a839f6ECFb6b03035A
reusing "MultiSend" at 0x6b71Cd2640154C328719243c5d800d450b96c0ae
reusing "MultiSendCallOnly" at 0x52C138d84a8993B8f232c0F4FF6fdfead56f5667
reusing "SignMessageLib" at 0x9c9ED7b43b7732E93099569ab96761A908C5A1c8
reusing "SafeToL2Setup" at 0x7011B85393d9e967D4bd890Bf4D15EcBe3364BF9
reusing "Safe" at 0xA526EEBDa5F1A2651EfC3D3E304Be78fF5776a33
reusing "SafeL2" at 0x364031E6e0A4A36321e7463f91baaaDfDaC9dece
reusing "SafeToL2Migration" at 0x6e330ead81d5E06fB8B9dd8cfAdCCD05d796D89D
reusing "SafeMigration" at 0xDeb315F6572653d3161b208d59C5fc56CE9BEf53
Verification status for SimulateTxAccessor: SUCCESS
Verification status for SafeProxyFactory: SUCCESS
Verification status for TokenCallbackHandler: SUCCESS
Verification status for CompatibilityFallbackHandler: SUCCESS
Verification status for CreateCall: SUCCESS
Verification status for MultiSend: SUCCESS
Verification status for MultiSendCallOnly: SUCCESS
Verification status for SignMessageLib: SUCCESS
Verification status for SafeToL2Setup: SUCCESS
Verification status for Safe: SUCCESS
Verification status for SafeL2: SUCCESS
Verification status for SafeToL2Migration: SUCCESS
Verification status for SafeMigration: SUCCESS
already verified: SimulateTxAccessor (0x4dbfCDd25092cEaaF804608FbF13bA24dEa9acbF), skipping.
already verified: SafeProxyFactory (0x8278066FD89fA0c77CB21528c34045903F4B3FeA), skipping.
already verified: TokenCallbackHandler (0xbf05d26F7B9D8B4dE839AFf55EA3Cdf619e47c06), skipping.
already verified: CompatibilityFallbackHandler (0x0C9354F975928Db26A74c44d59c11281Fb0731b8), skipping.
already verified: CreateCall (0x008Bc9f122c7AD866A75f8a839f6ECFb6b03035A), skipping.
already verified: MultiSend (0x6b71Cd2640154C328719243c5d800d450b96c0ae), skipping.
already verified: MultiSendCallOnly (0x52C138d84a8993B8f232c0F4FF6fdfead56f5667), skipping.
already verified: SignMessageLib (0x9c9ED7b43b7732E93099569ab96761A908C5A1c8), skipping.
already verified: SafeToL2Setup (0x7011B85393d9e967D4bd890Bf4D15EcBe3364BF9), skipping.
already verified: Safe (0xA526EEBDa5F1A2651EfC3D3E304Be78fF5776a33), skipping.
already verified: SafeL2 (0x364031E6e0A4A36321e7463f91baaaDfDaC9dece), skipping.
already verified: SafeToL2Migration (0x6e330ead81d5E06fB8B9dd8cfAdCCD05d796D89D), skipping.
already verified: SafeMigration (0xDeb315F6572653d3161b208d59C5fc56CE9BEf53), skipping.

Solved


Mariadbredirection

#label:"aq-pr-triaged"

Merging with PM @aditivgupta approval. Thanks for the review.


How can we use this for image captioning any tutorial or documentation exists?

I want to load as 4bit and do image captioning
Any turorial example documentation exists?

Please visit https://github.com/QwenLM/Qwen-VL for further details. Kindly note that the official checkpoint for this model is temporarily taken down due to reasons that we are unable to disclose. Fortunately, the community has provided a checkpoint backup that can be found at https://github.com/QwenLM/Qwen-VL/issues/73


Ryan/slim ci demo

@jazzdan - simplified this even more with some new CLI API i'm adding soon:
https://buildkite.com/replay/replayable-ci-demo/builds/42#01823799-2170-4159-998d-6363703c67fe
# exit when any command fails
set -e

# The command to run to run your tests (including starting servers if necessary)
export TEST_COMMAND=${TEST_COMMAND:-'npm run test:e2e -- -- --browser "Replay Firefox"'}

# Set up Replay-specific environment variables
export RECORD_REPLAY_TEST_RUN_ID=$(npx uuid)
export RECORD_REPLAY_METADATA_FILE=$(mktemp)
export RECORD_ALL_CONTENT=1

# Install dependencies for this script
npm i -g<EMAIL_ADDRESS>
# Start Dev Server or configure BASE_URL and run your tests
eval ${TEST_COMMAND} || true

replay metadata --init --keys source --warn
replay upload-all

Once we can set env variables for cypress in the adapter, it could simplify to:
# The command to run to run your tests (including starting servers if necessary)
export TEST_COMMAND=${TEST_COMMAND:-'npm run test:e2e -- -- --browser "Replay Firefox"'}

# Start Dev Server or configure BASE_URL and run your tests
eval ${TEST_COMMAND} || true

npm i -g<EMAIL_ADDRESS>replay metadata --init --keys source --warn
replay upload-all

that is sick


Rename identity to id

The name is too long for such a frequently needed function IMO.
x => x is shorter :(
I would also consider renaming of arithmetic functions to make them more similar to R.add.

R.identity -> R.id
R.subtract -> R.sub
R.multiply -> R.mul
R.divide -> R.div

In this way they will still pop up in search.
Of course I propose to alias current versions until 1.0.
Who feels the same?

I'd be happy with R.I for identity, but id is good too, i certainly prefer it to identity

:+1: on identity -> id.
But :-1: on the others.  Everyone knows what operation will be performed by "subtract".  But "sub" could represent "substitute", "subscript", or others.  And "div" might be an HTML node.  While I can't think of anything that might be confused with "mul", I'd prefer the consistency of the full words.    And again, anyone who reads "multiply" will surely understand what is meant.
And for those who want shorter names,
import {multiply as mul, divide as div, subtract as sub} from 'ramda'

... or some other variant.

I find identity more expressive, as a matter of personal opinion.
id is often used as "id" of an object, in this case
var ramda = require('ramda')
var id = ramda.id

would feel like the "id" of the ramda object :)

I agree with @dmitriz, in my mind id is connoted to objects. I think it might be confusing.

👎  id is quite hostile to users installing Ramda into the global scope one way or the other. The chance of shadowing is very high. From my own experience, there are currently very few functions for which the issues comes up at all (path in node environments being the only prominent example, really).

I agree with @dmitriz, in my mind id is connoted to objects. I think it might be confusing.

Only if you import that as let {id} = require("ramda"). And this is the style many people start with but everyone ends with R.whatever anyway ;) Because managing lists with tens of functions in every module is a huge waste of time. And R.id is diamond clear.
I tried so hard to stick with plain names because I thought R.map etc. were ugly.
It was a matter of a single day to force myself change my habits and enjoy that in the end.

If we're going to bring back R.I can we rename R.always to R.K? :wink:

R.always is not the K combinator (whose type is a -> b -> a).

Maybe I'll 'fix' that if I ever finish #1609.

$0.02: happy to have K :: a -> b -> a as well as always :: a -> () -> a.

I'm personally not happy with the single-character names.  Even T and F feel wrong to me.

Even T and F feel wrong to me.

Why "even"?

Those feel the most natural. I've seen them in many environments.  I think most native English speakers would have little doubt about them when viewed as a pair.
And yet I still would prefer more explicit names.

And yet I still would prefer more explicit names.

What could be more explicit than R.always(true) and R.always(false)? ;)


Refactor the conflicts episode; closes #80

Work in progress ...

It looks very nice, simple, non-intimidating, and to the point.  Very good!

Thank you for the comments! I will patch these issues and then merge.


Duplicate key problem in json

I found body_types.json does not work correctly and fixed the issue. Hopefully the following explanation helps.
Problem
Not all the items shown on ComfyUI Prompt selection of body types.
When I press right arrow button repeatedly, then  the choices loop after "overweight" and jump to "fat" repeatedly.
Cause of the problem
I checked the data file,  I noticed there are two "overweight" items, and two "flabby" items.
It seems to be when python loads the duplicate items, then it could have misjudged the current item number and returned to the next position of the FIRST item. In this case, the next item of the first "overweight" was "fat".
Debug
I erased those duplicate items ("overweight", "flabby"), and restart ComfyUI, then problem solved.
The strange loop does not occur.
Solutions
delete duplicate keys manually
Simple and it worked. But if there are a lot of files, you could overlook.
Python program fix
flux_prompt_generator.py
Following code is an example of duplicate item remover when loading json files.
import json
import os

def remove_duplicates(list):
    seen = set()  # set is used for "non-duplicate" data structure
    result = []
    for item in list:
        if item not in seen:
            seen.add(item)
            result.append(item)
    return result

def load_json_file(file_name):
    file_path = os.path.join(os.path.dirname(__file__), "data", file_name)
    with open(file_path, "r") as file:
        temp_list = json.load(file)
        print(temp_list)   #for debug(duplicate items still exist)
        return remove_duplicates(temp_list)

BODY_TYPES = load_json_file("body_types.json")
print(BODY_TYPES)  # for debug (duplicate items removed)

body_types.json duplicate items *, ** marked
[
    "pretty",
    "chubby",
    "midweight",
    "overweight",           *
    "fat",
    "flabby",                     **
    "buxom",
    "voluptuous",
    "hefty",
    "pudgy",
    "plump",
    "obese",
    "morbidly obese",
    "stout",
    "rotund",
    "thick-bodied",
    "thicc",
    "thick",
    "beefy",
    "portly",
    "tubby",
    "overweight",            *
    "(slightly overweight)",
    "buff",
    "burly",
    "fit",
    "well-built",
    "well-endowed",
    "muscular",
    "stocky",
    "big-boned",
    "curvy",
    "flabby",                       **
    "flyweight",
    "skinny",
    "too skinny",
    "anorexic",
    "not skinny",
    "slender",
    "lanky",
    "slim",
    "slight"
]

thank you for noting that, It has already been fixed


Fix building Carthage with Xcode 11.4.1

I deleted the xcode project file and regenerate it. It looks like that the project file is not compatible with the new Xcode 11.4.1.

It builds but I have trouble when starting the app. while I am fixing it, I convert the PR to draft.

ok, it takes me a half of the day to look into this issue. It seems that something has changed in Xcode 11.4 with swift package manager. Someone has written a summary of the issue here: https://github.com/renaudjenny/Swift-Package-Manager-Static-Dynamic-Xcode-Bug
Since RxSwift is linked using SPM into XCoordinator project, it will be statically linked. Since my project also has RxSwift linked, I will have a library conflict.
I have tried to force RxSwift to be built as a dynamic framework https://github.com/antranapp/RxSwift/commit/722615a926029289acd671dcf95a7494d41caf06 , it seems to work as my App can be built and started without any library conflicts. But it seems like a hack and not a real fix.
I need more time to investigate what is happening with XCoordinator when integrating using Carthage. I'll close this PR for now.


Why my private repo names are in public ?

https://label-bot-prod.mlbot.net/repos/aryanvikash

Try https://github.com/apps/issue-label-bot, "Configure", select your own account, then instead of "all repositories" you should select specific repos you want to enable this bot on.


Clarification on Bot Endpoint Exposure

Type of issue
Other (describe below)
Feedback
It would be better to add a note in this section explaining that, "Teams bot, being based on the Microsoft Bot Framework, must be accessible on the internet, and via an https endpoint. However, that endpoint is never exposed to anyone at all (it's bound only between Microsoft's Bot Framework and your internal address)."
Page URL
https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/debug/locally-with-an-ide
Content source URL
https://github.com/MicrosoftDocs/msteams-docs/blob/main/msteams-platform/bots/how-to/debug/locally-with-an-ide.md
Author
@surbhigupta
Document Id
b9e40da9-1029-f65f-18b5-f450a8ea87d2

Hi @surbhigupta12 - Could you please help here to update the document?


All-Permutations cpp leetcode using Recursion

Permutations cpp leetcode answer using recursion

Great work @Atharva-77 please give this repo a star if it really helped you to complete your PR.
Also follow me for follow back if you want to get connected with me for any such open source contribution program. Thank you 😊


best way to add own project outside of build

Hello and thanks so far
Im trying to add my own executable working in clion:
Details

====================[ Build | mastersAPP | Release ]============================
/home/mirko/Downloads/clion/bin/cmake/linux/x64/bin/cmake --build /home/mirko/OneDrive/codespace/fri_cmake/build --target mastersAPP -- -j 6
[ 33%] Built target FRIClient
[ 35%] Building CXX object CMakeFiles/mastersAPP.dir/masters/masters.cpp.o
[ 38%] Building CXX object CMakeFiles/mastersAPP.dir/masters/mastersclient.cpp.o
[ 41%] Building CXX object CMakeFiles/mastersAPP.dir/CMakeFiles/3.27.8/CompilerIdCXX/CMakeCXXCompilerId.cpp.o
[ 43%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/IOAccess/IOAccessApp.cpp.o
[ 46%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/IOAccess/IOAccessClient.cpp.o
[ 48%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/LBRClientTemplate/MyLBRApp.cpp.o
[ 51%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/LBRClientTemplate/MyLBRClient.cpp.o
[ 53%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/LBRJointSineOverlay/LBRJointSineOverlayApp.cpp.o
[ 56%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/LBRJointSineOverlay/LBRJointSineOverlayClient.cpp.o
[ 58%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/LBRTorqueSineOverlay/LBRTorqueSineOverlayApp.cpp.o
[ 61%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/LBRTorqueSineOverlay/LBRTorqueSineOverlayClient.cpp.o
[ 64%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/LBRWrenchSineOverlay/LBRWrenchSineOverlayApp.cpp.o
[ 66%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/LBRWrenchSineOverlay/LBRWrenchSineOverlayClient.cpp.o
[ 69%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/SimulatedTransformationProvider/SimulatedTransformationProviderApp.cpp.o
[ 71%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/SimulatedTransformationProvider/SimulatedTransformationProviderClient.cpp.o
[ 74%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/TransformationProvider/TransformationProviderApp.cpp.o
[ 76%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/example/TransformationProvider/TransformationProviderClient.cpp.o
[ 79%] Building CXX object CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/src/base/friClientApplication.cpp.o
In file included from /home/mirko/OneDrive/codespace/fri_cmake/build/FRI-Client-SDK_Cpp/src/base/friClientApplication.cpp:64:
/home/mirko/OneDrive/codespace/fri_cmake/build/FRI-Client-SDK_Cpp/src/base/friClientData.h:65:10: fatal error: FRIMessages.pb.h: No such file or directory
   65 | #include "FRIMessages.pb.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[3]: *** [CMakeFiles/mastersAPP.dir/build.make:314: CMakeFiles/mastersAPP.dir/FRI-Client-SDK_Cpp/src/base/friClientApplication.cpp.o] Error 1
gmake[3]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/Makefile2:279: CMakeFiles/mastersAPP.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:286: CMakeFiles/mastersAPP.dir/rule] Error 2

Details

################
# build masters
################
file(GLOB_RECURSE MASTERS_SOURCES RELATIVE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/masters *.cpp)
#file(GLOB_RECURSE MASTERS_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/masters/src *.cpp)

add_executable(mastersAPP
        ${MASTERS_SOURCES}
)

target_include_directories(mastersAPP
        PRIVATE
        ${CMAKE_CURRENT_BINARY_DIR}/${FRIClient_SDK_NAME}/
        ${CMAKE_CURRENT_SOURCE_DIR}/masters/include
        # Add other include directories if needed
)

target_link_libraries(mastersAPP
        PRIVATE

        FRIClient
        #${CMAKE_CURRENT_BINARY_DIR}/${FRIClient_SDK_NAME}/FRIClient
        # Add other libraries if needed
)

➜  fri_cmake git:(fri-1.17) ✗ tree --nolinks -L 1
.
├── build
├── CMakeLists.txt
├── FRI-Client-SDK_Cpp.zip
├── LICENSE
├── masters
└── README.md

2 directories, 4 files

Im missing something here since iam no pro in cmake.

Found the error.. CMake was adding all files *.cpp to my sources..
file(GLOB_RECURSE MASTERS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/masters/*.cpp)
file(GLOB_RECURSE MASTERS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/masters/ *.cpp)

hi @MightyMirko and sorry for the late response. Sorry I haven't used clion before.
However, one way to achieve what you are trying to do is the following:

Add this repo as submodule to your project: git submodule add https://github.com/lbr-stack/fri.git
In your top level CMakeLists.txt add

add_subdirectory(fri) # defines FRIClient::FRIClient target
...
target_link_libraries(your_target FRIClient::FRIClient)

Hey Martin,
i've read a bit and got more proficient with cmake. I'm using clion
Gist for others to use
CLion Settings:

cool thanks for sharing @MightyMirko . So one note, you won't have to add the include directories explicitly, as they are all included in the FRIClient::FRIClient CMake target. There exist tutorials on CMake, e.g. here https://cliutils.gitlab.io/modern-cmake/


Upgrade lezer to v0.12.0

the version 12 of lezer forced us to add a name to the top of the Grammar. That's maybe the major changes

:+1: Thanks!


Added postgres monitor

Description
Fixes #1774
Main changes

The default value for connection string was moved from value to placeholder. I'm not sure how to create multiple default values for a v-model that change based on the select, so I used the template to change the input placeholder, which performs basically the same function.
Using the node-postgres (pg) module for the connection
Using already existing db fields

Because of https://github.com/brianc/node-postgres/issues/1927 (pg has an issue where if you put a non-string (no password) password the app crashes), I added a check to verify that the password is not empty. The password library (also from pg) returns "" if the password is blank. If we get that, then reject.
Here's what comes if we don't check:
throw new Error('SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string')

Type of change

New feature (non-breaking change which adds functionality)

Checklist

[x] My code follows the style guidelines of this project
[x] I ran ESLint and other linters for modified files
[x] I have performed a self-review of my own code and tested it
[x] I have commented my code, particularly in hard-to-understand areas
(including JSDoc for methods)
[x] My changes generate no new warnings
[ ] My code needed automated testing. I have added them (this is optional task)

Screenshots (if any)

Testing
Start a database
docker run --name pgsql-dev  -e POSTGRES_PASSWORD=test1234  -p 5432:5432  -d postgres

Add a new monitor with connection string
postgres://postgres:test1234@<IP_ADDRESS>:5432/postgres

And query
select version()

A connection string can be verified with
psql -Atx postgres://postgres:test1234@<IP_ADDRESS>:5432/postgres -c 'select current_date'

@Computroniks - off topic -  I understand your pickiness about the format, I also prefer consistency in there.
However, eslint is the only required js check in here, so it seems unfair to pr's to find whitespace changes. Since it is good to have consistent style, and these changes should be made, why isn't something like prettier used to make the format consistent in the js files? It seems better than having to to through pr's twice checking for extra line breaks ;) I feel like it would save you a lot of time!

Good idea, I'll see what eslint offers for that, and what the impact would be of using a formatter.

I tried w/ xo, which uses the eslint config, and then adds some format recommendations (I didn't add the prettier one, I think its not needed with the default xo).
Try it out, maybe it will be your dream come true, I see a lot of add/remove lines :)
Add this to the end of the package.json. Its an xo config that seems to most closely match the informal code style of kuma. I might have missed some options, but its pretty close for starters.
"xo": {
        "space": 4,
        "globals":[
            "localStorage",
            "window",
            "document",
            "process",
            "name",
            "location"
        ],
        "rules": {
            "unicorn/prefer-module": "off",
            "quotes": [
                "error",
                "double"
            ],
            "import/no-anonymous-default-export": "off",
            "unicorn/filename-case": "off",
            "object-curly-spacing": "off",
            "import/extensions": "off",
            "array-bracket-spacing": "off",
            "comma-dangle": "off",
            "capitalized-comments": "off",
            "unicorn/no-process-exit":"off",
            "n/prefer-global/process":"off"

        }
    }

Then run npx xo to see what it recommends. Since it is using eslint as well, xo could probably replace eslint as the linter in the npm scripts. But see what you think!

Shouldn't we have common monitor page for all SQL based databases and let user decide the driver?

Shouldn't we have common monitor page for all SQL based databases and let user decide the driver?

hi @daveRanjan, how do you anticipate that looking?
I think it is pretty clean to continue using the primary dropdown select. Each database uses a different npm package, and each database uses a different type of connection string. I'm not sure what advantage there is in making a new page we the main editor already has many good options.
The only similarity we have between sql connections (currently) is that they can share a database field with the connection string and query. But that could easily change if someone adds a more complex database, or a database that does not use a single connection string.


Select function

Method of the object to downselect times/pols/freqs etc.

I'm working on this on the select branch. I now have methods on UVData to select specific blts, antennas, times, frequencies or polarizations and to update all the appropriate parameters. I also have some tests, although those should probably be expanded. Do we want a method that can take selections on more than one of these axes and then call the appropriate axis-specific method?

I think that's a good idea, a uv.select() which calls e.g. select_antennas().  Would the syntax work to have select() able to call multiple axis-specific selectors simultaneously?

I think right now I'd have it call them sequentially but that would be
hidden from the user, so if you passed restrictions on several axes it'd do
all of them before returning. If that sounds good I'll just need to think a
little bit about what to call the various keywords for the different axes
so that it'll be clear.
On Thu, Mar 2, 2017 at 4:27 PM, Jonathan Pober<EMAIL_ADDRESS>wrote:

I think that's a good idea, a uv.select() which calls e.g.
select_antennas(). Would the syntax work to have select() able to call
multiple axis-specific selectors simultaneously?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/HERA-Team/pyuvdata/issues/38#issuecomment-283827151,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC8SRWmiqdbUZTFjdFffhwex57FRQeDbks5rh15kgaJpZM4Ir5om
.

Implemented.


Cannot create new file (Node 16)

I'm submitting a ...
[ ] language request
[x] bug report
[ ] feature request
[ ] question about the decisions made in the repository
[ ] question about how to use this project

Summary

I just get start with this tool.
I was sending this command on the CLI (I already init the folder - it worked):
adr new "no need for monorepo"
This is the error message:
/Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/build/main/lib/create.js:35
    console.log(i18n.logSavePath + savePath);
                     ^

TypeError: Cannot read properties of undefined (reading 'logSavePath')
    at create (/Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/build/main/lib/create.js:35:22)
    at /Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/build/main/cli.js:23:29
    at Array.forEach (<anonymous>)
    at Command.<anonymous> (/Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/build/main/cli.js:23:12)
    at Command.listener [as _actionHandler] (/Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/node_modules/commander/index.js:413:31)
    at Command._parseCommand (/Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/node_modules/commander/index.js:914:14)
    at Command._dispatchSubcommand (/Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/node_modules/commander/index.js:865:18)
    at Command._parseCommand (/Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/node_modules/commander/index.js:882:12)
    at Command.parse (/Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/node_modules/commander/index.js:717:10)
    at Object.<anonymous> (/Users/anton/.nvm/versions/node/v16.14.1/lib/node_modules/adr/build/main/cli.js:78:9)

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. StackOverflow, personal fork, etc.)

Any idea? Am I doing it wrong?

It seems it's a language issues? Could you share you .adr.json ? like:
{"language":"en","path":"docs/adr/","prefix":"","digits":4}

@phodal thanks! you are right. I changed the config to en and it worked. I had it set to en-us.
Maybe this should be added to the docs.
Thanks for your help!

Sorry for it, maybe we need to follow the standard i18n spec.


Added localized short weekday name

Description

Get localized short weekday name of the current instance.
Motivation and Context

In my current working app. Those are some ui controls need show short weekday, the full weekday is too long. Such as a calendar.
How Has This Been Tested?

I just test it in playground. But not committed those test code.
Types of changes

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

Checklist:

[x] My code does not leave warnings unattended.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

moment(Date()).format("EEE") will get what I want. Sorry for this PR.


A few more sub-country pseudo codes

This is not a high priority issue, but maybe a nice-to-have.
CountryCoder and LocationConflation are integrated into Name Suggestion Index now which is pretty cool..
Check out the entries on https://nsi.guide to see what I mean:

A thing I am running into is:
Some countries like US, GB, FR include a bunch of sub territories.  Technically the US includes Marshall Islands and GB includes Bermuda.  FR is nice because we can use the code FX to mean "Metropolitan France".   But for some situations, it would be really nice to have dedicated code strings for:

Contiguous United States (aka lower 48) - https://en.wikipedia.org/wiki/Contiguous_United_States
AK / HI  / US + AK + HI as separate queryable geometries
British Isles - https://en.wikipedia.org/wiki/British_Isles
England / Scotland / Wales / North Ireland as separate queryable geometries
maybe others?

I'm not familiar with what all countries contain territories, and not sure to what extent Country Coder already includes some of these.. just brainstorming that it would be nice to say 'conus' or 'scotland' to return just those parts.

Hmm I see where this lack of granularity could be annoying. I'm wary of starting to add political sub-territories just because they exist (#19). But I do think adding a few regions like these that are commonly considered culturally or geographically distinct would be pretty helpful without adding much overhead. Overseas territories in particular should have their own identities.

Cool - yeah I think anything that has its own Wikidata QID it's at least notable enough for inclusion, even if it doesn't have a ISO country code.

I added 100 new features in v4.0.0, I think we can close this. People should feel free to open new issues if they need more!


Extract failing with core dumps when trying to start

I am trying to configure the replicat process with bdglue jars for Google BigQuery as a target.
When I try to start the extract process it keeps failing with a core dump.
Not sure how to proceed further.
Please take a look.

Link to logs:
https://drive.google.com/file/d/0B-awO7rBxBvcalFEN3JQakU2NzQ/view?usp=sharing
https://drive.google.com/file/d/0B-awO7rBxBvcdmF6cTRrZVJ1bGs/view?usp=sharing

It does not look like your process is getting into GG code ... so may be environmental. Please be sure to set the log level in the repbq.properties file to DEBUG so we can get some info as the process is trying to start. Also include the parameter file (repbq.prm), the properties file (repbq.properties), and the bdglue properties (ggbq/bdglue.properties).

BTW, by "not getting to GG code", I can see that GG is trying to start, but it is indicating a JRE error before things begin coming up. I see that you are using OpenJDK ... While in theory it should work, I don't know that any testing has been done with that. You might try a Java SE download from Oracle to take OpenJDK out of the picture, and then switch back once you have it working.


clean up comments and simplify acc metric

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for the updates!


MODREQMED-8: Migrate to Spring boot 3.3.0

Purpose
Migrate from Spring Boot 3.1 to 3.3
MODREQMED-8
Approach
How does this change fulfill the purpose?
TODOS and Open Questions

[ ] Use GitHub checklists. When solved, check the box and explain the answer.

Learning
Describe the research stage. Add links to blog posts, patterns, libraries or addons used to solve this problem.

This PR is waiting for folio-spring-support release 8.2.0 which brings Spring Boot 3.3.0


Not all columns populated on column addition

Describe the bug
Rerunning dbt run with changed columns leads to dropped columns.
Steps To Reproduce
Change schema of table (add new column) and rerun table only populates a limited set of columns.
old table1:
a
b
d
Adding new column:
c
D doesn't get populated.
Expected behavior
All columns populated in new table.
Screenshots and log output
System information
The output of dbt --version:
Core:
  - installed: 1.7.8
  - latest:    1.7.8 - Up to date!

Plugins:
  - databricks: 1.7.8 - Up to date!
  - spark:      1.7.1 - Up to date!

The operating system you're using:
The output of python --version:
Python 3.11.4
Additional context

Can you provide more details...specifically, when you say you added a column, did your SQL change, your schema.yml, or both?  Do you see the same behavior with 1.7.7?

What is your on_schema_change set to?  Note, per https://docs.getdbt.com/docs/build/incremental-models#default-behavior, if you have not expressly set an on_schema_change, the expected behavior is actually to keep d and not add c, which is surprising to me.

My SQL changed.
And the on_schema_change is set to sync_all_columns. I think it also breaks if it is set to append_new_columns as well.

I have not tested with 1.7.7. I do not see this behavior with 1.6.4. And this bug doesn't happen if I run --full-refresh/recreate the table.

1.7.8 specifically has a change that I'm concerned about, so if you could validate with 1.7.7 I would appreciate it.  Thanks for filing the bug.

1.7.7 works fine and did not break.

@case-k-git looks a regression introduced by your change.  Would love if you could help debug, but understand if you can't.

@JamesYouL2 for now, I recommend 1.7.7 if it works for you.  I will try to get another patch of 1.7.x in the next week or so to fix this and any other small things that come up, but otherwise I'm heads down on 1.8.0 compat work.  Apologies that our tests didn't catch this, will add a ticket to my backlog for that.

Sure. let me check it.

Hi @JamesYouL2
Let me check more detail. Have you tired is under the way?
Step 1: Create the under column model
a
b
d
Step 2 Adding new column(c) and remove column(d):
a
b
c
Step 3 Rerun and confirm column d is dropped
a
b
c
Could you please let me check if my understanding is correct?
I have checked documentation and drop columns seems to be expected behavior.

sync_all_columns: Adds any new columns to the existing table, and removes any columns that are now missing. Note that this is inclusive of data type changes. On BigQuery, changing column types requires a full table scan; be mindful of the trade-offs when implementing.

https://docs.getdbt.com/docs/build/incremental-models#what-if-the-columns-of-my-incremental-model-change

I have checked but could not confirm it. This is the step what I did.
@JamesYouL2  Could you please let me know more detail how did you confirm it? I will test it.
Step1:  Execute under the SQL(only id columns)
{ config(
    materialized='incremental',
    incremental_strategy='append',
    on_schema_change='sync_all_columns',
    tags=["daily"]
) }}

select id, date from {{ ref('daily_model') }}

Step2:  Add the date column
{ config(
    materialized='incremental',
    incremental_strategy='append',
    on_schema_change='sync_all_columns',
    tags=["daily"]
) }}

select id, date from {{ ref('daily_model') }}

Step 3: Confirm New columns is added as expected

Logs
dbt --version
Core:
  - installed: 1.7.8
  - latest:    1.7.8 - Up to date!

Plugins:
  - databricks: 1.7.8 - Up to date!
  - spark:      1.7.1 - Up to date!

dbt run
09:31:21  Running with dbt=1.7.8
09:31:22  Registered adapter: databricks=1.7.8
09:31:22  Found 2 models, 1 source, 0 exposures, 0 metrics, 535 macros, 0 groups, 0 semantic models
09:31:22
09:31:24  Concurrency: 1 threads (target='dev')
09:31:24
09:31:24  1 of 2 START sql table model schema_demo.daily_model ........................... [RUN]
09:31:27  1 of 2 OK created sql table model schema_demo.daily_model ...................... [OK in 3.11s]
09:31:27  2 of 2 START sql incremental model schema_demo.daily_model_2 ................... [RUN]
09:31:32  2 of 2 OK created sql incremental model schema_demo.daily_model_2 .............. [OK in 5.36s]
09:31:33
```

@case-k-git  Yeah, sync_all_columns only could do something meaningfully different from append on certain non-Delta formats (for now; there is a feature in preview right now that will allow 'dropping' columns by hiding them).  So if column d is going away, I think one of 3 things must be true:

This is happening on a format that supports column drop (not sure if this is even possible in Databricks, but I haven't ruled it out).
Column d is getting renamed to c; I think this might be one of those cases where Databricks does a merge by order rather than by name.
Something else very weird is happening in the merge statement

@JamesYouL2 if you could either share a redacted version of the merge statement from your dbt.log when running with 1.7.7 and 1.7.8, or file a ticket with Databricks with the complete log, that could probably speed up diagnosing the issue.

@benc-db we are having the same issue since exactly the time of the version upgrade to v1.7.8 with the same configuration scenario as @case-k-git except that our model build is not failing, it is just not writing any data to the destination tables. We have not had any schema changes to our model either. We are reverting back to 1.7.7 to see if that resolves the issue.

@lachniej
Thank you for sharing. So previously you have 25 redacted columns but now you only have row_hash columns.
Does your SQL model also have 25 redacted column? or just row_hash column?
I want to check the columns of this statement 「tl.*」you shared
SELECT tl.*
FROM `****`.`****`.`****` tl

  LEFT ANTI JOIN hash_cte hcte ON **.row_hash = **.row_hash

if  SQL model statement 「tl.」 still have 25 columns and only insert row_hash column, It must be bug. But if  SQL model statement 「tl.」have only contain row_hash column  and insert row_hash  only it is the expected dbt behavior which is solved by  v1.7.8
dbt document

sync_all_columns: Adds any new columns to the existing table, and removes any columns that are now missing. Note that this is inclusive of data type changes. On BigQuery, changing column types requires a full table scan; be mindful of the trade-offs when implementing

https://docs.getdbt.com/docs/build/incremental-models

Hello @benc-db
I have tired but still can not reproduction environment.
When I think about my change, I think drop column will not happen. but as  @lachniej mention, does not write the record could be happen.Because of checking column match of source and target table.
But as I share tested, I can not reproduction environment(including lower, upper..etc).

Thanks for investigating @case-k-git.  I'll try to puzzle it out after getting the incremental functional tests that we're missing for this scenario.

@case-k-git I believe the issue is this from the INSERT page:
query -
A query that produces the rows to be inserted.

You must match the number of columns returned by the query with the specified or implied insert column list.

This is different from if we were using BY NAME, which I do want to get working at some point, but since it only works with newer DBRs, I haven't gotten around to it.

Hi all, please checkout if this PR fixes your issues: https://github.com/databricks/dbt-databricks/pull/604
I intend to release today or tomorrow, but would appreciate if anyone could validate the change beforehand.
@case-k-git to deal with the mismatched column issue, for anything in source where there is a non-matching column, I'm setting to NULL.  I believe this is the same behavior we would see if we set the tables to evolve schemas, and I will probably look at that sometime in 1.8.x, but this approach I think is more backwards compat.  Would love you to take a look at the PR.

Thank you @benc-db
We also got the comment here
https://github.com/databricks/dbt-databricks/pull/580#discussion_r1512091497

Yea I confirm this  error is caused by columns change order.
After Eeecute 2 times of model_b, change the column order of mode_b from「id ,date」to 「date, id」then null was inserted. Probably, If we did not user single loop to check columns match of source and target we will be able to fix this as he mention.

Sample
model_a
{{ config(
    materialized='table',
    ) }}

with source_data as (

    select 1 as id , '2023-11-01' as date
    union all
    select 2 as id , '2023-11-02' as date
    union all
    select 3 as id , '2023-11-03' as date
)

select *
from source_data

model_b
{{ config(
    materialized='incremental',
    incremental_strategy='append',
    on_schema_change='sync_all_columns',
    tags=["daily"]
) }}

select id, date from {{ ref('model_a') }}

Yes, I was generally hitting an issue with enumeration due to jinja producing a generator, so in my PR I've been converting them to lists.  Does my current PR have any issues?  Would I be able to validate by swapping the order of columns in my tests?

@benc-db  Thank you for solving the issue!!

Yes, I was generally hitting an issue with enumeration due to jinja producing a generator, so in my PR I've been converting them to lists. Does my current PR have any issues? Would I be able to validate by swapping the order of columns in my tests?

Hi, Thank you for solving this, but changes might raise another issue, could you please take a look. Thanks


optional component: authentication

https://community.openhab.org/t/authentication-in-oh2/1723/28
probably  via nginx revproxy

Is there anyway I can help here?

Hey @BClark09 !
I would like to provide one option allowing a user to select authentication and set up a certificate. It would be acceptable to only perform the first few steps and then tell the user what to do next.
Because of the many options and parameters it might be hard to provide one setup fitting all users.
How about that:

Prompt for authentication username and password
Install nginx, configure http and self-signed https with authentication enabled
Ask the user if he wants to set up a signed certificate, either by providing it or by creating one using Let's Encrypt.

What do you think is feasible?

I think the three steps are fine as is. You could just prompt for a username, password and a domain name (which can be left blank):

If the domain is blank, automatically detect the public IP address and use that for nginx configuration?
If the domain is blank use OpenSSL. Otherwise use Let's Encrypt?

Also a couple of considerations of using Let's Encrypt and Certbot:

It will be important to test that the domain name entered points to the detected public IP address of the Pi, and prevent the script from going further if it doesn't.
The cron setup should be at a randomly generated hour of the day, otherwise you may end up with many different Pi's all trying to connect to the Let's Encrypt servers at the same time.

Sounds doable. We'll say how far we can go.
If you want to help out, feel free to post a few commands / steps here or create a pull request.
To get an idea: https://github.com/ThomDietrich/openhabian/blob/master/openhabian-setup.sh#L415-L445

I'm not sure if the file writing part is the best way to go about it but this should be a good start? I have a spare RPi 2 if you would like me to test any builds with this.
#!/bin/bash

## These need setting from the user...
username="openhab"
password="habopen"

## This is set to the public ip if the user hasn't entered a valid domain name
domain="foo.bar"

## These are set depending on the user's prefered options...
VALIDDOMAIN=false
SECURE=true
AUTH=true

## Action
apt -y install nginx
rm -rf /etc/nginx/sites-enabled/default

if [ "$AUTH" = true ]; then
	apt -y apache2-utils
	htpasswd -b -c /ect/.htpasswd $username $password
fi

if [ "$SECURE" = true ]; then
	USINGCERTBOT=false
	if [ "$VALIDDOMAIN" = true ]; then
		USINGCERTBOT=true
		echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list
		apt update
		apt -y install certbot -t jessie-backports
		mkdir -p /var/www/$domain/
		certbot certonly --webroot -w /var/www/$domain/ -d $domain #This will cause a prompt
		certpath="/etc/letsencrypt/live/$domain/fullchain.pem";
		keypath="/etc/letsencrypt/live/$domain/privkey.pem;"
	else
		USINGCERTBOT=false
		mkdir -p /etc/ssl/certs
		certpath="/etc/ssl/certs/openhab.key"
		keypath="/etc/ssl/openhab.crt"
		openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout $certpath -out $keypath #This will cause a prompt
	fi
fi

echo "#################################" >> /etc/nginx/sites-enabled/openhab
echo "# openHABian NGINX Confiuration #" >> /etc/nginx/sites-enabled/openhab
echo "#################################" >> /etc/nginx/sites-enabled/openhab
echo "" >> /etc/nginx/sites-enabled/openhab
if [ "$SECURE" = true ]; then
	echo "server {" >> /etc/nginx/sites-enabled/openhab
	echo "        listen                          80;" >> /etc/nginx/sites-enabled/openhab
	echo "        server_name                     $domain;" >> /etc/nginx/sites-enabled/openhab
	echo "        return 301                      https://\$server_name\$request_uri;" >> /etc/nginx/sites-enabled/openhab
	echo "}" >> /etc/nginx/sites-enabled/openhab
	echo "" >> /etc/nginx/sites-enabled/openhab
fi
echo "server {" >> /etc/nginx/sites-enabled/openhab
echo "" >> /etc/nginx/sites-enabled/openhab
if [ "$SECURE" = true ]; then
	echo "        listen                          443 ssl;" >> /etc/nginx/sites-enabled/openhab
	echo "        server_name                     $domain;" >> /etc/nginx/sites-enabled/openhab
	echo "        add_header                      Strict-Transport-Security \"max-age=31536000; includeSubDomains\";" >> /etc/nginx/sites-enabled/openhab
	echo "" >> /etc/nginx/sites-enabled/openhab
	echo "        ssl_certificate                 $certpath;" >> /etc/nginx/sites-enabled/openhab
	echo "        ssl_certificate_key             $keypath;" >> /etc/nginx/sites-enabled/openhab
else
	echo "        listen                          80;" >> /etc/nginx/sites-enabled/openhab
	echo "        server_name                     $domain;" >> /etc/nginx/sites-enabled/openhab
fi
echo "" >> /etc/nginx/sites-enabled/openhab
echo "        location / {" >> /etc/nginx/sites-enabled/openhab
echo "                proxy_pass                              http://localhost:8080/;" >> /etc/nginx/sites-enabled/openhab
echo "                proxy_buffering                         off;" >> /etc/nginx/sites-enabled/openhab
echo "                proxy_set_header Host                   \$http_host;" >> /etc/nginx/sites-enabled/openhab
echo "                proxy_set_header X-Real-IP              \$remote_addr;" >> /etc/nginx/sites-enabled/openhab
echo "                proxy_set_header X-Forwarded-For        \$proxy_add_x_forwarded_for;" >> /etc/nginx/sites-enabled/openhab
echo "                proxy_set_header X-Forwarded-Proto      \$scheme;" >> /etc/nginx/sites-enabled/openhab
if [ "$AUTH" = true ]; then
	echo "                auth_basic                              \"Username and Password Required\";" >> /etc/nginx/sites-enabled/openhab
	echo "                auth_basic_user_file                    /etc/nginx/.htpasswd;" >> /etc/nginx/sites-enabled/openhab
fi
echo "        }" >> /etc/nginx/sites-enabled/openhab
if [ "$USINGCERTBOT" = true ] && [ "$SECURE" = true ]; then
	echo "" >> /etc/nginx/sites-enabled/openhab
	echo "        location /.well-known/acme-challenge/ {" >> /etc/nginx/sites-enabled/openhab
	echo "                root                                    /var/www/$domain/html;" >> /etc/nginx/sites-enabled/openhab
	echo "        }" >> /etc/nginx/sites-enabled/openhab
fi
echo "}" >> /etc/nginx/sites-enabled/openhab
service nginx restart

Looking good! :octocat:
I just received a RPi3 with which I'll continue my testing next week. I'll make sure to go through your bash script after I included it in openhabian-setup.sh, which should be quick. At this point, testing by you would be amazing!! Feel free to look at the rest of the script. Beware, it got quite big over time but I resist to break it down! :yum:
Regarding the file creation: echo'ing line by line is maybe not the way I would go. My solution (and I'm far from being the expert in bash magic :relaxed:) would be to providing the file in the subfolder includes containing placeholders like DOMAIN.  I did something similar to this here: https://github.com/andryyy/mailcow/pull/228/files

Had a chance to learn how to use "sed" and test this so have now completed the initial bash script, this will prompt the user for several options and set/unset comments in a full nginx config accordingly. In summary:

Asks if the user wants auth

If yes then asks for username and password

Asks if the user wants https

If yes then it asks for domain name.
Checks to see if the domain points to the obtained public IP.
If not then the user can retry, but if blank then the server name is set to the public IP

Sets up nginx with or without auth

If it's a valid domain name, certbot is installed+run and then a cron is generated to renew
If no valid domain was used, openssl is used to generate a long lasting certificate (10 years)

Restarts nginx and all is okay in the world :smile:

As a note, certbot for RPI needs jessie-backports, this brings an error with the gpg/apt-key, which need to be added. I've added this in the bash script so that it finishes (hopefully) with no errors.
setupsecurity.sh
#!/bin/bash

function comment {
  sed -i "$1"' s/^/#/' "$2"
}
function uncomment {
  sed -i "$1"' s/^ *#//' "$2"
}

echo "Installing NGINX and DNS Utilities..."
apt -y -q install nginx dnsutils

AUTH=false
SECURE=false
VALIDDOMAIN=false
matched=false

echo "Obtaining Public IP Address..."
wanip=$(dig +short myip.opendns.com @resolver1.opendns.com)

read -r -p "Would you like to sign in using a username and password? [y/N]:" response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
  read -p "Enter a username to sign into openHAB: " username
  while [ "$matched" = false ]; do
    read -s -p "Enter a password for $username: " password
    echo ""
    read -s -p "Please confirm the password: " secondpassword
    echo ""
    if [ "$password" = "$secondpassword" ]; then
      matched=true
      echo "Password accepted!"
    else
      echo "Password mismatch, please try again!"
    fi
  done
  AUTH=true
fi

read -r -p "Would you like to secure your server with HTTPS? [y/N]:" response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]; then
  SECURE=true
  echo "If you have a registered domain enter it now, otherwise leave blank:"
  read domain
  while [ "$VALIDDOMAIN" = false ] && [ ! -z "$domain" ]; do
    echo "Testing domain..."
    domainip=$(dig +short $domain)
    if [ "$wanip" = "$domainip" ]; then
      echo "Domain is valid! Continuing!"
      VALIDDOMAIN=true
    else
      echo "Domain is invalid, please enter a valid domain, otherwise leave blank:"
      read domain
    fi
  done
fi
if [ "$VALIDDOMAIN" = false ]; then
  domain=$wanip
  echo "Server name set to IP address..."
fi

rm -rf /etc/nginx/sites-enabled/default
cp nginx.conf /etc/nginx/sites-enabled/openhab

sed -i "s/DOMAINNAME/${domain}/g" /etc/nginx/sites-enabled/openhab

if [ "$AUTH" = true ]; then
  echo "Installing password utilities..."
  apt -y -q install apache2-utils
  echo "Creating password file..."
  htpasswd -b -c /etc/nginx/.htpasswd $username $password
  uncomment 32,33 /etc/nginx/sites-enabled/openhab
fi

if [ "$SECURE" = true ]; then
  if [ "$VALIDDOMAIN" = true ]; then
    echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list
    gpg --keyserver pgpkeys.mit.edu --recv-key 8B48AD6246925553
    gpg -a --export 8B48AD6246925553 | apt-key add -
    gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010
    gpg -a --export 7638D0442B90D010 | apt-key add -
    apt update
    echo "Installing Certbot..."
    apt -y -q --force-yes install certbot -t jessie-backports
    mkdir -p /var/www/$domain
    uncomment 37,39 /etc/nginx/sites-enabled/openhab
    nginx -t && service nginx reload
    echo "Creating Let's Encrypt certificate..."
    certbot certonly --webroot -w /var/www/$domain -d $domain #This will cause a prompt
    certpath="/etc/letsencrypt/live/$domain/fullchain.pem"
    keypath="/etc/letsencrypt/live/$domain/privkey.pem"
    echo "Installing cron job for certificate renewal..."
    HOUR=$((RANDOM % 11))
    echo "0 $HOUR/12 * * * root certbot renew --quiet" > /etc/cron.d/certrenew
  else
    mkdir -p /etc/ssl/certs
    certpath="/etc/ssl/certs/openhab.crt"
    keypath="/etc/ssl/certs/openhab.key"
    openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout $keypath -out $certpath #This will cause a prompt
  fi
  uncomment 20,21 /etc/nginx/sites-enabled/openhab
  sed -i "s|CERTPATH|${certpath}|g" /etc/nginx/sites-enabled/openhab
  sed -i "s|KEYPATH|${keypath}|g" /etc/nginx/sites-enabled/openhab
  uncomment 6,10 /etc/nginx/sites-enabled/openhab
  uncomment 15,17 /etc/nginx/sites-enabled/openhab
  comment 14 /etc/nginx/sites-enabled/openhab
fi
nginx -t && service nginx reload

/includes/nginx.conf
#################################
# openHABian NGINX Confiuration #
#################################

## Redirection
#server {
#	listen                          80;
#	server_name                     DOMAINNAME;
#	return 301                      https://$server_name$request_uri;
#}

## Reverse Proxy to openHAB
server {
	listen                          80;
#	listen                          443 ssl;
	server_name                     DOMAINNAME;
#	add_header                      Strict-Transport-Security "max-age=31536000; includeSubDomains";

## Secure Certificate Locations
#	ssl_certificate                 CERTPATH;
#	ssl_certificate_key             KEYPATH;

	location / {
		proxy_pass                              http://localhost:8080/;
		proxy_buffering                         off;
		proxy_set_header Host                   $http_host;
		proxy_set_header X-Real-IP              $remote_addr;
		proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto      $scheme;

## Password Protection
#		auth_basic                              "Username and Password Required";
#		auth_basic_user_file                    /etc/nginx/.htpasswd;
	}

## Let's Encrypt webroot location
#	location /.well-known/acme-challenge/ {
#		root                                    /var/www/DOMAINNAME;
#	}
}

Hey! Didn't have the time to look into this but would this weekend. Is the above script still up to date?
I'm unsure if to include as with the rest of the subroutines or if I want to put this as a separate script to be called by the menu. Let's agree on this detail first and then I'd like you to create a PR to give you the 'git blame' credit ;)

On a side note: Your comment/uncomment approach looks error prone to me. What if default configuration files change in the packages or if the files were edited by the user before? I like to be a bit safer with something like this

Ah! you only use these commands on the configuration file provided by you! ignore my comment 👐  excellent idea

No worries! I'm waiting on a PR on eclipse/smarthome first so that we don't need the "proxy_buffering off;" header. (I've disabled it above in preparation). Since this is specifically for the Raspberry Pis, I believe we'd get better performance on openHABs side with buffering on. I've made an issue for it so hopefully it will be soon.

Okay, understood. But we can still carry on with this, right? Later changes are quickly done.

Yeah absolutely, I've uncommented the line again so that the script should work exactly as is on any RPi without fault. I can add the tweak when that PR is merged then?
If so I should be able to work on that git blame PR on Sunday if that's okay? ;)

Fixed in https://github.com/ThomDietrich/openhabian/pull/26 and following.
Thanks @BClark09


[REEF-784] Add Geon-Woo to committers list on website

Add Geon-Woo Kim to committers
JIRA:
REEF-784

This looks good, I will merge.


add unit tests for quaternion_utils

Progress:

[x] qcomp null
[x] qcomp value
[x] qnorm null
[x] qnorm value
[x] qvectransform null
[x] qvectransform value
[x] qconjugate null
[x] qconjugate value

Closed -- completed


[Feature request]:  Customize message withou json

Version

[X] I'm using version 1.15.1

Existing requests

[X] I've checked Existing requests

Advanced Preferences

[X] I've checked Advanced Preferences

What operating system are you using?
Windows
Operating System Version
Windows 11
Problem description
I have tried multiple times to update messages in the JSON file, and every time the app crashes and I have to uninstall and start again. I am literally just changing the text messages after exiting the app. I cannot remotely discern what's causing it, but as someone who's at least halfway decent at software and programming, and Millennial enough to know my way around a computer, I don't think it should be this absurdly fragile and break after every attempt.
Possible solution
Please fix the JSON or whatever is causing the issue, or add a tab that allows editing of messages.
Alternative solutions
None. I don't want to see 50 different messages pop up, regardless of how beautifully written and helpful they are.
Additional information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

I've tried once more and with a fresh JSON and managed to get it to work. But it really is a pain having to check every comma and apostrophe just to modify the built-in alerts.

Hi Jan,
Thank you so much! I'm sorry I know my post was rude and I wanted to delete
it. I had just worked 12 hours straight and was frustrated.
Anyway, thank you for taking the time to reach out. Your app is really
wonderful and has been a great help. I think I've supported before but at
least now I can message you that as well
Have a great day or evening,
Michael
On Wed, Feb 14, 2024, 2:58 AM Jan Hovancik @.***> wrote:

Hi, sorry to hear about the troubles you had :(
Unfortunately, I work on this in my free time, which is limited, so I have
to carefully choose what I work on and what I don't.
Right now, it's best to always check the formatting of JSON with some tool
like https://jsonformatter.curiousconcept.com/
—
Reply to this email directly, view it on GitHub
https://github.com/hovancik/stretchly/issues/1440#issuecomment-1943246225,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQWSNFPR64BLLLWXHUT3P4LYTRVEDAVCNFSM6AAAAABDHTBCPGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBTGI2DMMRSGU
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


[CARBONDATA-3476] Fix Read time and scan time stats in executor log for filter query

Problem: Read time and scan time stats shown wrong in executor log for filter query
Root cause: Projection read time is added in scan time because of this scan time and read time is not correct in stats
Solution: Added projection read time for both measure and dimension column in read stats
Be sure to do all of the following checklist to help us incorporate
your contribution quickly and easily:

[ ] Any interfaces changed? NA

[ ] Any backward compatibility impacted? NA

[ ] Document update required? NA

[ ] Testing done
Please provide details on
- Whether new unit test cases have been added or why no new tests are required?
- How it is tested? Please attach test report.
- Is it a performance related change? Please attach the performance test report.
- Any additional information to help reviewers in testing this change.

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@brijoobopanna @kunal642 , please review.

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/120/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/3864/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/119/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/114/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4069/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/12137/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/158/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/152/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/156/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/164/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/158/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/162/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/172/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/166/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/170/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/183/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/182/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/177/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/189/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/183/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/188/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/220/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.2/215/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/218/

LGTM


CR+LF EOL not handled correctly in Windows

Using pgfutter_windows_amd64.exe binary on Windows 10, with CSV files edited in Notepad++ in UTF-8 encoding:
If the EOL delimiter is set to CR+LF (ie Windows standard), a CR (ie ASCII 13) is appended to each entry in the last column if it's a text field, and if not an additional row of blank entries is added to the table.
If the EOL is set to LF only (ie Linux standard), then pgfutter fails with this exception:
2 columns
[serial_id some_text]
 127 B / 127 B [==============================================================================================] 100.00%panic: runtime error: index out of range

goroutine 1 [running]:
main.copyCSVRows(0xc04214e190, 0xc042146140, 0x0, 0x740f3a, 0x1, 0xc04214a500, 0x2, 0x2, 0xc04214e190, 0x0, ...)
        /usr/src/pgfutter/csv.go:99 +0x74e
main.importCSV(0xc04200e180, 0x39, 0xc0420140e0, 0x64, 0x743323, 0x6, 0xc04200a980, 0x11, 0x0, 0x0, ...)
        /usr/src/pgfutter/csv.go:172 +0x3fd
main.main.func2(0xc04209c420, 0xc042041200, 0xc04209c420)
        /usr/src/pgfutter/pgfutter.go:164 +0x396
github.com/codegangsta/cli.HandleAction(0x6e4f40, 0x75a8e0, 0xc04209c420, 0x0, 0xc0420347e0)
        /gopath/src/github.com/codegangsta/cli/app.go:501 +0xd9
github.com/codegangsta/cli.Command.Run(0x7412f4, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74d1f6, 0x18, 0x0, ...)
        /gopath/src/github.com/codegangsta/cli/command.go:165 +0x4c2
github.com/codegangsta/cli.(*App).Run(0xc0420f2000, 0xc042064000, 0xb, 0x10, 0x0, 0x0)
        /gopath/src/github.com/codegangsta/cli/app.go:259 +0x747
main.main()
        /usr/src/pgfutter/pgfutter.go:170 +0xcd5

I used the attached 2 files to test this:
test_data_with_CRLF.csv.txt
test_data_with_LF.csv.txt

This is tripping me up, do yo have any workarounds? I have the same experience in Ubuntu.

IIRC you can manually add an additional 'dummy' text column at the end which usually works. But these days I use DBeaver for quick imports into PostgreSQL and haven't used pgfutter for some time, sorry.


Search results in new docs search engine are blurry to my eyes - accessibility

Describe the bug
Just the fonts are not clear enough, they should be more contrasting.

(The same problem is in the selected REPLs in https://svelte.dev/apps - they are also very blurry when selected)

Reproduction
Go to https://kit.svelte.dev/, type something in the search engine and see.
Logs
No response
System Info
System:
    OS: Linux 5.10 Arch Linux
    CPU: (4) x64 AMD Athlon(tm) X4 950 Quad Core Processor
    Memory: 2.73 GB / 15.07 GB
    Container: Yes
    Shell: 5.1.8 - /bin/bash
  Binaries:
    Node: 16.3.0 - /usr/bin/node
    Yarn: 1.22.10 - /usr/bin/yarn
    npm: 7.17.0 - /usr/bin/npm
  Browsers:
    Firefox: 87.0

Severity
annoyance
Additional Information
No response

Additional context from search PR: https://github.com/sveltejs/kit/pull/3717#discussion_r800106735

Contrast in the search is a little better now - is it sufficient for you now?

@dummdidumm It's still bad.
See, even Firefox DevTools hints that the contrast is too low: #999999

In Firefox DevTools more or less this value is AA: #737373

Or even the AAA value: #4d4d4d


feat: allow opt-out of WASM initializer

Checklist

[ ] An issue to be fixed by this PR is listed above.
[ ] New tests are added to ensure new features are working. End-to-end tests are usually in the ./frb_example/pure_dart example, more specifically, rust/src/api.rs and dart/lib/main.dart.
[ ] The code generator is run and the code is formatted (e.g. via just refresh_all).
[x] If this PR adds/changes features, documentations (in the ./book folder) are updated.
[x] CI is passing.

Good job! I will review it probably today and merge it :)

LGTM, except for one nit - please correct me if I am wrong since quite busy recently! Seems that I have not seen any change in GitHub CI code. So I guess we do not test both behaviors (i.e. opt-out and non-opt-out)?

LGTM, except for one nit - please correct me if I am wrong since quite busy recently! Seems that I have not seen any change in GitHub CI code. So I guess we do not test both behaviors (i.e. opt-out and non-opt-out)?

That's fine, I'll put in a test for CI as well.

Good job!


i18n: add Simple Chinese translation

Hi @b3b00 ,
Thank you for your awesome work, I do like your creation. I added a translation resource for Simple Chinese, please review.

thanks for your contribution. I approve blindly without knowing chinese :)


fix(tools): python3.12 support: remove distutils use (IDFGH-13510)

Hi,
In python 3.12, the distutils module was removed from the standard library.
Here are simple ways to avoid it.
ref. https://docs.python.org/3/whatsnew/3.12.html#distutils

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

thanks @peterdragun, I think this is better now.


Run thermorawfileparser in parallel on collections

The current version puts all input files in a folder and invokes a single instance of the converter binary, which processes the files from the folder sequentially. This is not optimal for larger batches and could be heavily improved with parallelism.
local issue xref: https://github.com/RECETOX/galaxytools/issues/39

@martenson after our discussion at the RECETOX issue I also checked here. I guess the reason is that the ThermoRawFileParser also gets metadata (txt or json). So the main question seems to be if this can be dropped and metadata can be derived afterwards.


Enables the use of Fedora for OpenShift-Ansible

Some enhancements to enable the use of Fedora. Some mild refactoring

Uses the existing handler scheme for Atomic vs. CentOS to add Fedora

In particular, breaks out CentOS vs Fedora deps, and then uses a common docker install play

Includes a "python bootstrap" method for installing Python on Fedora cloud images
Adds Fedora examples
Includes a README blurb on using Fedora
Add a default variable in the bootstrap role to default to CentOS

Nice patch! LGTM.


GSI integration

Hello there!
I cannot make cs2 server read GSI config so it could communicate with my API
What I've done:

mounted it into /cs2-dedicated/game/csgo/cfg/gamestate_integration_name.cfg
created this file in  /cs2-dedicated/game/csgo/cfg/ which is mounted as volume
created steamapps/common/Counter-Strike Global Offensive/csgo/cfg, put cfg in there and mounted as volume
added -gamestateintegration env var to extra
read whole internet looking for solution :(

I am pretty sure my config is valid, I reach to my API from container.
I am using docker-compose file which is almost identical (less env vars) as this in my pull request there: https://github.com/joedwards32/CS2/pull/36
Thanks in advance.

Thought that changes in docker-compose are bigger, so posting it there
version: '3.7'
services:
  competitive:
    image: cm2network/cs2
    container_name: competitive
    environment:
      - STEAMUSER=steamuser
      - CS2_RCONPW=password
      - CS2_BOT_DIFFICULTY=3
      - CS2_BOT_QUOTA=10
      - CS2_BOT_QUOTA_MODE=competitive
      - CS2_MAPGROUP="mg_active"
      - CS2_STARTMAP="de_inferno"
    volumes:
      - /mnt/cs2/serverdata/:/home/steam/cs2-dedicated/
      - /mnt/cs2/gamestate_integration_gamingroot.cfg:/home/steam/cs2-dedicated/game/csgo/cfg/gamestate_integration_gamingroot.cfg
      - steamcmd_login_volume:/home/steam/Steam
    ports:
      - "27015:27015"
      - "27015:27015/udp"

volumes:
  steamcmd_login_volume:

Nevermind, misunderstood GSI concept.


SEND AS ANY

hi there how do i enable SEND AS ANY i cant seem to get it working
i get a 530 error as i cant hard code the program to send from outbound.ibilly.me what can i do it use its own thing blog.ibilly.me i dont want to have to make a new domain thing

@billyprice1  Did you find solution for this?

If you configured your domain blog.ibilly.me and want to send messages as <some<EMAIL_ADDRESS>you can do this. To enable Send as Any you should go here Settings - Advanced Settings - Allow Sender Header and set it to Yes. If you want to send from any other domain than blog.ibilly.me you should add Sender header to your message.
For example:

From<EMAIL_ADDRESS>Sender<EMAIL_ADDRESS>To:

Hi, about this issue, is it possible to send via any domain? like many ESP, you can send email without verify domain (but with a higher risk of spamming),
For example i verify example.com but want able send via<EMAIL_ADDRESS>

In my case the "send as any" option is active and the "sender" header is added, but mails are still rejected with 530.

In my case the "send as any" option is active and the "sender" header is added, but mails are still rejected with 530.

its also happening on me


tensorboard graph did not show anything

i want to display the graph of disan using tensorflow, and the scalar displays well, while the graph did not show anything. I also checked my environment and tested tensorboard example about mnist. I  was confused and want to know the author have successfully checked the tensorboard.

i change browser from chrome to edge orr firedox, and it works fine now~


Todo list does not work

Hi there.
I have been using Showdown for a while, here is what i found in v1.8.6
const c = new showdown.Converter();

c.makeHtml(source);

input
- [x] todo
- [x] todo
- [x] todo
- [x] todo
- [x] todo
- [x] todo

output

[x] todo

[x] todo

[x] todo

[x] todo

[x] todo

[x] todo

[x] todo

I want a todo-list but got something like this.
just a simple usage , any help?
thanks.

If you want to be able to use checklists, you have to set the tasklists option to true.
for more info on this and other options I would suggest you check out the wiki page.

@JonSn0w oh, great.
Thanks for reply.
I will check them out.

Thanks @JonSn0w

I have the same issue
My option is set to true
var converter = new showdown.Converter({     simplifiedAutoLink: true,     tasklists: true,     tables: true,     strikethrough: true }),     text = data,     html = converter.makeHtml(text);
In my markdown, it show up correct like this:
2. Takslist

[x] Finish my changes
[ ] Push my commits to GitHub
[ ] Open a pull request

But the html-output shows like this:


fix: Fix resource already claimed bug in onboarding

PR Type
Bug fix

Description

Added a condition to check if the "Claim Food" quest is already completed before calling mint_starting_resources in the onboarding steps.
Prevented the resource claiming process from being triggered if the quest is already completed, resolving the "resource already claimed" bug.

Changes walkthrough 📝
Relevant filesBug fix

Steps.tsxFix resource already claimed bug in onboarding steps

client/src/ui/modules/onboarding/Steps.tsx
Added a condition to check if the "Claim Food" quest is already completed before calling mint_starting_resources.  Prevented the resource claiming process from being triggered if the quest is already completed.

+7/-6

💡 PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

After logging again to the same burner account, the resource claiming step was being triggered a second time and would fail


Revert "zh-CN docs"

Reverts continuedev/continue#2897
This PR broke the pipelines. I propose to revert it and leave comment to fix the original PR.

@vadjs I prefer to simply fix the links. This was really large effort by the contributor and it's not too difficult to adjust them ourselves. Is this something you want to attempt? Otherwise I'm happy to do it myself

Also @mayf09 in case you have any quick ideas about the solution to this

Okay, what's the problem?

@sestinj it makes sense, sure.
Closed my PR.

Is this something you want to attempt?
Not sure, I'm not really familiar with the docs side of the project yet. But i will be happy to see how PR with fix look like.

Sorry I missed this, but I just ended up fixing it tonight


Fixed issue #100

The change from settingkey to taskkey should do the trick. And both @mic and i see that it works so i would mere it inn.

merged, thanks


[backbone-router] manage Backbone routes for Domain Prefix

This PR manages Backbone routes for Domain Prefix on PBBR.

Tested by https://github.com/openthread/openthread/pull/5644

[x] Add default route to the Thread interface for the Domain Prefix, e.g.
$ ip -6 route add fd00:7d03:7d03:7d03::/64 dev wpan0 proto static metric 1

[x] Add policy route from Thread interface to Backbone interface for the Domain Prefix, e.g.
$ ip -6 rule add iif wpan0 table openthread
$ ip -6 route add fd00:7d03:7d03:7d03::/64 dev eth0 proto static table openthread

LGTM overall, may add one feature flag for NDProxy and policy routing here? @simonlingoogle

This is one piece missing for Thread 1.2 DUA features. Let's merge it and make DUA works in public OT! @librasungirl @jwhui

Suggested merging order of https://github.com/openthread/openthread/pull/5644 and this PR:

Merge this PR
Merge https://github.com/openthread/openthread/pull/5644 quickly
Wait for the bot to update openthread submodule

@jwhui @librasungirl


Make survival,Getting the tool is even easier

Make survival easy and fun, no need to waste a lot of time on dig, let's experience the fun of synthesis and the thrill of survival together.
Getting the tool is even easier, only 1 stick is needed

this makes the tool very op in survival. and destroy basically any other tool progression paths, is there a reason for this?

no response> this is to easy to be default, closing.


check when unmount fail

In some cases, the umount command can fail. Currently we make the CSI call fail only if the error is not a file not found error. We should make the call fail whatever the error is.

closed by 34b65af38e4365619c8976486d039f82bfc03ba5


3.1.1 Dev -> Release

There are a few typos in @saoron commits callbackContext.success("Netwrok was unbind"); being one of them. Ideally these are addressed.

@arsenal942 yeah i fixed those in this branch already


Range Image Returns

In the website, it says that two range images are provided for each lidar, one for each of the two strongest returns. Why there are multiple range images in one frame? Is there any relationship between them?
message Laser {
  optional LaserName.Name name = 1;
  optional RangeImage ri_return1 = 2;
  optional RangeImage ri_return2 = 3;
}

ri_return1 is the first return
ri_return2 is the second return

Does this mean that the frequency of the camera and lidar are not the same, say when the camera returns one image, the lidar returns more than two range images and you only save the strongest two?

You can read this
http://home.iitk.ac.in/~blohani/LiDAR_Tutorial/Multiple return LiDAR.htm
to know more about lidar multiple return.

@peisun1115  Might you be able to answer the following:

Is there less than 10ms difference between the two returns?  I.e. do the returns come from a single pulse?  And the effects of egomotion between the returns, if any, are negligible?
Will the promised benchmarks that Waymo said it would post involve simply fusing these two returns versus encoding them distinctly as input to a neural net?

There is no 10ms difference between 2 returns. The 2 returns are from a single pulse. the effects of egomotion between the returns are negligible.

Waymo is going to publish baseline results on the dataset. The amount of details to be published is yet to be decided. We encourage users to be creative to make use of the data and do research. The way to use multiple returns depends on your model.

@Yao-Shao @pwais
Use the first return will be OK. All the point cloud you have seen in the other datasets is the first return here.

The 2nd return is actually very informative for various tasks. It is encouraged to try that in your model.  See a viz of the 2nd return in our tutorial

@xmyqsh @Yao-Shao  The second return as-is is a useful feature for distinguishing vegetation. I think @peisun1115 is trying to highlight this result, which is actually (sadly) not at all available in the tutorial without modification:
first return:

second return:

My original question about timestamps was directed as the potential for measuring velocity, but the answer there is no.
While the second return looks useful for improving Waymo's own product, keep in mind this drive data is from 2017, and Waymo is currently upgrading the lidar in their fleet (as of November 2019).  So the second return depicted above is not only an artifact of a proprietary sensor, but a deprecated one, too.  So, from a research perspective, any result focusing on the second return is very unlikely to have any relevance outside of Waymo.

@pwais @xmyqsh

Our dataset contains data  ranging from 2017 to 2019.  So it is not a deprecated one.

2nd return is available for other LiDARs as well such as velodyne [one..  So research on signals like this should be able generalized to other users.

@pwais @xmyqsh
Here is another perspective from the geo-sensing domain.  They say of lidars in that domain:
LIDAR systems can typically record up to 3 to 5 return pulses per emitted pulse.
https://www.microimages.com/documentation/TechGuides/77LASptSelect.pdf
And another geo-sensing article:
Multiple return 3d LiDAR scanners are one of the greatest inventions replacing Land Surveyor tasks ...
http://lidarmag.com/wp-content/uploads/PDF/LIDARMagazine_Whitfield-MultipleReturnMultipleData_Vol7No3.pdf
That can give you additional evidence that multiple returns have great relevance outside of Waymo
Multiple LiDAR returns is common. Waymo Open Dataset is trying to align the research community with real production data.

@peisun1115
Good information sharing for us! Thank you!
In a word, the first return may not always the strongest return. And the second return can help to describe the forestry and the edge of the obstacles sometimes.
I have a question about the annotation of 3d laser object. Is it based on the raw point cloud or the calibrated point cloud? If the answer is the former, then the annotated 3d laser object is also affected by the rolling shutter problem. And we should also fix the annotated 3d laser object by ourselves following by fixing the 3d point clouds first based on the timestamped point clouds and the vehicle velocity.

Data indeed spans several years:
+----+-----+---+
|year|split|num|
+----+-----+---+
|2017|train|248|
|2017|  val| 84|
|2018|train|191|
|2018|  val| 42|
|2019|  val| 76|
|2019|train|359|
+----+-----+---+

+-------+-----+---+
|month  |split|num|
+-------+-----+---+
|2017-10|train|194|
|2017-10|val  |65 |
|2017-11|val  |16 |
|2017-11|train|38 |
|2017-12|val  |3  |
|2017-12|train|16 |
|2018-01|train|27 |
|2018-01|val  |6  |
|2018-02|train|27 |
|2018-02|val  |6  |
|2018-03|val  |11 |
|2018-03|train|65 |
|2018-04|train|24 |
|2018-04|val  |7  |
|2018-05|train|2  |
|2018-11|train|32 |
|2018-11|val  |7  |
|2018-12|val  |5  |
|2018-12|train|14 |
|2019-01|train|28 |
|2019-01|val  |8  |
|2019-02|train|56 |
|2019-02|val  |7  |
|2019-03|train|109|
|2019-03|val  |27 |
|2019-04|train|21 |
|2019-04|val  |3  |
|2019-05|val  |31 |
|2019-05|train|145|
+-------+-----+---+

With respect to:

Waymo Open Dataset is trying to align the research community with real production data.

If Waymo is genuinely trying to "align the research community" in any way, I'd strongly recommend:

Adopting a set of categories consistent with what the research community uses.  For starters, distinguish between bicycles and motorcycles.  Distinguish signs from construction cones (the very name of the label is misleading).
Dropping the absurd restriction on sharing pre-trained models; use a standard open source or creative commons license.  If Google / Waymo really want to keep this restriction, perhaps they might start paying back the ImageNet copyright owners for all the value that they've extracted from ImageNet.  The Waymo provision does nothing in actuality to stop abuse and is a pure inhibition to researchers.  It shocks the conscious Waymo would even entertain the restriction, because it can only possibly provide value to Waymo through litigation, which is antithetical to research.
Ideally using publicly available hardware for the dataset.  KITTI set the standard because it's reproducible.
Deprecating the code in this repo and releasing a version of the data compatible with a well-established existing API or format, e.g. NuScenes.  Any solution agnostic of Tensorflow would help.  And I'm saying this as a Tensorflow user!  It shouldn't take 6-7 seconds on a modern Intel processor plus a TensorFlow graph just to decode a point cloud.

@xmyqsh
The 3D lidar labels are done in vehicle frame.  So i think it is raw point cloud in your terminology. I do not see why it is necessary to 'correct' anything.  All points can be transformed to the same coord system. Objects (not SDC itself) in the scene can be moving.  But a good object detection model is supposed to handle that.

virtual point cloud: rolling shutter has been fixed

raw point cloud: with rolling shutter

@peisun1115
Sorry for disturbing you. I'm not very familiar with the annotation process of the point cloud.
Is the annotation process is based on the virtual point cloud or the raw point cloud defined above or any other ways?
Please clarify it for me. I feel it is important. And I'm curious about it.

@xmyqsh
No worries. I am happy to help and learn from you as well.
You can assume that we label on point cloud returned by this function. So I think it is raw-point-cloud in your context.
I do not know why you need to 'fix' rolling shutter. Note that in the 'raw' point cloud, they are in a virtual vehicle frame. Ego motion is already compensated.
I am curious to know how you 'fix' the rolling shutter effect though.

@peisun1115
Got it! For the TOP laser, ego-motion could be compensated by the range_image_pose_compressed to the virtual vehicle frame pose.
And you label on point cloud on that frame pose.
That is a perfect label. No problem!
But, for the other lasers whose range_image_pose_compressed is empty, the label will be affected by the rolling shutter problem.
Am I right?

@xmyqsh
Yes for TOP Lidar.
For other lidars, all the points are in the same vehicle frame. So no need to worry about rolling shutter effect for them. https://github.com/waymo-research/waymo-open-dataset/blob/master/waymo_open_dataset/dataset.proto#L161
*We do plan to release per point pose for all LiDARs in the future.

@peisun1115
Got it.
The last question: In spite of using the range_image_pose_compressed and raw range image to get the virtual range image in the vehicle frame of a specific scan, what's the other use of range_image_pose_compressed and raw range image ?
It seems that the virtual range image is what we need finally. And we can get it from range_image_pose_compressed and raw range image. So, why not give us the virtual range image directly?

We try to release more information such that users can be creative. 3d point cloud is a popular data format to do research but we think that other formats can be useful as well. For example, the raw range image is a dense representation which can be used for various tasks directly as well

@peisun1115
But I still think the virtual range image is a better and more realistic representation. But when the autonomous driving car is running, can we get the range_image_pose_compressed info in real-time and compensate the raw lidar sweep to get the virtual lidar point cloud in a specific frame?
Or, is the raw point cloud/raw range image more prefer to be used in real-time?

To echo @xmyqsh 's expectations, I've talked to three to four dozen grad students and researchers who have used open datasets besides Waymo's.  These nuisances involving camera-lidar-label sync, data encoding, etc. are simply at odds with interests in most research topics, including more crucial areas like detection and forecasting.  Many grad students can barely make it through NuScenes, which is relatively simple in comparison to this dataset.
Some of these details are relevant for topics in odom and calibration.  But the Waymo dataset isn't particularly useful for mapping problems in urban settings because the cloud is truncated above a few meters, not much segment overlap, etc.
It would be tremendously helpful if the Waymo data were made available in a form that's compatible with an existing API, like NuScenes or KITTI, with sync issues resolved / removed.  Without a standard solution here (either from Waymo or [more likely now] some independent project), perception benchmarks on this dataset will be essentially incomparable (despite the extensive tracking metrics code included in this repo).

@pwais
This waymo dataset should have removed the sync issues(have synced perfectly), as well as KITTI. Right? @peisun1115
And for NuScenes and argoverse, they have released the resolve tools for sync. Right? @pwais

@xmyqsh  NuScenes, Lyft Level 5, and Argoverse all provide point clouds as arrays of (x, y, z) points in either the sensor's frame or the ego frame.
NuScenes -- Cameras are only at 12Hz, and lidar at 20Hz.  Their code offers simple motion correction: move the lidar points to world frame using ego pose at lidar time, then move points from world frame to target frame (e.g. camera) using ego pose at target time.  Works fine in my experience; I don't think they drive very fast though.  Cuboid labels are only at 2Hz, but they also provide code to interpolate (for moving cars), and this also works pretty well.
Lyft Level 5 (uses NuScenes API) -- Cameras, lidar, and labels all sampled at 5Hz.  Camera are global shutter and are synchronized to lidar.  Lidar scan begins at the rear, so rear camera has a visible lidar break.  The center of the scan is very dense, as dense as Waymo.  Demo of both of these things below:

Despite Lyft's camera/lidar sync, there's quite a bit of drift.  Lidar scans are at 10Hz (data release is just 5Hz), and Lyft drives areas with higher speed limits of 35mph+.  Not sure if they're using lidar-based localization.  For static objects, simple motion correction of the cloud (provided thru NuScenes / Lyft code) yields camera-lidar agreement as good as demonstrated above in the Waymo screenshots.  For moving objects, tho, as you can see, there can be quite a lot of drift.
Argoverse -- They have two lidars sweeping at 180 degrees opposed and fuse them for a single 10Hz scan, so their lidar-camera sync issue is potentially more complicated.  However, I believe they might not exceed 25mph, and cameras are recorded at 30hz.  They recommend simple motion correction using ego pose data (believe they're using lidar-based localization in the dataset) that's similar to what NuScenes does.  Through this correction, and perhaps thanks to the high camera frame rate, I've seen very good camera-lidar agreement.
For each of these above datasets, getting a training artifact suitable for a detection or forecasting problem is not only relatively straightforward, but all also offer transformation to KITTI format.  Furthermore, obtaining a point cloud in ego frame is trivial and most certainly does not require the overhead I've seen with Waymo: (1) Tensorflow, (2) the large overhead of a Tensorflow graph and session, (3) 6-7 seconds of processing time on a modern Intel CPU.
None of the datasets above offer second return info.  That said, all do offer examples of trees, precipitation, windows, etc.

@pwais
Thanks for sharing! Very useful information!
But I cannot agree with you totally. For example, for the Argoverse dataset, they use two 16-line lidars, both of them sweeping at 360 degrees, not 180. The purpose of these 2 overlay lidars should be want to animate a 32-line lidar. And they should use multi-sensor fusion localization, because the poses are very dense.
For waymo using Tensorflow graph to process point cloud, this enable you to run it on gpu which numpy cannot. From the aspect of efficiency among the three generations of deep learning architecture(layer-based, graph tensor-based and program-based) and numpy, I think the graph tensor-based version is the fastest, as fast as you use GPU.

@xmyqsh
Argoverse: yes both lidars do 360 degree sweeps, but they're 180 degrees out-of-phase, so camera sync is harder.  Sorry if that's wasn't clear, but I think we're saying the same thing.
Using a GPU/TPU to decode point clouds has entertainment value only.  Makes no sense to waste GPU memory and compute on a straightforward data transformation that will not change during the course of most typical experiments.  Moreover, pytorch is extremely popular now, so having such a key part of the Waymo code implemented in Tensorflow is a non-starter for many researchers.  https://thegradient.pub/p/cef6dd26-f952-4265-a2bc-f8bfb9eb1efb/

We provide raw range image for TOP LiDAR and virtual range image for other LiDARs. But they can all be converted to the popular point set (x,y,z, f1,f2..) format. Raw range image is useful for various tasks, if you don't find it useful for your research, just convert to what you want. However, if we directly provide (x,y,z, f1,f2...) then users cannot go back to raw range images.

In terms of speed of processing point cloud on CPU, try to implement it properly.  Simply trying our tutorial on the public sandbox (the machine is not very good. A powerful machine can do better). It takes 1.9 seconds (
.Not to mention that you can try it on GPU/TPU. If you have a faster implementation that decoding the same format,  let us know.   To step back, even if it is slow, it does not matter, just have a preprocessing job to convert the data to your format. It is one-off.

@pwais
Argoverse: It is weird to sweep 360 degrees and only use 180 out of phase.
You can try to decouple them like this:

Also, Argoverse has solved the rolling shutter problem and all the point clouds are provided in the vehicle frame and timestamped, and a dense pose position is provided. It is easy to do the motion compensation on it.

@peisun1115
We can go back to the raw range image if you provide the raw point cloud. The difference is that if you have compensated for the rolling shutter problem on it or not.
Most datasets only provide the compensated no-rolling shutter problem point cloud, while waymo also provides the raw rolling shutter problem point cloud. They also provide the tools and data to compensate for the rolling shutter problem.
What a pity, they only provide the tools and data to compensate for the rolling shutter problem. But the user cannot develop an Odometry or SLAM algorithm on the waymo dataset to compensate for the rolling shutter problem by themselves because the cloud is truncated above a few meters, not much segment overlap as @pwais said, which make this dataset not perfect in some terms of view.

@peisun1115 @pwais
What I want to know is that when we are in the real-time autonomous driving car, the lidar 's feedback is the raw point cloud/raw range image, and our perception algorithm is based on the raw point cloud/raw range image actually. For the virtual/accurate point cloud, we can only get it from SLAM to calibrate the point cloud which maybe not in real-time.
So it is valuable to develop a real-time SLAM algorithm to make the localization, mapping/point cloud calibration and perception together. And this is the value of the real-time SLAM method on the autonomous environment.
What a pity, this dataset cannot provide us such a real environment, if what's @pwais have said is true that this dataset cannot support SLAM.
It is good for this dataset to expose this problem in such a data style.
It is a perfect dataset for the perception user to get a perfect result in some terms of virtual.
It will be perfect if we can develop real-time SLAM and perception algorithm together on it as @pwais expected.


 in Android Studio, but flutter doctor/devices finds it

Steps to Reproduce

Download and unpack v0.3.2
Do NOT add flutter/bin to $PATH
Install Flutter and Dart plugins for Android Studio
Create a "Hello World!" project
Android Studio shows ; cannot run the project.

Including the SDK path on the command line (PATH="$PATH:~/.fluttersdk/bin" androidstudio) makes it work. But the Project Setup wizard asked for the SDK path; shouldn't that be enough?
Logs
~$ .fluttersdk/bin/flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v0.3.2, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK 26.0.3)
[✓] Android Studio (version 3.1)
[✓] Connected devices (1 available)

• No issues found!

~$ .fluttersdk/bin/flutter devices
1 connected device:

G8441 • REDACTED_SERIAL • android-arm64 • Android 8.0.0 (API 26)

Sorry for the late response.
Is this still an issue with recent Flutter versions?

Don't know; haven't tried.
(also, I decided on vanilla Android/Kotlin for the project I was starting at the time.)

Thanks for the update.
I'm going to close the issue because there it is unclear how to reproduce.
Please open a new issue if you run into it again.

i have the same problem !

same here

Could the issue be reopen? I have this same issue as well! @zoechi

Please create a new issue in https://github.com/flutter/flutter-intellij with as much information as possible that might help to reproduce (flutter doctor -v output, ...),
this issue is long closed.
It would be great if you'd link to this issue from the new issue.

same here

2019, this one is still on. Flutter doctor shows one available device, when trying to run through IDE there is no device error. Additionally flutter devices is also not recognizing my phone. Strange, as I would suppose that flutter doctor and devices would use the same method to check device availability.

For future reference the issue for this in the flutter-intellij repo is https://github.com/flutter/flutter-intellij/issues/2084

basically in my debian 10 i installed adb from the store :
sudo apt install adb
now everything is working fine
but i'm using backports
goodluck


Update backtracking in regex to mention global timeout

The little-known global timeout security feature is worth describing here.
Copied from https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=net-6.0#defining-a-time-out-value

Fixed it

@gewarren are you able to merge this?


How do I set up to transcribe in en pt-br

Hi i need a help, i need transcript audio files to text in portuguese - BR,
i know the Watson IBM supports the language, your application can transcribe to portuguese?
Tks,
Rogério Yuji

Apologies for late reply, to make it work in Portuguese you'd have to change this file https://github.com/voxmedia/Transcriber/blob/master/stt/watson.js#L46 change the params to add the language model for Portuguese. That should work.
{ content_type: 'audio/l16; rate=44100', model: 'pt-BR_BroadbandModel' })

see IBM Watson STT API reference for more info on this
This app was an initial prototype to test the quality of IBM STT, I am now working on a more full fledge version http://www.autoedit.io - https://github.com/OpenNewsLabs/autoEdit_2 which has also got an option to chose which language you are using.


Registering event handlers

I see that mcapi.registerhook has the start of what appears to be event handlers. I'd like to try and accomplish what ScriptCraft has in:
https://github.com/walterhiggins/ScriptCraft/blob/master/docs/API-Reference.md#eventsplayermove
...which uses this hook:
https://ci.visualillusionsent.net/job/CanaryLib/javadoc/net/canarymod/hook/player/PlayerMoveHook.html
...but it seems I'm a bit far off.

This is indeed possible, see below:

from mcapi import *
from net.canarymod.hook.player import PlayerMoveHook

def hookfunc(listener, hook):
  yell(str(hook.getPlayer().getName())+" is moving!")

registerhook(PlayerMoveHook, hookfunc)


Does not load command line on startup

To load the specified git command you have to press "Execute", it is not applied automatically when starting git-log--graph:

this bug behaved a bit differently for me - the first attempt indeed showed the wrong data, but a second one came after that fixed it. I have now fixed the first and removed the second, and also fixed some other bugs, so maybe it works fine for you now, maybe not. If not, can you please launch the extension with "git-log--graph.verbose-logging": true set and copy the OUTPUT/git log --graph contents into this issue? (possibly stripping it of sensitive data)

Thanks, works fine for me now :+1: