alphametics test_solve_puzzle_with_multiplication has 6 solutions

this test is asking for one specific solution when there are many. I have no idea how to handle this or what to change because this exercise seems extremely ambiguous. would love to just bring up some discussion

Can you post the test and the solutions you have found?

Can you show some code here to help explain?  Or a link for ease of reference?  Here is what I am looking at in regards to this issue:
https://github.com/exercism/xruby/blob/master/exercises/alphametics/alphametics_test.rb#L28
What are the 6 solutions?  Why do you think 6 is not enough or more than enough solutions?  How should the solutions be restricted or expanded?

all these answers work for this test:
Alphametics.new.solve('IF * DR == DORI')

{"I"=>8, "F"=>2, "D"=>1, "R"=>4, "O"=>1}
{"I"=>8, "F"=>2, "D"=>3, "R"=>9, "O"=>1} # this one is the answer in the current test
{"I"=>8, "F"=>8, "D"=>3, "R"=>6, "O"=>1}
{"I"=>9, "F"=>1, "D"=>8, "R"=>9, "O"=>0}
{"I"=>9, "F"=>3, "D"=>2, "R"=>3, "O"=>1}
{"I"=>9, "F"=>9, "D"=>8, "R"=>1, "O"=>0}

Your extra solutions have repeated digits.
Each letter should represent a different digit, and the leading digit of a multi-digit number must not be zero.
I've created an issue on x-common to add this information to the README

gotcha, that makes much more sense now. I'll close this issue


Curl warns about certification legitimacy

Hey there
I followed your steps to allow a custom domain name for my private rest apigw gateway. I am using an NLB, for the routing, which receives traffic on port 443 and delivers it to the vpce's on the same port.
I've attach an Amazon Issued certificate to the custom domain name.
I'm using curl to test the solution, but i'm getting this error:
curl https://xxxxxx.xxx.com/xxx/
curl: (60) SSL: no alternative certificate subject name matches target host name 'xxxxxx.xxx.com'
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
(base) [ec2-user@ip-172-30-3-254 ~]$ curl https://xxxxxx.xxx.com/xxx/
curl: (60) SSL: no alternative certificate subject name matches target host name 'xxxxxx.xxx.com'
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

When I run the same curl command with -k (ignore server certification), i am able to reach the server and get the desired response.
Would really appreciate your assistance and time
Best,
Roy

I used a TCP target group instead of a TLS one


feature: Add export command to generate a Distfile from current configuration

Currently, there's no way to export the current setup into a reproducible configuration file.
Adding an export command would enable easier system replication and backup of configurations.
Proposed Feature:

New command: dist export to generate a Distfile
The Distfile should capture all current configurations and dependencies
Format should be compatible with dist install -f Distfile

Use Cases:

Backup current system configuration
Share development environment setup with team members
Quick bootstrapping of new machines
Version control of system configurations (e.g. in dotfiles repository)

Example Workflow:
# Export current configuration
dist export

# Check into version control
git add Distfile
git commit -m "feat: add system configuration"

# On new machine
git clone myrepo
dist install -f Distfile

This is now available on the next branch and can be tested by downloading and installing the 1.1.0-next.1 release. @swade1987 @Shackelford-Arden

A quick test after pulling in the update seems to indicate that the -f flag doesn't exist on dist install?
Version
❯ dist --version
dist version v1.1.0-next.1

Distfile
❯ cat Distfile
install<EMAIL_ADDRESS>install<EMAIL_ADDRESS>install<EMAIL_ADDRESS>install<EMAIL_ADDRESS>install<EMAIL_ADDRESS>install<EMAIL_ADDRESS>install<EMAIL_ADDRESS>install<EMAIL_ADDRESS>
Output
❯ dist install -f Distfile
Incorrect Usage: flag provided but not defined: -f

NAME:
   dist install - install [provider/]owner/repo[@version]

USAGE:
   dist install command [command options] [provider/]owner/repo[@version]

DESCRIPTION:
   install binaries fast. default location is $HOME/.distillery/bin

COMMANDS:
   help, h  Shows a list of commands or help for one command

OPTIONS:
   --arch value                   Specify the architecture to install (default: "amd64")
   --config value, -c value       Specify the configuration file to use (default: "/home/heimdal/.config/distillery.yaml") [$DISTILLERY_CONFIG]
   --force                        force the installation of the binary even if it is already installed (default: false)
   --include-pre-releases, --pre  include pre-releases in the list of available versions (default: false) [$DISTILLERY_INCLUDE_PRE_RELEASES]
   --no-checksum-verify           disable checksum verification (default: false) [$DISTILLERY_NO_CHECKSUM_VERIFY]
   --no-score-check               disable scoring check (default: false)
   --no-signature-verify          disable signature verification (default: false) [$DISTILLERY_NO_SIGNATURE_VERIFY]
   --os value                     Specify the OS to install (default: "linux")
   --version value                Specify a version to install (default: "latest")

   Authentication

   --github-token value  GitHub token to use for GitHub API requests [$DISTILLERY_GITHUB_TOKEN]
   --gitlab-token value  GitLab token to use for GitLab API requests [$DISTILLERY_GITLAB_TOKEN]

   Logging Options

   --log-caller                 log the caller (aka line number and file) (default: false)
   --log-disable-color          disable log coloring (default: false)
   --log-full-timestamp         force log output to always show full timestamp (default: false)
   --log-level value, -l value  Log Level (default: "info") [$LOG_LEVEL]

   ⨯ flag provided but not defined: -f

@Shackelford-Arden suppose it would have helped to provide direct link to the docs https://next.distillery.pages.dev/distfile/
I opted to not use install and do 2 separate commands that could change. dist run Distfile is all you would need to do with the next build.

dist proof (play on distillery terms) to create a Distfile to stdout. (alias: dist export also works)

Ahh my bad. I even read that earlier looking at the original PR :upside_down_face:
Using dist run did work! Very nice :sunglasses:. This is perfect too, I was just messing around with figuring out how to mimic this behavior for some Docker images I'm building!
Ahhh, I was wondering what dist proof was! I'd use dist export to generate my file.

All feedback is welcome. I don't like the CLI output when running a Distfile, I would like to change it to be less verbose with status and have it to multiple installs at a time instead of linear.
I'm wanting to stick with the distillery terms, but putting in aliases for things that would make more general sense to folks.

An adjusted output sounds like a great next step to me!


Add lineRange support to getInteractiveDiagnostics

Pending Lean PR https://github.com/leanprover/lean4/pull/722
Fixes #162.

It looks like the documentation generator gave up on this PR.  Not sure how to fix this.
(Personally, I don't get anything out of the auto-generated documentation.  Even more, I find the bot commits on the PRs very annoying.  As far as I am concerned, we could just drop the lean.txt or replace it by the brief explanation at the top of init.lua.)

I'm fine with dropping it, though I do find it annoying that :h lean.txt doesn't have more useful info in it even for myself -- it's what a native vim user would expect for docs. The autogeneration was just a hope we wouldn't have to spend more time manually doing it, but it doesn't seem we're getting a lot of value there to me either so it's fine if we kill it and give up for now I guess.

We could of course alternatively just have the bot run on master and not PRs.


why "Params" have no ioutype?

I see that the source code of pycocotools in other places contains the parameter ioutype (such as "bbox"). Why is there no such parameter in the code here

I used other "cocoeval. py" to replace the original code, with fewer errors

‘’‘
cocoEval = customCOCOeval(self._COCO, coco_dt, "bbox")
TypeError: init() takes from 1 to 3 positional arguments but 4 were given
’‘’
It is strange to receive only two parameters


[pipelines] testing: test: use 'prepare_user_pods' common code

/test rhoai-light pipelines

/test rhoai-light pipelines

/test rhoai-light pipelines

/test rhoai-light pipelines

/test rhoai-light pipelines

/test rhoai-light pipelines

/test rhoai-light pipelines

/test rhoai-light pipelines

test passed, merging


Improvements to action-toolbar

Add outline: none to button and a tags to hide the glowing outline after a click
Add :disabled in addition to the .disabled selector so that if a button is disabled, it doesn’t also need the class set

Don't worry about the failure :) I'm happy with the fix but it would be up to @nathanyoung if he wanted this behavior or not. @nathanyoung if you are fine with it merge the PR.


Telegram message not formatted correctly

Describe the bug
Several times ago, we develop a telegram notification via Bot.
But the message seems not formatted properly.
To Reproduce
Steps to reproduce the behavior:

Activate your Telegram Notification
Try to send message
Check the message format

Expected behavior
The markdown message should be formatted properly.
Screenshots

Additional context
Possibly need to add additional parameter when sending the message.
{
 parse_mode: markdown',
 disable_web_page_preview: true
}

Reference: https://core.telegram.org/bots/api#sendmessage

parse_mode harusnya HTML. terus ngoding old school HTML biasa. see https://core.telegram.org/api/entities#allowed-entities


Cron runs multiple times  based on number of vCPUs

Hi, I find a problem while using node-cron.
The cron function is called multiple times based on the number of CPUs the server is running on.

For example - if the server has 4 cores - the function is called 4 times. If there are 2 cores it will be called 2 times.

When running in a local environment, it works perfectly as only one CPU is running at a time.
Please guide how to resolve this issue. We depend heavily on corn jobs.
Regards,
Ashin

Examples
4 Core CPU

2 Core CPU

Local env

I also had this problem but I decoupled the cron jobs into a single cpu worker. This way there are no replications

@0xayot
Thanks for the response. Can you please guide me how to achieve this?
Regards,
Ashin

This is what my worker file looks like.
I setup my build command to run the code in the file as a standalone node instance.
```
node src/cronworker.js
```

Hey, can you help me out with a couple of things?

Did you make a separate package.json just for running cronworker.js?
How do I get this running with pm2?

Thanks


API and account

Dear all,
I am trying the API to use existing classifiers, but when I try to authenticate I receive a message that I cannot
(but my account works good).
There is something I am missing ?
Thank you very much.

Hi there - how are you trying to authenticate? For example, are you using a curl command like step 1 of our tutorial?: https://coralnet.ucsd.edu/pages/help/api/tutorials/ Or are you using a snippet of code instead.
Also, what's the error message that you're getting?

Thank you! I have solved, the problem was that under Windows I have backlash the quotes.

Another question, the pretrained weights of the EfficientNet are available ? Thank you.

Ah, glad you found the issue!
We're currently sharing the EfficientNet weights download-link on a request basis. Maybe I can provide you the link by email? I think we might already have each other's email addresses from a group meeting a while ago.


Failed login still shows instance name on home screen

After a failed login, if you return to the home screen you will see the instance name appear as if login had been successful.

Resolved with #57.


Contributors and Categories link in blog are not using baseUrl

Description
Contributors and Categories link in blog are not using baseUrl. So when using baseUrl, this two links are broken.
Steps to reproduce
Fix this in :

https://github.com/thuliteio/doks-core/blob/main/layouts/partials/main/blog-meta.html#L9
https://github.com/thuliteio/doks-core/blob/main/layouts/partials/main/blog-meta.html#L24

Expected result
Actual result
What happened.
Environment
when build like that : hugo --minify --baseURL=...

Hi @h-enk, any updates please ?

Hello, I cannot replicate your issue using for example npm run build -- --baseURL="http://<IP_ADDRESS>:4173/" && npm run preview -- --host.
What baseURL is failing for you?
BTW, I recommend setting baseurl in config/production/hugo.toml in stead of --baseURL on the command line.
For more background see: urls.RelLangURL


Unexpected error running Liquibase: Migration failed for changeset example-changelog.xml::1702712256021-5::ttotter (generated):      Reason: liquibase.exception.DatabaseException: [Databricks]JDBCDriver ERROR processing query/statement. Error Code: 0, SQL state: 0AKDC, Query: ALTER TABL***, Error message from Server: org.apache.hive.service.cli.HiveSQLException: Error running query: [DELTA_OPERATION_NOT_ALLOWED] com.databricks.sql.transaction.tahoe.DeltaAnalysisException: [DELTA_OPERATION_NOT_ALLOWED] Operation not allowed: NOT NULL in ALTER TABLE ADD COLUMNS is not supported for Delta tables

Hello there,
First of all: Thanks for enabling Databricks in your awesome tool!
I just got this error message when updating a table:
Unexpected error running Liquibase: Migration failed for changeset example-changelog.xml::1702712256021-5::ttotter (generated):
Reason: liquibase.exception.DatabaseException: [Databricks][JDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: 0AKDC, Query: ALTER TABL***, Error message from Server: org.apache.hive.service.cli.HiveSQLException: Error running query: [DELTA_OPERATION_NOT_ALLOWED] com.databricks.sql.transaction.tahoe.DeltaAnalysisException: [DELTA_OPERATION_NOT_ALLOWED] Operation not allowed: `NOT NULL in ALTER TABLE ADD COLUMNS` is not supported for Delta tables

Now i get why this is happening, but i wonder if you see/treat this as a (Liquibase) bug, or if we as users have to use our brains when creating changesets and avoid (special) cases like this ourselves.

Ok, i should follow my own advice (RTFM) from time to time. I think bullet point 3 will cover "my" error:
https://github.com/liquibase/liquibase-databricks?tab=readme-ov-file#remaining-required-change-types-to-finish-in-basecontributed
That answers my issue pretty much, closing it 😄


Polybar doesn't show hours on clock and doesn't take entire screen width

Describe the issue
A clear and concise description of what the bug is.
The hours aren't showing and the tray is offsetted.
Expected behavior:
The bar to take the entire screen width.
Actual behavior:
The hours aren't showing and the tray is offsetted.
Was it working before?

Did you also experience this bug in an earlier version of polybar? No
If no, what was the last version where this worked correctly? 3.3.0

To Reproduce
A minimal but complete config with which the problem occurs:
[bar/top]
;monitor = ${env:MONITOR:HDMI-1}
width = 100%
height = 27
fixed-center = false

background = ${colors.background}
foreground = ${colors.foreground}

line-size = 3
line-color = #f00

border-size = 0
border-color = #00000000

padding-left = 1
padding-right = 1

module-margin-left = 1
module-margin-right = 1

modules-right = data
tray-position = right
tray-padding = 2

[module/date]
type = internal/date
interval = 5

time = %H:%M
time-alt = %H:%M:%S

format-prefix-foreground = ${colors.foreground-alt}
format-underline = ${colors.underline}

label = %time%

List any other steps needed to reproduce the issue besides starting polybar with the config you posted above.
Polybar Log
Post everything polybar outputs to the terminal when you run it and the issue occurs below
warn: No monitor specified, using "LVDS-0"
error: module/xbacklight: Could not get data (err: XCB_NAME (15))
error: Disabling module "xbacklight" (reason: Not supported for "LVDS-0")

Screenshots

Environment:

WM: Cinnamon
Output of polybar -vvv:

polybar 3.3.0

Features: +alsa +curl -i3 -mpd +network(libnl) +pulseaudio +xkeyboard

X extensions: +randr (+monitors) -render -damage -sync +composite +xkb +xrm +xcursor

Build type: RelWithDebInfo
Compiler: /usr/bin/c++
Compiler flags: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -Wall -Wextra -Werror -Wno-noexcept-type -pedantic -pedantic-errors
Linker flags: -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now

Additional context
Add any other context that you think is necessary about the problem here.

Wow, sorry this is so late, kinda got flodded the past few months.

Did you also experience this bug in an earlier version of polybar? No
If no, what was the last version where this worked correctly? 3.3.0

So this means that this both worked and didn't work on the same version?
Does this happen reliably even after restarting polybar?
We are constantly having issues with the tray, especially with the tray overlapping bar elements (see #591). But the issue where the tray is actually misplaced isn't much reported. @Yves1024 had the same issue but it was fixed after restarting X. Others have set fixed-center = false in the bar section which fixed it.
Are you using a high DPI screen? Some are reporting issues only when using high DPI screens.

Yeah, the issue randomly occurs. If I run polybar-msg cmd toggle, it doesn't fix the bug but if I kill the process and respawn it then it'll work. I don't think the Dell Latitude E6420 and ASUS X401A screens are high DPI.

Does fixed-center = false work for you?
I just checked, no they are not even 1080 screens.

Since the bug occurs at random, I dunno if fixed-center even fixes it. My Dell Latitude E6420 reports the screen is 1366x768.

That's true. That's also the main problem why we cannot really fix it in polybar because it's almost impossible to reliably reproduce. You'll have to wait and see if it comes back.

Hi, we have recently fixed #591 and it may also fix your issue. If you have version 3.4.2 or newer, do you still see this issue?


Update create.js

if (Object.keys(types).includes(args[1].toLowerCase())) {
...

Is this really necessary? Why don't use if(args[1]) { like in the old code? Tell me if I'm wrong or if this does anything else. I have just seen this and thought: why?

if (Object.keys(types).includes(args[1].toLowerCase())) {
...

Is this really necessary? Why don't use if(args[1]) { like in the old code? Tell me if I'm wrong or if this does anything else. I have just seen this and thought: why?

that checks if provided server type is valid and exists


Mutation reducers

[x] Update CHANGELOG.md with your change
[x] Make sure all of the significant new logic is covered by tests
[x] Rebase your changes on master so that they can be merged easily
[x] Make sure all tests and linter rules pass

this pr no longer relies on #400

Looks great to me, just a few comments. Actually really hyped about how little code this was!

Also needs to be rebased


[Error] Sample error as below

------------------------------------
Ctrip Bundle on Nexus 5|armeabi-v7astarting...
------------------------------------
java.io.FileNotFoundException: /data/data/ctrip.android.sample/files/storage/meta: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:456)
at java.io.FileOutputStream.(FileOutputStream.java:87)
at java.io.FileOutputStream.(FileOutputStream.java:72)
at ctrip.android.bundle.framework.Framework.storeMetadata(Framework.java:159)

I aslo test the Nexus 5，it work well。can you give me the android system version of your Nexus 5. Please Use the gradle assembleRelease bundleRelease repackAll to build and output apk is demo-release-final.apk.
Thanks

thx, Use $ gradle assembleRelease bundleRelease repackAll ,then install the build-outputs folder apk , worked well .


Connection String

I am trying to use a connection string in the form:
username/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<IP_ADDRESS>)(PORT=1521))(CONNECT_DATA=(SID=XE)(SERVER=POOLED)))
but this does seem to work, is this supported by this driver and can you provide a quick example of how to use it if it does.  Tks!

it should work, what are returned errors ?

"invalid username/password; logon denied"

Can you tell me how did you get it to work?


Release - v2022.12.3

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.3 out of 4 committers have signed the CLA.:white_check_mark: mausworks:white_check_mark: ricklamers:white_check_mark: fruttasecca:x: dependabot[bot]You have signed the CLA already but the status is still pending? Let us recheck it.


fix(table): fix disabled row select bug in vue

Will backport to v3 once this PR is approved.

When I try to run the vue-2 playground locally I get this error.
I'm running the following commands from the vue-2 playground folder:
git clean -dfx
npm install
npm run build
npm run serve

Any idea what else I need to do?

When I try to run the vue-2 playground locally I get this error.
I'm running the following commands from the vue-2 playground folder:
git clean -dfx
npm install
npm run build
npm run serve

Any idea what else I need to do?

I added a tsconfig file for the vue2 playground so that should fix the issue. The issue is reproduced in the vue 3 playground.


Store exercise notes and proof as HTML

One easier thing that I think would improve the structure and maintainability of the code would be to store the HTML "notes" and "proof" for each exercise as HTML.
Currently, these HTML strings are stored as JS string literals (in docs/js/main.js), which isn't great for storing "data" and makes it a bit harder to edit and view the HTML. For example:
https://github.com/teorth/QED/blob/2978fc5dcaf21141885fe90fa62b0ad9ef7ba66c/docs/js/main.js#L29-L30
One idea is to store this information in the form of hidden (i.e. not seen when browsing) "data" divs in the main html file.  The structure for each exercise could be something like--

...

...

Then a load_exercise_data(exercise, id) JS function could be defined that populates an Exercise object from the HTML document, and this called from within main.js for each exercise. Over time, more of the exercise "data" could be transferred to a more structured form (e.g. the "unlocks" and "unlockedBy" information), until perhaps all of each exercise can be populated from data.

I like this suggestion.  I managed to quickly write up some code for this and ported the first exercise HTML data over this way.  Already it revealed that there were some typos etc. in the HTML.  Porting the remaining 132 exercises will be a bit tedious but should be done before too long.

Great! A few suggestions on this approach:

Prefix the element id's with exercise- since id's should be globally unique within the document, and there could a priori be other types of objects.
Use document.getElementById() to locate elements by id.
Wrap the HTML to a shorter line length (e.g. 80-100 characters or so) to make it easier to read in the GitHub UI and text editors and so that diffs and merges, etc. will be easier.

You can also use JS selectors to more elegantly find the data within an HTML element (e.g. "find the first child with class attribute 'notes'," etc). So you would have code for each exercise attribute you want to set, instead of looping over every child with a switch statement on the class name. (This is more of a style judgement.)

PS - If you’re not already doing this, it could also help to maintain in the JavaScript a dictionary of the exercises mapping the short name or ID to the corresponding Exercise object. This will be useful for e.g. storing the “unlocks” info as data. The unlocks info could then be stored as e.g. a space-delimited attribute value of the div for that exercise.

OK, I'm done for now; I've prefixed the id's and formatted some of the HTML (not the proofs though, as this would be rather tedious and I would expect them to be rarely edited by hand).
I have an exerciseList array that could be used for mapping ids to exercises if need be, but at present there isn't a need for it, so I haven't bothered to code a lookup routine yet.
Using a selector would indeed be more elegant, but it ain't broken right now, so I'm not fixing it.

FYI, I added initial support for also storing the "unlockedBy" info in the HTML, and did this for the first couple exercises as an example.


Security vulnerability for<EMAIL_ADDRESS>

Issue Summary
There are security vulnerabilities found in<EMAIL_ADDRESS>sub-dependencies. The vulnerabilities found are marked as High-severity, so i thought it should bring this up for the team consideration since it will be a pretty straight-forward fix. The recommended fix is to upgrade mocha to version 4 (minimum)
Expected work to be done

Update Mocha to version 4 (or 5) in package.json
Update travis.yml to ensure travis only run up to node version supported by Mocha version 4 (or 5 the latest)

Steps to Reproduce

npm install
npm audit
Analyse the output.

More information for the vulnerability :
https://snyk.io/test/npm/mocha/2.4.5
Technical details:

node-http-client Version: master (latest commit: [a341cf3083b193f0117f91ed6070d0b02c0ba241])
Node.js Version:8.x.x

@thinkingserious  I can take this piece of work if you think it's worthwhile for this month :)

Thank you @robincher!


Default Dashboard: Google Ads Cost over Time

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/1733
Originally created by @dmor on 2020-02-13 20:56:53

Definition of "Cost":

The estimated total amount of money you've spent on your campaign, ad set or ad during its schedule. This metric is estimated.

For the MVC, we should just show this at the account level (no special selector for specific campaigns).
https://developers.google.com/adwords/api/docs/appendix/reports/ad-performance-report#cost

View 5 previous comments from the original issue on GitLab


kafka: client has run out of available brokers to talk to (Is your cluster reachable?)

Hello,
When I connect kafka (With SASL authentication - SCAM-SH-512) from kafka-minion, I am getting below error.
"panic","module":"cluster","msg":"failed to start client","reason":"kafka: client has run out of available brokers to talk to (Is your cluster reachable?)"
FYI, I have used helm chart and set all the necessary parameters required for SASL SCRAM. Kindly help me to resolve the issue.

Hey @annpricksedmund , can you please disable logging at the debug level and post your logs? As far as I see it's currently not possible to turn on debug logs from sarama (which is a pitty for debugging problems like yours).
But maybe you'll see something obvious after enabling debug logs.

Thanks for the response. PFB, the debug info.
{"level":"info","msg":"Starting kafka minion version1.0.0","time":"2020-02-16T15:27:42Z"}
{"level":"debug","msg":"Sarama client config has been created successfully","time":"2020-02-16T15:27:42Z"}
{"address":"<IP_ADDRESS>:8725,<IP_ADDRESS>:8725,<IP_ADDRESS>:8725","level":"info","module":"cluster","msg":"connecting to kafka cluster","time":"2020-02-16T15:27:42Z"}
{"address":"<IP_ADDRESS>:8725,<IP_ADDRESS>:8725,<IP_ADDRESS>:8725","level":"panic","module":"cluster","msg":"failed to start client","reason":"kafka: client has run out of available brokers to talk to (Is your cluster reachable?)","time":"2020-02-16T15:27:43Z"}
panic: (*logrus.Entry) (0x94ef00,0xc00012e150)
goroutine 1 [running]:
github.com/sirupsen/logrus.Entry.log(0xc000072360, 0xc00012a7b0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:239 +0x2ce
github.com/sirupsen/logrus.(*Entry).Log(0xc00012e0e0, 0x0, 0xc000127878, 0x1, 0x1)
/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:268 +0xed
github.com/sirupsen/logrus.(*Entry).Logf(0xc00012e0e0, 0xc000000000, 0x95cf3c, 0x16, 0x0, 0x0, 0x0)
/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:314 +0xe4
github.com/sirupsen/logrus.(*Entry).Panicf(...)
/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:352
github.com/google-cloud-tools/kafka-minion/kafka.NewCluster(0xc00011e000, 0xc000072d20, 0xc000030880)
/app/kafka/cluster.go:80 +0x759
main.main()
/app/main.go:48 +0x2b6

Do you use the image built from master? v1.0.0 has no scram support and I haven't released a new version since then.

No. I took helm chart and the image whatever mentioned in that

I built the image from master now and getting the same issue. PFB, the logs.
{"level":"info","msg":"Starting kafka minion version1.1.2","time":"2020-02-17T08:05:30Z"}
{"level":"debug","msg":"Sarama client config has been set for scram 512","time":"2020-02-17T08:05:30Z"}
{"level":"debug","msg":"Sarama client config has been created successfully","time":"2020-02-17T08:05:30Z"}
{"address":"<IP_ADDRESS>:8725,<IP_ADDRESS>:8725,<IP_ADDRESS>:8725","level":"info","module":"cluster","msg":"connecting to kafka cluster","time":"2020-02-17T08:05:30Z"}
{"address":"<IP_ADDRESS>:8725,<IP_ADDRESS>:8725,<IP_ADDRESS>:8725","level":"panic","module":"cluster","msg":"failed to start client","reason":"kafka: client has run out of available brokers to talk to (Is your cluster reachable?)","time":"2020-02-17T08:05:30Z"}
panic: (*logrus.Entry) (0xaaa260,0xc00036a070)

goroutine 1 [running]:
github.com/sirupsen/logrus.Entry.log(0xc0000e6a10, 0xc00033e480, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:239 +0x2db
github.com/sirupsen/logrus.(*Entry).Log(0xc00036a000, 0x0, 0xc000157848, 0x1, 0x1)
	/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:268 +0xeb
github.com/sirupsen/logrus.(*Entry).Logf(0xc00036a000, 0xc000000000, 0xababa4, 0x16, 0x0, 0x0, 0x0)
	/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:314 +0xe2
github.com/sirupsen/logrus.(*Entry).Panicf(...)
	/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:352
github.com/google-cloud-tools/kafka-minion/kafka.NewCluster(0xc0000c67e0, 0xc0000bade0, 0xc0000bade0)
	/app/kafka/cluster.go:80 +0x733
main.main()
	/app/main.go:48 +0x2b7

You don't need to build the images yourself, you can take one from here: https://quay.io/repository/google-cloud-tools/kafka-minion?tab=tags
I just pushed code which attaches a logger for sarama if you set the loglevel to debug. Please try running it again and you should see some more log messages

PFB, the logs.
{"level":"info","msg":"Starting kafka minion version1.0.0","time":"2020-02-18T07:02:42Z"}
{"level":"debug","msg":"Sarama client config has been set for scram 512","time":"2020-02-18T07:02:42Z"}
{"level":"debug","msg":"Sarama client config has been created successfully","time":"2020-02-18T07:02:42Z"}
{"address":"<IP_ADDRESS>:8725,<IP_ADDRESS>:8725,<IP_ADDRESS>:8725","level":"info","module":"cluster","msg":"connecting to kafka cluster","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"Initializing new client","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/metadata no available broker to send metadata request to","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/brokers resurrecting 3 dead seed brokers","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/metadata retrying after 250ms... (3 attempts remaining)\n","source":"sarama","time":"2020-02-18T07:02:42Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata no available broker to send metadata request to","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/brokers resurrecting 3 dead seed brokers","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata retrying after 250ms... (2 attempts remaining)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata no available broker to send metadata request to","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/brokers resurrecting 3 dead seed brokers","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata retrying after 250ms... (1 attempts remaining)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata fetching metadata for all topics from broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Connected to broker at <IP_ADDRESS>:8725 (unregistered)\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata got error from broker -1 while fetching metadata: EOF\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closed connection to broker <IP_ADDRESS>:8725\n","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/metadata no available broker to send metadata request to","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"client/brokers resurrecting 3 dead seed brokers","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"level":"info","msg":"Closing Client","source":"sarama","time":"2020-02-18T07:02:43Z"}
{"address":"<IP_ADDRESS>:8725,<IP_ADDRESS>:8725,<IP_ADDRESS>:8725","level":"panic","module":"cluster","msg":"failed to start client","reason":"kafka: client has run out of available brokers to talk to (Is your cluster reachable?)","time":"2020-02-18T07:02:43Z"}
panic: (*logrus.Entry) (0xaaa260,0xc0001f2e70)

goroutine 1 [running]:
github.com/sirupsen/logrus.Entry.log(0xc000114a10, 0xc0002b7200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:239 +0x2db
github.com/sirupsen/logrus.(*Entry).Log(0xc0001f2e00, 0x0, 0xc00014f848, 0x1, 0x1)
	/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:268 +0xeb
github.com/sirupsen/logrus.(*Entry).Logf(0xc0001f2e00, 0xc000000000, 0xababaa, 0x16, 0x0, 0x0, 0x0)
	/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:314 +0xe2
github.com/sirupsen/logrus.(*Entry).Panicf(...)
	/go/pkg/mod/github.com/sirupsen/logrus@v1.4.2/entry.go:352
github.com/google-cloud-tools/kafka-minion/kafka.NewCluster(0xc0000ce7e0, 0xc000100de0, 0xc000100de0)
	/app/kafka/cluster.go:80 +0x733
main.main()
	/app/main.go:53 +0x2c2

These are all the debug logs you could get straight from Sarama (our kafka client lib). Unfortunately I can not test the SCRAM integration myself, but maybe jchomat can help. He submitted the PR: https://github.com/cloudworkz/kafka-minion/pull/26 .
The PR is pretty much the same as suggested in Sarama's examples.

Please try again with v2 which uses a completely different Kafka client. SCRAM-SHA authentication has been successfully tested there.


fix(CSI-241): disregard sync_on_close in mountmap per FS

TL;DR
Introduced a new AsMapKey() method for MountOptions to create version-agnostic map keys.
What changed?

Added a new AsMapKey() method to the MountOptions struct in mountoptions.go.
This method creates a version of the mount options that excludes certain options (currently only MountOptionSyncOnClose) to be used as a map key.
Updated mounter.go to use AsMapKey() instead of String() when accessing or modifying the mountMap.

How to test?
Covered by unit testing
Why make this change?
This change allows for more consistent handling of mount options across different versions of the Weka cluster / client. By excluding version-specific options like MountOptionSyncOnClose from the map key, we can avoid unnecessary duplication of mounts and ensure that mounts with the same essential options are treated as identical, regardless of version-specific differences.

#299
#310  👈
dev

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

Join @sergeyberezansky and the rest of your teammates on  Graphite

Merge activity

Sep 12, 6:10 AM EDT: @sergeyberezansky started a stack merge that includes this pull request via Graphite.


Adds the 1.0 changelog

Eh, I think it's time

Ok, let me update rocket :P then we can release 1.0.0 with the new version
PS. what about the GitHub client?

merge on green


[testing] ContextMock

About
Technically, this implementation should be considered as an in-memory alternative to IO-based Jetty's request/response impls. Because the main goal of this PR is to provide a convenient way to call http endpoints manually, this naturally falls into the mocking library scope. I called it ContextMock, because the name is pretty simple and should be easily indexed/queried by users & browsers.
Why

Replacement for magic mocking libraries (fake & lazy stubs unrelated to the real implementation) for people that are already forced to test app like that (team choice/tech debt)
A better solution for people that just prefers mocks over real HTTP requests and they don't care about all of its cons
Official solution for cases where mocks might be truly needed

Goals

Reflection-free
API focused on test-friendly setups
Behave pretty much the same as a real HTTP request (following the internal ctx handling lifecycle)

Issue

#1976

In the first draft, I focused on bootstrapping all of the necessary components. Main goals:

Magic-free context creation
Fast initialization
Reusability of the configured req/res state
Following the lifecycle known from the core implementation

Current issues:

Handlers can be represented by lambas, so we don't have access to endpoint metadata (handler type, url, roles)
Defaults that can be different from Jetty's req/res impl
Some internal stuff related to req/res impl

With a small adjustment in the JavalinServlet implementation, I can simply pass context created by the servlet to tests. It means, that current request handling is managed by Javalin and in-memory req/res is the only source of truth for request related data. Thanks to that, current implementation is already more accurate than any other mocking library.
There's still an issue with the fact, that the in-memory implementation is pretty crippled and behaves differently than Jetty.

Ok, so here's a little preview. Firstly, we need to define our endpoints:
https://github.com/javalin/javalin/blob/07306031953d3af220bd4179d7d85d06d53f25ea/javalin/src/test/java/io/javalin/TestStubMocks.kt#L14-L27
For default routing, registered via lambda/method references, this is required, because there's no other way to fetch that data safely. With javalin-routing-extensions it could be probably generated out of the box, for half of the methods via compile-time or sth like that. Anyway, later on, we can just simply call it like that:
https://github.com/javalin/javalin/blob/07306031953d3af220bd4179d7d85d06d53f25ea/javalin/src/test/java/io/javalin/TestStubMocks.kt#L29-L41
All methods should work out of the box, so there's no need to mock them by user manually:
https://github.com/javalin/javalin/blob/07306031953d3af220bd4179d7d85d06d53f25ea/javalin/src/test/java/io/javalin/TestStubMocks.kt#L43-L54
Javalin has some conditional behavior that is configured in JavalinConfig. With this approach, there's no need to simulate that, because there's native support for config customizer:
https://github.com/javalin/javalin/blob/07306031953d3af220bd4179d7d85d06d53f25ea/javalin/src/test/java/io/javalin/TestStubMocks.kt#L56-L68
Finally, each endpoint execution goes through our core JavalinServlet. This is extremely useful, not only because it's way closer to the real behavior, but also because it handles some tricky part of the API, such as e.g. async request handling:
https://github.com/javalin/javalin/blob/07306031953d3af220bd4179d7d85d06d53f25ea/javalin/src/test/java/io/javalin/TestStubMocks.kt#L70-L74
It'd be nice to get some brief feedback on that, any thoughts @tipsy @zugazagoitia @Playacem?

It'd be nice to get some brief feedback on that, any thoughts @tipsy @zugazagoitia @Playacem?

With the need for the Endpoint class, I think I would make that class responsible for creating the mock. So instead of
val context = contextMock.execute(TestController.defaultApiEndpoint)
assertThat(context.result()).isEqualTo("Hello <IP_ADDRESS>")

val context = TestController.defaultApiEndpoint.createMockContext()
assertThat(context.result()).isEqualTo("Hello <IP_ADDRESS>")

And then
val context = myEndpoint
         .withJavalinConfiguration {
             it.contextResolver.ip = { ctx -> ctx.header(X_FORWARDED_FOR) ?: ctx.header(HOST)!! }
         }
         .withRequestState {
             it.headers[X_FORWARDED_FOR] = mutableListOf("<IP_ADDRESS>")
         }
         .createMockContext()

Interesting, it'd be probably easier to call and more natural for tests. The only issue I see here is that I'm not sure how it'd work with a parent mock cfg. Because currently, you can do sth like that:
 private val contextMock = ContextMock
   .create()
   .withRequestState {  it.headers[X_FORWARDED_FOR] = mutableListOf("<IP_ADDRESS>") }

@Test
fun test1() =
  contextMock
    .withRequestState  { /* something specific to test */ }
    .execute(endpoint)

Do you think we could create something like Endpoint and support it in the default routing? Let's say something like this:
val getUsers = Endpoint(method = GET, path = "/api/users") { ctx -> }

val app = Javalin.createAndStart {
  it.mount(Default) {
    it.endpoint(getUsers)
  }
}

// --- tests

private val contextMock = ContextMock.create() // some shared cfg

@Test
fun test() {
  val context = contextMock.execute(getUsers)
  assertThat(context.result()).isEqualTo("Hello <IP_ADDRESS>")
}

Do you think we could create something like Endpoint and support it in the default routing? Let's say something like this:

We sort of have it through HttpHandlerEntry ? Could you reuse it somehow? 🤔

data class HttpHandlerEntry(
    val type: HandlerType,
    val path: String,
    val routerConfig: RouterConfig,
    val roles: Set<RouteRole>,
    val handler: Handler,
) {
    private val pathParser = PathParser(path, routerConfig)
    fun matches(requestUri: String): Boolean = pathParser.matches(requestUri)
    fun extractPathParams(requestUri: String): Map<String, String> = pathParser.extractPathParams(requestUri)
    fun handle(ctx: JavalinServletContext, requestUri: String) = handler.handle(ctx.update(this, requestUri))
}

I think this is probably a little bit too "internal". I mean, would you even like to see this kind of API? That's probably a good question before going into details 😅

I really like the idea of a Context mock. We do not necessarily need a reusable Context mock as one could always use a small method to create a fresh context mock on the fly instead. I personally would use these to verify my Context extension methods ^^
An alternative name for this could be InMemoryContext or FakeContext.

That makes more sense. I'll try to take a look at it, so I can combine all of your feedback together & see how it looks like :)

It'd look like this:
Same, if no extra parameters:
https://github.com/javalin/javalin/blob/8e99602b8efa5365222b605328c6399b5b57ff49/javalin/src/test/java/io/javalin/TestMockContext.kt#L26
With standard params:

https://github.com/javalin/javalin/blob/6ec11eb31dee3f0b36c54ef89828fab05431408c/javalin/src/test/java/io/javalin/TestMockContext.kt#L38
https://github.com/javalin/javalin/blob/8e99602b8efa5365222b605328c6399b5b57ff49/javalin/src/test/java/io/javalin/TestMockContext.kt#L38

With custom mock cfg scope:

https://github.com/javalin/javalin/blob/8e99602b8efa5365222b605328c6399b5b57ff49/javalin/src/test/java/io/javalin/TestMockContext.kt#L51-L54
https://github.com/javalin/javalin/blob/8e99602b8efa5365222b605328c6399b5b57ff49/javalin/src/test/java/io/javalin/TestMockContext.kt#L51-L54

https://github.com/javalin/javalin/blob/e26838e757dbfce5569377c036ac4dd0784a3a95/javalin/src/test/java/io/javalin/TestMockContext.kt#L20-L107

@dzikoysk are you able to move this into the testtools artifact?

@dzikoysk are you able to move this into the testtools module?

There were some reasons he couldn't/shouldn't. We talked about it on discord.

Technically it could be, but practically, I personally didn't see a reason to do that. javalin-testtools module seems to be more like a specific utility module around okhttp (pulls okhttp dependency and implements testclient around it), while this implementation is about in-memory dependency-free request/response implementation, and such things are usually a part of the core module and its usage is not limited to tests.
I know that the fact I called it a Mock* resembles testing libraries, but it's more like a compromise on the practical side of future user cases. If you don't want to see this in the core impl, maybe it should be moved to the standalone module/repository (javalin-mock/javalin-context-mock or something like that).
Anyway, that's just my opinion on that, if you disagree, and you want to make this part of testtools, I can start working on that as well.

It'd be nice to get some feedback. Some parts of the Request/Response API are still not implemented, but those are not directly used by Javalin - I guess we could work on that on users' requests, at least at some point, because it's marked as experimental API anyway 🤔

@zugazagoitia There were some reasons he couldn't/shouldn't. We talked about it on discord.
Most of the code is in a util package, so it really should be possible.

Below quotes are from @dzikoysk:

and its usage is not limited to tests.

What other use cases would it have?

I know that the fact I called it a Mock resembles testing libraries, but it's more like a compromise on the practical side of future user cases. In my regular project, I'd probably call it InMemory and keep it in the infrastructure related package. If you don't want to see this in the core impl, maybe it should be moved to the standalone module/repository (javalin-mock/javalin-context-mock or something like that). Anyway, that's just my opinion on that, if you disagree, and you want to make this part of testtools, I can start working on that as well.

I think you make a good point. The amount of code here would make up like 12% of the total code base, which I think is a good argument for moving it out, but I agree that testtools is probably the wrong place for it to live. Most of the code seems to be in a util package, so maybe we're ready for javalin-utils ? This is (or used to be) a pretty common pattern for libraries.

It'd be nice to get some feedback.

It's quite a large PR, I want to provide feedback, but it's going to take some time. It would be really helpful if we could split this into two PRs, one for "Changes to Javalin to support this PR", and ... "This PR".

What other use cases would it have?

The amount of code here would make up like 12% of the total code base, which I think is a good argument for moving it out, but I agree that testtools is probably the wrong place for it to live. Most of the code seems to be in a util package, so maybe we're ready for javalin-utils ? This is (or used to be) a pretty common pattern for libraries.

My opinion is that it shouldn't live in the "core" artifact, making a javalin-utils seems like a good idea. It is my impression that not many people are going to use this code in their applications and even less deploy it, so having a separate artifact that could be included only during testing seems reasonable.

If you don't want to see this in the core impl, maybe it should be moved to the standalone module/repository (javalin-mock/javalin-context-mock or something like that).

Better a module, in the same repo, than a different repository.

Overall this looks like a healthy change now, except for the request lifecycle being mutable. Why is this required?

Oh, I've used that here:

https://github.com/javalin/javalin/blob/b0a1a268551c5cff2d1ea8e46b29c589fa30a4b3/javalin-utils/javalin-context-mock/src/main/java/io/javalin/mock/ContextMock.kt#L101

I didn't want to update the cfg, because it'd register 2+ callbacks when ContextMock is reused. Also, having mutableLost in cfg is a little bit more user friendly, because users don't have to copy all default tasks, they can just add their own at the beginning/given index/end via list api.

Could have sworn I merged this a long time ago. Could you rebase? 🙏


update container registry

https://github.com/liquibase/liquibase-spinnaker-plugin/blob/0ac42ab84203ca87e54d0d6be20c7fbc779aa708/liquibase-orca/src/main/resources/org/liquibase/spinnaker/plugin/preconfigured/liquibase.yaml#L60
The configuration points to my personal docker hub account. Once a container image is published to a container registry liquibase owns this needs to be updated.

Fixed by #2


Add support for setting OIDC redirect_uri in config

Description

Add option to set the host name of the argocd server in the OIDC config.
Currently this defaults to argocd-server which does not resolve correctly so SSO servers throw errors or redirect to a host that can not be resolved.
Expected Behavior

Have an option to set this host name in the OIDC config or have the operator use the server > host value set in the server config.
Actual Behavior

The redirect_uri hostname is set to argocd-server:
https://keycloak.example.com/auth/realms/myrealm/protocol/openid-connect/auth?client_id=argocd&redirect_uri=https%3A%2F%2Fargocd-server%2Fauth%2Fcallback&response_type=code&scope=openid+profile+email+groups&state=jETgjbecfO

Environment

Operating system: Fedora 32.20200512.0 (IoT Edition)
k8s version: v1.17.2+k3s1

Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.2", GitCommit:"59603c6e503c87169aea6106f57b9f242f64df89", GitTreeState:"clean", BuildDate:"2020-01-18T23:30:10Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.2+k3s1", GitCommit:"cdab19b09a84389ffbf57bebd33871c60b1d6b28", GitTreeState:"clean", BuildDate:"2020-01-27T18:09:26Z", GoVersion:"go1.13.6", Compiler:"gc", Platform:"linux/amd64"}

Project Version/Tag: v0.0.8
SSO server: Keycloak 9.0.2

Steps to reproduce

Install the argocd operator using olm method
Install a SSO server (in my testing keycloak)
Setup a client for Argocd on the SSO server
Create an argocd instance based on the example cr with an oidcConfig in the spec
Select LOGIN VIA KEYCLOAK in the web interface
Redirected to the SSO server and get error Invalid parameter: redirect_uri

If you set up the SSO to accept any Redirect URIs you get redirected to the argocd-server hostname.

Thank you @garyedwards for the detailed write up. This is something than needs enhancement for sure. I will get started on implementing a solution.

Hi @jmckind thanks for your great work on this operator.  It may be worth doing an audit of all of the areas that can inherit the host value.  For example I have noticed that the tls settings for ingress also use argocd-server rather the the server config host value.  It may be I am missing something let me know if I can help with testing etc.

@garyedwards I have been thinking about this more and wouldn't #91 address this for you here? Overriding the Host on the IngressSpec would result in that being used in the redirect_uri because that would be the value in the host url from the argocd-cm ConfigMap that is managed by the operator. That should be how it is working, going to run through some tests of that setup.

I have just had another look and it does not seem to come through into the argocd-cm configmap:
kubectl get configmaps -n argocd argocd-cm -o yaml
apiVersion: v1
data:
...
  url: https://argocd-server
...

My config reads:
apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
  name: argocd
  labels:
    profile: my-gitops
spec:
  server:
    grpc:
      ingress: false
      host: argo-grpc.mydomain
    ingress: false
    insecure: true
    host: argo.mydomain

I have ingress off currently as add my own manually as the tls does not respect the host value.  I can have another go with ingress enabled.  Does your testing bring through the server > host value?

I think this was actually caused by #95, which the fix was just merged into master and will go out in the next release. In addition, I am going to submit a new PR that just includes the enhancements for Ingress and does not combine it with the Route changes.

The Ingress enhancements have been merged into master as part of #101 and will go out in the next release.


slider add properties:thumbImage,progressColor,progressBackgroundColor,thumbColor

just like iOS's properties:
progressColor--> maximumTrackTintColor
progressBackgroundColor--> minimumTrackTintColor
"thumbImage" in android also is working
"thumbColor" only in android
but these properties is supported android 6.0+

By analyzing the blame information on this pull request, we identified @mkonicek and @sebmarkbage to be potential reviewers.

@linjson updated the pull request.

@linjson updated the pull request.

@linjson updated the pull request.

Thanks for working on this @linjson. Can you please update the description? See https://github.com/facebook/react-native/blob/master/PULL_REQUEST_TEMPLATE.md

Adding the 'needs revision' label because we need an explanation of what this does as well as a test plan to be able to review this.

Eager to see this coming out. Nice job!

If you need help to test this change, just ping me. Desperately need this :)

@linjson updated the pull request.

@yuriteixeira,I tried some times,but,ci/circleci test is not passed
How can I fix these bugs

This is pretty cool! Can you add some screenshots from the UI Explorer to this pull request please?

example:

Mostly looks good to me, pointed out a few issues. The main thing we should do is use the same prop as ios for the bar color.

thank you

It seems that you're making a lot of changes in this PR. Can you try splitting them up and writing a clearer description of what you're changing and why?
I can see three specific changes that you're working on here:

Setting of Thumb Color
new splitTrack boolean
Setting thumbImage and trackImage

Closing this for now- please submit new PRs for these individual changes!


[Regression] X-Frame-Options cannot be overwritten by docker labels with v2.2.11 (OK with v2.2.8)

Do you want to request a feature or report a bug?
Bug
What did you do?
I have made my traefik config to ensure X-Frame-Options is set to deny (cf. dynamic.toml content below)
I have a nextcloud service in which I have a label to override this value and ensure that X-Frame-Options is set to sameorigin (cf. docker-compose.yml below for nextcloud configured with FPM behind an NGINX)
I migrated my traefik image (official docker) from 2.2.8 to 2.2.11, without any other change in my traefik or nextcloud configuration.
What did you expect to see?
I expect that with v2.2.11 the behavior is similar to the one I had with v2.2.8 => the Nextcloud service has the X-Frame-Options set to sameorigin
Edit: issue also reproduced in v2.2.10. It seems that the v2.2.10 is the first one with this issue (no version v2.2.9 found on docker hub)
What did you see instead?
With v2.2.11, the Nextcloud service has X-Frame-Options set to deny
Just changing the traefik container back to v2.2.8 made the problem disappear (no other changes made).
Output of traefik version:
traefik version output for v2.2.8:
Version:      2.2.8
Codename:     chevrotin
Go version:   go1.14.6
Built:        2020-07-28T15:46:03Z
OS/Arch:      linux/amd64

traefik version output for v2.2.11:
Version:      2.2.11
Codename:     chevrotin
Go version:   go1.14.8
Built:        2020-09-07T14:12:48Z
OS/Arch:      linux/amd64

What is your environment & configuration (arguments, toml, provider, platform, ...)?

traefik.toml:

[entryPoints]
  [entryPoints.webinsecure]
    address = ":80"
    [entryPoints.webinsecure.http]
      middlewares = ["security@file"]
      [entryPoints.webinsecure.http.redirections.entryPoint]
        to = "web"
        scheme = "https"
  [entryPoints.web]
    address = ":443"
    [entryPoints.web.http]
      middlewares = ["security@file"]
      [entryPoints.web.http.tls]
        options = "mytlsoption@file"
        certresolver = "le"

[providers]
  [providers.file]
    filename = "/etc/traefik/dynamic.toml"
  [providers.docker]
    endpoint = "unix:///var/run/docker.sock"
    exposedbydefault = false
    network = "web"

[api]

[certificatesResolvers.le.acme]
  storage = "/etc/traefik/acme.json"
  [certificatesResolvers.le.acme.httpchallenge]
    entrypoint = "webinsecure"

dynamic.toml:

[http.middlewares]
  [http.middlewares.security.headers]
    frameDeny = true
    sslRedirect = true
    browserXssFilter = true
    contentTypeNoSniff = true

[tls.options.mytlsoption]
  minVersion = "VersionTLS12"
  cipherSuites = [
    "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", # TLS 1.2
    "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",   # TLS 1.2
    "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", # TLS 1.2
    "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",   # TLS 1.2
    "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",  # TLS 1.2
    "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",    # TLS 1.2
    "TLS_AES_256_GCM_SHA384",                  # TLS 1.3
    "TLS_CHACHA20_POLY1305_SHA256",            # TLS 1.3
  ]
  curvePreferences = ["CurveP521", "CurveP384"]
  sniStrict = true

docker-compose.yml:

---
version: '3'
services:
  traefik:
    image: traefik:v2.2
    restart: unless-stopped
    env_file:
    - ".env"
    ports:
    - 80:80
    - 443:443
    networks:
    - web
    volumes:
    - "/var/run/docker.sock:/var/run/docker.sock"
    - "./traefik.toml:/etc/traefik/traefik.toml"
    - "./dynamic.toml:/etc/traefik/dynamic.toml"
    - "./acme.json:/etc/traefik/acme.json"
    command:
    - "--certificatesresolvers.le.acme.email=${ACME_EMAIL}"

Here is my nextcloud config:

docker-compose.yml truncated:

---
version: '3'
networks:
  web:
    external: true
services:
  db:
    <removed>
  app:
    <removed>
  web:
    build: "./nginx"### If applicable, please paste the log output in DEBUG level (`--log.level=DEBUG` switch)

    restart: unless-stopped
    volumes:
      - "/srv/domain.org/cloud/app:/var/www/html:ro"
    labels:
      traefik.enable: 'true'
      traefik.http.routers.servicedomainorg.rule: Host(`service.domain.org`)
      traefik.http.middlewares.servicedomainorg-redirect.redirectregex.permanent: 'true'
      traefik.http.middlewares.servicedomainorg-redirect.redirectregex.regex: https://(.*)/.well-known/(card|cal)dav
      traefik.http.middlewares.servicedomainorg-redirect.redirectregex.replacement: https://$${1}/remote.php/dav/
      traefik.http.middlewares.servicedomainorg-headers.headers.customFrameOptionsValue: sameorigin
      traefik.http.routers.servicedomainorg.middlewares: servicedomainorg-redirect@docker,servicedomainorg-headers@docker
    networks:
      - web
      - default

Let me know if you need more information.

Hello,
Could you explain your use-case in detail? Why do you override the value?

@ldez, I have several website behind traefik and most of them can support the deny option (which is more secure). So I put it as default in traefik.
When adding Nextcloud it requires sameorigin and therefore I overwrote it with the docker label to keep deny by default for the other sites.
Everything went fine until my tentative to migrate from v2.2.8 to v2.2.1 ;-(

In fact, the previous behavior was a bug, because the order of the middleware application was wrong.
This fix has been introduced in #7230

@ldez OK thanks for the information. Do you if there is any way to perform what I want in this case (having a global default value at traefik level and overwrite it thanks to label or other mean for a specific site) ?

Sorry, but currently, I don't see any way to apply a global default middleware and be able to override.
I know we have an issue that speaks to this, but I can't seem to find it.

@ldez, thanks for taking the time to answer. I'll have to handle that on my side.


Negative samples

My original data's columns contains some sparse negative columns and some zeros ....After generation  it becomes like a dense negative columns and there is no zeros ...instead of zeros they are like constant negative samples...How can i overcome this sampling?

Hi @Venseven,
Could you please provide us some more information, such as:

Python version/OS.
Hyperparameters for TGANModel.
An example of the input given and output generated.
Any warning or error message that may appear during the fit or sampling.

Thanks.

Closing this issue, as it has been inactive for two months. Please, feel free to open it again in case you can provide some more details about it!


Why don't we use bower for front end

Why don't we use bower for front end, I think it will be better for reducing the size of build.

Bower is a package manager. How would it reduce the size of the build?

I am not sure actually what happening when creating a build, this is what i get when comparing bower and npm, each package in npm has its own dependencies, when we use two packages both require different versions of jQuery, here we are forced to include 2 different jQuery. But bower packages don't allow its own dependencies, we have to add dependencies separately, so we can use a common jQuery for different packages.
Please correct me if i am wrong.
Thankyou

What version of NPM are you using?
I'd try the following:

make sure you have NPM 3.x installed and active on your system (verify this by running npm -v
install jquery as a direct dependency of your app
rm -rf node_modules && npm install

This should make sure you only have a single version of jquery installed.

Also note that just because two different versions of jquery end up in node_modules, this does not mean webpack will actually bundle both versions with your app.

Thanks bro, now i can use npm confidentially. Sorry for my limited knowledge.


Typescript services crash when opening JSX tags

VSCode Version: 1.22.2
OS Version: osx 10.12.6

Steps to Reproduce:
I can't figure out the exact steps to reproduce, but it always happens when I'm editing JSX and typically happens more often once the JSX gets bigger and more complex. It most commonly occurs when I open a new tag.
When there should just be a single Expected corresponding JSX closing tag error, instead, hundreds how errors are thrown and everything typescript service related stops working.  No formatting, goto-def, code complete, errors don't go away no matter what I type, etc.
Simply restarting ts server does not fix it.  Have to reload the program, which is annoying because I typically have webpack dev server running in the vscode terminal.

Does this issue occur when all extensions are disabled?: Yes/No
Yes (I think... need to double check but it happens very random so it's hard to reproduce)
Output from Typescript Console
[Error  - 9:34:06 PM] 'signatureHelp' request failed with error.
Error processing request. Debug Failure. Did not expect JsxExpression to have an Identifier in its trivia
Error: Debug Failure. Did not expect JsxExpression to have an Identifier in its trivia
    at NodeObject.addSyntheticNodes (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:83665:34)
    at NodeObject.createChildren (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:83729:22)
    at NodeObject.getChildren (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:83749:22)
    at getTokenAtPositionWorker (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:66283:43)
    at getTokenAtPosition (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:66274:16)
    at Object.findTokenOnLeftOfPosition (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:66308:31)
    at Object.getSignatureHelpItems (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:75060:36)
    at Object.getSignatureHelpItems (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:84729:37)
    at IOSession.Session.getSignatureHelpItems (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:91641:62)
    at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:90663:61)
    at /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:92067:88
    at IOSession.Session.executeWithRequestId (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:92058:28)
    at IOSession.Session.executeCommand (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:92067:33)
    at IOSession.Session.onMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:92087:35)
    at Interface.<anonymous> (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:93288:27)
    at emitOne (events.js:96:13)
    at Interface.emit (events.js:191:7)
    at Interface._onLine (readline.js:241:10)
    at Interface._normalWrite (readline.js:384:12)
    at Socket.ondata (readline.js:101:10)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:191:7)
    at readableAddChunk (_stream_readable.js:178:18)
    at Socket.Readable.push (_stream_readable.js:136:10)
    at Pipe.onread (net.js:560:20)

Can you please test this in VS Code insiders. We've fixed a number of bugs since 1.22 but I do not know if this one specifically has been fixed or not
Also please let me know if you can determine steps to reliably reproduce the problem

No, I do not think the standard versions of those extensions have access to the tsserver


Rapid7's Product Information

Rapid7

https://www.rapid7.com/blog/post/2021/12/14/update-on-log4shells-impact-on-rapid7-solutions-and-systems/?mkt_tok=NDExLU5BSy05NzAAAAGBVaccW1DOLSfEsfTNwEJksv_1nK1muJSFze-Lle90mKtAO78nSdjwPdzqXskNIi9qZCAGQODD42mYRK4YPlQkjhn38E27HQxFHdHAkypEOsh8

Product Names and Version info available at link above.

Status:  Affected

Update Available:  Yes or No (If Yes, please provide link to information)

References](https://www.rapid7.com/blog/post/2021/12/14/update-on-log4shells-impact-on-rapid7-solutions-and-systems/?mkt_tok=NDExLU5BSy05NzAAAAGBVaccW1DOLSfEsfTNwEJksv_1nK1muJSFze-Lle90mKtAO78nSdjwPdzqXskNIi9qZCAGQODD42mYRK4YPlQkjhn38E27HQxFHdHAkypEOsh8)

Last Updated:  12/14/21

Thank you! This issue has been added.


System.Decimal size: 128 bits (16 bytes) or 96 bits (12 bytes)?

[Enter feedback here]
According to this page: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types the C# decimal is a 16 bytes (128 bits) data type.:
C# type/keyword: decimal
Approximate range: ±1.0 x 10^-28 to ±7.9228 x 10^28
Precision: 28-29 digits
Size: 16 bytes
.NET type: System.Decimal
But when you click in this page on the link System.Decimal and go over to the Decimal Struct documentation you'll read:
"The binary representation of a Decimal value consists of a 1-bit sign, a 96-bit integer number, and a scaling factor used to divide the 96-bit integer and specify what portion of it is a decimal fraction. "

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b24345d9-7aec-14ad-8c3c-56410267849a
Version Independent ID: f83555d8-9dac-5019-3345-bb0f03e1311d
Content: Floating-point numeric types - C# reference
Content Source: docs/csharp/language-reference/builtin-types/floating-point-numeric-types.md
Product: dotnet-csharp
Technology: csharp-language-reference
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

I don't see the contradiction. The second description says it's a 12-byte integer plus some additional data (sign and scaling factor), which could easily account for the extra 4 bytes.

Thank you for your quick response.
If you look at it like that, you are right.
It was a bit confusing to me as I read it that it could hold 128 bits of value in stead of 96 bits of actual value + 32 bits of metadata for scaling.
FYI:
I have tried with a data reader to extract a data from a field from the Teradata database which was defined as Numeric(35) and the
data reader crashed on this field because it could not hold the data in the System.Decimal structure.
See https://docs.teradata.com/r/WurHmDcDf31smikPbo9Mcw/qRPNDX~qEo95bZ~BnM5UaA
The data value from Teradata to hold<PHONE_NUMBER>5722000010004000003300000 did not fit in .NET System.Decimal structure☹
System.Decimal Max value which does fit<PHONE_NUMBER>4264337593543950335
Will .Net get a native data structure that can truly hold a 128 bits numeric value, like the one mentioned above, that also can be used with a data reader?
Regards,
Arjan Douwes
Van: Petr Onderka @.>
Verzonden: maandag 28 juni 2021 14:02
Aan: dotnet/docs @.>
CC: arjandouwes @.>; Author @.>
Onderwerp: Re: [dotnet/docs] System.Decimal size: 128 bits (16 bytes) or 96 bits (12 bytes)? (#24883)
I don't see the contradiction. The second description says it's a 12-byte integer plus some additional data (sign and scaling factor), which could easily account for the extra 4 bytes.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/dotnet/docs/issues/24883#issuecomment-869624230 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJA6CGDFCFJOPOV6JYQXCPDTVBQDLANCNFSM47NLZZ4Q .  https://github.com/notifications/beacon/AJA6CGFDNYBPBZZ6FVFFQM3TVBQDLA5CNFSM47NLZZ42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOGPKWTJQ.gif

@arjandouwes I have no experience with Teradata, but if I understand it right, I think Numeric(35) could be represented as System.Numerics.BigInteger. Though I think TdDataReader does not support BigInteger and you should use TdDecimal instead.
Also, I think something like Stack Overflow or a Teradata-specific site would be a better place for that discussion.

System.Decimal is indeed 128-bit. The 96 bits are just the mantissa part. The documentation is correct.


add flc cloudstack doc

Issue #, if available:
Documentation cloudstack lifecycle support#998
Adding mgmt cluster worker node lifecycle support in doc#1294
Description of changes:
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/cherry-pick release-0.16


Java prime-factors sends as input a double, while should be a long

Since all tests send longs, I think also the input type should be long.

Yes, agreed. There's no call for floating point number here.


RuntimeError: NNI manager closed connection

NNI 学生项目问题概述 / General Question of Student Program
请简要概述您的问题 / 观点 :
Short summary about the question / idea :
在使用NNI的超参数调优功能时，总是遇到RuntimeError: NNI manager closed connection，然后experiment就自动被kill掉了。有时候开始就这样，有时候跑几个trial后出现。具体的报错信息如下（在nni-experiments/xxxxlog/nnictl_stderr.log）：
node:internal/fs/watchers:252
    throw error;
    ^

Error: ENOSPC: System limit for number of file watchers reached, watch '/mnt/sdc/xxx/xxx/nni-experiments/y7xpc6ve/trials/AAhSD/.nni/metrics'
    at FSWatcher.<computed> (node:internal/fs/watchers:244:19)
    at Object.watch (node:fs:2251:34)
    at TailStream.waitForMoreData (/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni_node/node_modules/tail-stream/index.js:123:31)
    at TailStream.<anonymous> (/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni_node/node_modules/tail-stream/index.js:275:22)
    at FSReqCallback.wrapper [as oncomplete] (node:fs:660:5) {
  errno: -28,
  syscall: 'watch',
  code: 'ENOSPC',
  path: '/mnt/sdc/xxx/xxx/nni-experiments/y7xpc6ve/trials/AAhSD/.nni/metrics',
  filename: '/mnt/sdc/xxx/xxx/nni-experiments/y7xpc6ve/trials/AAhSD/.nni/metrics'
}
Thrown at:
    at __node_internal_captureLargerStackTrace (node:internal/errors:464:5)
    at __node_internal_uvException (node:internal/errors:521:10)
    at FSWatcher.<computed> (node:internal/fs/watchers:244:19)
    at watch (node:fs:2251:34)
    at TailStream.waitForMoreData (/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni_node/node_modules/tail-stream/index.js:123:31)
    at /home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni_node/node_modules/tail-stream/index.js:275:22
    at wrapper (node:fs:660:5)
Traceback (most recent call last):
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/__main__.py", line 83, in <module>
    main()
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/__main__.py", line 60, in main
    dispatcher.run()
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/runtime/msg_dispatcher_base.py", line 68, in run
    command, data = self._channel._receive()
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/runtime/tuner_command_channel/channel.py", line 59, in _receive
    raise RuntimeError('NNI manager closed connection')
RuntimeError: NNI manager closed connection

对于这个问题，我尝试使用修改系统监控文件数fs.inotify.max_user_watches=131070来解决，可以缓解，但是在nni运行中，仍然会出现这个问题，而且不同的机器也都出现这个问题。
请提供 NNI 环境信息 :
nni Environment :

nni version:2.8 （事实上，任何版本都有这个问题）
nni mode(local|pai|remote):local
OS: Ubuntu 18
python version: 3.7.6
is conda or virtualenv used?: conda
is running in docker?: no

其他建议 / Other Advice
这个问题非常影响使用，希望可以尽快给出一个解决方案。
是否需要更新文档（是 / 否）:
Need to update document ( yes / no ) :
其他分享内容 :
Anything else we need to know :
Log message / 日志信息 :

nnimanager.log and dispatcher.log :

[2023-03-03 00:01:45] ERROR (nni.main/MainThread) NNI manager closed connection
Traceback (most recent call last):
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/__main__.py", line 83, in <module>
    main()
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/__main__.py", line 60, in main
    dispatcher.run()
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/runtime/msg_dispatcher_base.py", line 68, in run
    command, data = self._channel._receive()
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/runtime/tuner_command_channel/channel.py", line 59, in _receive
    raise RuntimeError('NNI manager closed connection')
RuntimeError: NNI manager closed connection

nnictl stdout and stderr :

node:internal/fs/watchers:252
    throw error;
    ^
Error: ENOSPC: System limit for number of file watchers reached, watch '/mnt/sdc/xxx/xxx/nni-experiments/y7xpc6ve/trials/AAhSD/.nni/metrics'
    at FSWatcher.<computed> (node:internal/fs/watchers:244:19)
    at Object.watch (node:fs:2251:34)
    at TailStream.waitForMoreData (/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni_node/node_modules/tail-stream/index.js:123:31)
    at TailStream.<anonymous> (/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni_node/node_modules/tail-stream/index.js:275:22)
    at FSReqCallback.wrapper [as oncomplete] (node:fs:660:5) {
  errno: -28,
  syscall: 'watch',
  code: 'ENOSPC',
  path: '/mnt/sdc/xxx/xxx/nni-experiments/y7xpc6ve/trials/AAhSD/.nni/metrics',
  filename: '/mnt/sdc/xxx/xxx/nni-experiments/y7xpc6ve/trials/AAhSD/.nni/metrics'
}
Thrown at:
    at __node_internal_captureLargerStackTrace (node:internal/errors:464:5)
    at __node_internal_uvException (node:internal/errors:521:10)
    at FSWatcher.<computed> (node:internal/fs/watchers:244:19)
    at watch (node:fs:2251:34)
    at TailStream.waitForMoreData (/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni_node/node_modules/tail-stream/index.js:123:31)
    at /home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni_node/node_modules/tail-stream/index.js:275:22
    at wrapper (node:fs:660:5)
Traceback (most recent call last):
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/__main__.py", line 83, in <module>
    main()
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/__main__.py", line 60, in main
    dispatcher.run()
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/runtime/msg_dispatcher_base.py", line 68, in run
    command, data = self._channel._receive()
  File "/home/xxx/anaconda3/envs/vtorch/lib/python3.7/site-packages/nni/runtime/tuner_command_channel/channel.py", line 59, in _receive
    raise RuntimeError('NNI manager closed connection')
RuntimeError: NNI manager closed connection

This will be fixed in upcoming release. Thanks for your report.

Thanks, are there some temporary solutions? I am eager to use it.

Please wait the latest release or using master to try it.

You can try out the alpha release.


Users/tihuang/diskusage

nice

Can we print out at the beginning of a build if the drive where the work folder is on has 90%+ usage or < x GB free?  Chat with ChrisP for thoughts.

How expensive is it?  If real cheap, same check in between tasks might be interesting.


Chatterino closes after agreeing to update

Describe the bug
Upon startup of Chatterino, when the update window pops up, if I agree to the update, the program closes about a second later. No update seems to be installed, because the update prompt returns upon starting again.
To Reproduce
Start Chatterino, select 'Yes' when prompted with the question to download and install the update. As usual, another window appears explaining that the update will be downloaded in the background, but shortly after both the main window and the popup close without further interaction.
Expected behavior
After selecting 'Yes', a prompt appears explaining background download. Both this prompt and the main window stay open unless closed by the user and the update is downloaded in the background. (The program isn't closed automatically)
Screenshots
Gif of the behaviour attached

Chatterino version
Chatterino Nightly 2.0.4 (3ef77f4-1)
Additional context
Windows 10, version 1903, build 18362.295. Happens when run as admin as well. Also happens when 'ok' is selected in the followup prompt. Chatterino remains functioning as normal if 'No' is selected during the update prompt.

Chatterino nightly 2.0.4 can't update. You can either the official release on https://chatterino.com or a newer nightly build.


Modularize content folder

Continue from #147 , but this time, make it a built-in Statinamic feature.

Currently, we have a folder that contains all assets for the website. And then we'll mount this folder to a route on dev mode. Or copy it to dist folder before Webpack build. More info
At first, it's sound like a good solution, but when your website get fat, it's horrible to manage all of those assets. You have to type absolutely url when embed a image. And it get worse when you change the route (trust me, brutal replacement is horrible).
So here is my proposal to "modularize" posts:
For each post, we'll create a new folder looks like this:
YYYY-MM-DD-my-awesome-post
|__index.md
|__my-image.jpg

index.md content:
---
route: my-awesome-post
---

<img src="./my-image.jpg" />

This is how to dist folder looks like:
/my-awesome-post/
|_index.html
|_my-image.jpg

AFAIK there is no easy way to implement this atm in dev mode. Any thought ? @MoOx

Update: gatsby's implementation

It's pretty easy and you can do this already.

https://github.com/putaindecode/putaindecode.io/blob/381503c68be9c25403e40408f8dd1d2ede1e6089/scripts/index-client.js#L1-L3
https://github.com/putaindecode/putaindecode.io/blob/381503c68be9c25403e40408f8dd1d2ede1e6089/scripts/webpack.config.babel.js#L64-L69

See #103

Eg: https://github.com/putaindecode/putaindecode.io/tree/381503c68be9c25403e40408f8dd1d2ede1e6089/content/fr/articles/twitter/comme-lecteur-de-flux

@MoOx awesome. I'm trying it.

You webpack configuration doesn't sastify my proposal. It doesn't work if I define a different route in frontmatter. Jekyll convention is adding YYYY-MM-DD to filename to have a good post order out of the box (this is a good convention for a blog)

I've seen a few other static website generators following that convention. It makes sense to me.

@gristel they follow Jekyll convention. Jekyll is the most popular static site generators

Your webpack configuration doesn't sastify my proposal.

I guess we need something that will follow the route. Not an easy thing to solve. That means we will need to parse url in the md to resolve those file via webpack? So that basically handling #147?

So that basically handling #147?

Maybe. But is it a good idea to make webpack loader stateful ?   But maybe we can use another loader indeed, like css-loader can parse url() and style-loader handle the runtime part.

Good idea. :+1: I still like the idea of user can replace the loader if he/she doesn't like the way it behaves.  Breaking it to multiple loader is a good solution to that. But in order to pass url, the markdown file has to be required somewhere. So we need to ditched babel plugin first. cc #301

I consider this as a dup of #147


[release-1.1] Fix cluster scope and CNI branch

This is an automated cherry-pick of #17711

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-test.sh
26de4162a048a6f2eb9e3485bdc46cadd89264c3
link
/test release-test

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn any idea what the prow/release-test.sh failure means?
/home/prow/go/src/istio.io/istio/prow/lib.sh: line 111: GIT_BRANCH: unbound variable

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-test.sh
26de4162a048a6f2eb9e3485bdc46cadd89264c3
link
/test release-test

prow/istio-unit-tests.sh
26de4162a048a6f2eb9e3485bdc46cadd89264c3
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
26de4162a048a6f2eb9e3485bdc46cadd89264c3
link
/test istio-unit-tests

prow/release-test.sh
4c736c6293af251511e0808690dcaf110b7eb2ee
link
/test release-test

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/release-test.sh
4c736c6293af251511e0808690dcaf110b7eb2ee
link
/test release-test

prow/istio-unit-tests.sh
abd3e88cb36d0295f24392dfc764e346539f5663
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
abd3e88cb36d0295f24392dfc764e346539f5663
link
/test istio-unit-tests

prow/istio-pilot-multicluster-e2e.sh
abd3e88cb36d0295f24392dfc764e346539f5663
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Force merging this.  Once this is merged and https://github.com/istio/istio/pull/17812 is rebased, tests should pass


HBASE-25172 No need timelineservice for branch-2.2 nightly job's hado…

…op integration test

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
3m 40s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+0 :ok:
shelldocs
0m  0s
Shelldocs was not available.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ branch-2.2 Compile Tests _

+0 :ok:
mvndep
0m 14s
Maven dependency ordering for branch

_ Patch Compile Tests _

+0 :ok:
mvndep
0m  7s
Maven dependency ordering for patch

+1 :green_heart:
shellcheck
0m  0s
There were no new shellcheck issues.

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

_ Other Tests _

+0 :ok:
asflicense
0m  0s
ASF License check generated no output?

5m  4s

Subsystem
Report/Notes

Docker
Client=19.03.13 Server=19.03.13 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2527/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2527

Optional Tests
dupname asflicense shellcheck shelldocs

uname
Linux 3a5807bd43b9 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 GNU/Linux

Build tool
maven

Personality
/home/jenkins/jenkins-agent/workspace/Base-PreCommit-GitHub-PR_PR-2527/out/precommit/personality/provided.sh

git revision
branch-2.2 / c439caa591

Max. process+thread count
41 (vs. ulimit of 12500)

modules
C:  U:

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2527/1/console

versions
git=2.11.0 maven=2018-06-17T18:33:14Z) shellcheck=0.7.1

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.


CI: Switching Between Github.com and Github Enterprise Usernames

Issue: Switching to the Github Enterprise instances requires a set of usernames that do not work both on Github.com and Github Enterprise.

The usernames have been switched from Github.com to Github Enterprise usernames.
Possible Solution: Depending on the API format configured in the .env of the GH_API property, we can switch between sets of usernames that work on Github.com and Github Enterprise respectively.
This possible solution must work for both TestHarness.ts and GithubActions.ts files:

UPDATE:  More username references that are Github.com specific broke autotest application tests on Github Enterprise.
See diff between master from 076cfc5aa764a2572103417d2a1e363c102de6de for these files:

packages/autotest/test/githubEvents/comment_master_bot_one-deliv.json
packages/autotest/test/githubEvents/comment_master_bot_two-deliv.json
packages/autotest/test/githubEvents/comment_other-branch_bot_one-deliv.json
packages/autotest/test/ClassPortalSpec.ts

Update: More hardwired usesrnames exist in autotest. See diff and master on 076cfc5aa764a2572103417d2a1e363c102de6de for differences under files:
packages/autotest/test/GitHubEventSpec.ts,
packages/autotest/test/GitHubServiceSpec.ts

Solution: Github usernames were re-used between Github.com and Github Enterprise instances. As we control the LDAP username integrations, we created test accounts and re-created these usernames on Github.com.
The application can switch between Github integrations without having to update the Github usernames. One may update the Github usernames if they wish in the .env file, but this requires quite a lot of manual work.

Released on branch: feature/circle-ci-github-dev-make-script-new-env


The complete pipeline with training testing and validation with hyperparameters

Enhance the hyperparameter tuning pipeline.

Done with addition of KGPipeline module in utils.


Refactoring the test helper

Please describe the change you are making
This change refactors the test helper to make calling it more flexible.
Are you the owner of the code you are sending in, or do you have permission of the owner?
yes
The code will be published under the BSD 3 clause license. Have you read and understood this license?
yes

FYI @eslutsky this change contains the secondary storage domain ID.

can you add secondary storage domain to the mockClient here
https://github.com/oVirt/go-ovirt-client/blob/57035d4d1c124f65912ad91f597db83593119560/newmock.go#L29
?

It's already in this PR. Please take a look at the changes.


null/undefined value should be displayed appropriately

By default, I think it should be an empty string. Currently, "undefined" is printed out on the screen.

See also 2015:display show_nulls instructions.

@howdyjessie this should be handled as part of the pretty print functionality.

This issue is dependent on informatics-isi-edu/ermrestjs#152.
The app then should check the Tuple.values. If the column value is null, then that column should not be printed, otherwise, print whatever is in that value. The ermrestjs will deal with setting the right null display for the context.

This issue is currently blocked/paused due to discrepancies in how we specify contexts for annotations (i.e. "record" and "detailed" both refer to entity-level apps).
Currently the show_nulls property in the 2015:display annotation uses the detailed context to determine a column's formatvalue when that column has a null value. In Record 2, however, the app uses Reference.contextualize.record, which sets the app's context to "record", not "detailed". Because of this, ermrestjs is unable to return the correct tuple value for null columns.
@RFSH and I consulted with @robes about this, and we've decided the first step to resolving this discrepancy is by editing the annotations doc to codify the contexts we'd like to use consistently. @RFSH will make a PR with changes, and we can discuss what terms to use in this PR thread.

I created the pull request

This has been addressed in PR #547.


Update_path append issues

Hey,
First of all thanks for creating this client. It saved me a lot of time writing similar one.
I want to report an error.
I am using Python 3.7.2
When calling update_path function I am getting error from Requests:

Value for header {Content-Length: 4} must be of type str or bytes, not <class 'int'>
That's what I do:
client.update_path('wmfs','test/test_file','append','test')

It is easy to figure out that change in lines 464 and 466 is needed so I changed it to:
if action == "flush":
    headers["Content-Length"] = str(0)
if action == "append":
    headers["Content-Length"] = str(len(data))

However it does not solve the issue. After I fixed it I am getting:

Exception: 400: {"error":{"code":"MissingRequiredQueryParameter","message":"A query parameter that's mandatory for this request is not specified.

I have compared request parameters to the datalake2 docs in order to find any mistakes but I can't find anything.
Have you tried calling update_path with append parameter? Was it working for you?

Hi @Dryja ,
Thank you for the feedback, much appreciated :)
I've made small research with your problem. Unfortunately, I didn't test update path methods at all as I'm not using it in my regular job. But, anyway, I seem found the problem with append and flush actions. So, please check the latest changes in the master branch. Once you confirm that the problem is fixed I can upload it to pypi.

Thank you for your quick response.
I can confirm that both append and flush actions are working. I was able to add some chars to the file.
Thanks again for you help :)  I think I can close the issue now.

 New version has been uploaded to pypi


Upgrade VS Code Extensions

<EMAIL_ADDRESS>-><EMAIL_ADDRESS>adding posit.shiny extension

 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.