Duplicating Html When Using Web Forms

When using web forms, turning on glimpse is resulting in everything before and including the form element beginning being duplicated so title element, any html before form element and crucially, viewstate. It seems web forms, at least the Microsoft version of it, calls any response filter's Write method twice: once with the html up to and including html rendered by beginning of asp:form and once with all the html after this. The current implementation of GlimpseResponseFilter sends to output any input that does not include end body tag AND saves it to a StringBuilder. When the write method is called again, it outputs the whole of the html stored in the StringBuilder resulting in duplicated html. If a user clicks a button on a page where viewstate has been duplicated a "The state information is invalid for this page and might be corrupted" error is generated.
This commit includes a test that invokes the filter's Write like web forms does and a fix for this issue.

Wow - great issue report/pull request dpen2000.
Thank you for the very detailed report and the fix!
We will look into this ASAP.
Nik

Similar problem with Viewstate. Waiting 0.87 release :)


Stump usage with prebuild binary & systemd service file

If any body want to use stump with systemd/service file. then i want to share my working  stump.service file.
feel free to customaries according to your requirements.
[Unit]
Requires=multi-user.target
After=multi-user.target

[Service]
Environment="STUMP_CONFIG_DIR=/mnt/dietpi_userdata/stump"
Environment="STUMP_PORT=8086"
Environment="STUMP_CLIENT_DIR=/mnt/dietpi_userdata/stump/client"
Environment="STUMP_VERBOSITY=0"
Environment="ENABLE_SWAGGER_UI=true"
Environment="STUMP_IN_DOCKER=false"
Environment="STUMP_DB_PATH=/mnt/dietpi_userdata/stump/db"
Environment="PDFIUM_PATH=/mnt/dietpi_userdata/stump/pdfium/lib/libpdfium.so"
User=stump
Group=stump
StandardOutput=inherit
StandardError=inherit
ExecStart=/mnt/dietpi_userdata/stump/stump_server
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

also if somebody interested in reverse proxy(  https://github.com/junkurihara/rust-rpxy ) with stump. my working rpxy.service file is as below
[Unit]
Description=rpxy
##After=network.target
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/mnt/dietpi_userdata/rpxy/rpxy_active -c /mnt/dietpi_userdata/rpxy/rpxy.toml
WorkingDirectory=/mnt/dietpi_userdata/rpxy
StandardOutput=inherit
StandardError=inherit
#Restart=on-failure
Restart=always
#RestartSec=10s
User=rpxy
Group=rpxy

[Install]
WantedBy=multi-user.target

Hey, thanks for providing these examples! If you're comfortable, you're more than welcome to add them directly to the docs (/apps/docs folder). Otherwise, I'll try and add them in shortly 🙂

Thanks for reply, please you write it as per need. thanks for your discord channel & always helping me.


Is the reason of response from tus server must match the protocol?

of course the status code must be the same to the protocol,
but what about the reason part?
Is it also must same to the protocol?

The specification defined status codes plus the reason, e.g. 200 OK. While client implementations checking for the reason are rare, we recommend to use the standardized reasons. Especially since HTTP/2 does not support reasons any more, see http://evertpot.com/http-2-finalized/.

thanks for the reply.

No problem :)


CMS: Fix test introduced with #200

#200 introduced issues with CMS tests failing. This is a bit strange as no code affecting the CMS was (seemingly) changed.

It seems as if the testing environment (jsdom and/or fake-indexeddb/auto) struggles to initialize the database fast enough, causing the first test to fail on tests where IndexedDb is accessed. (When skipping the first test, the second test fails, and all subsequent tests are passing).
As a workaround a Dexie bulkPut is added in beforeAll, which solves the problem by initializing IndexedDb a bit earlier.

Fixed some testing warnings as well


Help to run GPTFast on Mixtral-8x7B-Instruct-v0.1

Could you help to give an example code to run GPTFast on Mixtral-8x7B-Instruct-v0.1?
I load the model with GPTFast with empty draft_model_name. Error shows when loading the model as following.
model_name = "./Mixtral-8x7B-v0.1"
draft_model_name = ""

tokenizer = AutoTokenizer.from_pretrained(model_name)
initial_string = "Write me a short story."
input_tokens = tokenizer.encode(initial_string, return_tensors="pt").to(device)

# ....

Traceback (most recent call last):
File "/data/gptfast.py", line 77, in
gpt_fast_model = gpt_fast(model_name, sample_function=argmax, max_length=60, cache_config=cache_config, draft_model_name=draft_model_name)
File "/root/anaconda3/envs/llm/lib/python3.10/site-packages/GPTFast/Core/GPTFast.py", line 11, in gpt_fast
model = add_kv_cache(model, sample_function, max_length, cache_config, dtype=torch.float16)
File "/root/anaconda3/envs/llm/lib/python3.10/site-packages/GPTFast/Core/KVCache/KVCacheModel.py", line 208, in add_kv_cache
model = KVCacheModel(transformer, sampling_fn, max_length, cache_config, dtype)
File "/root/anaconda3/envs/llm/lib/python3.10/site-packages/GPTFast/Core/KVCache/KVCacheModel.py", line 21, in init
self._model = self.add_static_cache_to_model(model, cache_config, max_length, dtype, self.device)
File "/root/anaconda3/envs/llm/lib/python3.10/site-packages/GPTFast/Core/KVCache/KVCacheModel.py", line 48, in add_static_cache_to_model
module_forward_str_kv_cache = add_input_pos_to_func_str(module_forward_str, forward_prop_ref, "input_pos=input_pos")
File "/root/anaconda3/envs/llm/lib/python3.10/site-packages/GPTFast/Helpers/String/add_input_pos_to_func_str.py", line 18, in add_input_pos_to_func_str
raise ValueError("Submodule forward pass not found.")
ValueError: Submodule forward pass not found.

Hey David, apologies for the late response. Mixtral should support static caching natively, and a new branch should be up this weekend or early next week with the fixes.

Hey David, apologies for the late response. Mixtral should support static caching natively, and a new branch should be up this weekend or early next week with the fixes.

Thanks, looking forward the new branch.


Move all initialization functions into a single function

Since future plans are to improve compatibility with Meteor and Angular, I propose that a master initialization function be created in the materialize.js file to resolve issues with $(document).ready firing before templates have been injected into the DOM.
This would make resolving issues such as #822 much simpler, since rather than needing to call all the internal functions that would have been used or pre-add classes to your inputs and other elements, you could simply call the single function to run the initialization functions once the framework is ready.

+1

+1

Duplicate #915

Please close ;)


Error: "Terminal Token name: " + terminalName + " not found"

I get error if I take token by dict['tokenname']. But no error, if I take token by dict.tokenname. Why?
// tokens.js
import { extendToken } from "chevrotain";
var tokens = {
  "init":      extendToken("init", /init/)
};

// parser.js
import { Parser } from "chevrotain";
var tokens = require('./tokens');

class ScenarioParser extends Parser {
  constructor(input) {
    super(input, tokens);

    let $ = this;

    // this rule - OK
    this.init = $.RULE('init', () => {
      $.CONSUME(tokens.init)
    })

    // this rule: Error: Terminal Token name: tokens not found
    this.init = $.RULE('init', () => {
      $.CONSUME(tokens['init'])
    })

    Parser.performSelfAnalysis(this);
  }
}

Thanks for the feedback @Kroid.
      $.CONSUME(tokens['init'])

The CONSUME construct is not a runtime only construct.
Imagine the following grammar
// this rule: throw Error("Terminal Token name: " + terminalName + " not found");
    this.init = $.RULE('init', () => {
      $.OPTION(() => {
           $.CONSUME(tokens.init)
      )
    })

At runtime there is not sufficient information to decide if the option should be entered or not.
Because before entering the OPTION we need to know what is inside of it to make the choice.
This means we need a pseudo compilation step to know the full grammar structure in advance.
This pseudo compilation step is part of what happens in
    Parser.performSelfAnalysis(this);

And it works by using Function.prototype.toString to get the source code of the grammar RULE and parse it.
Basically to be able to work, the parser parses itself first at runtime. 😄
So to answer your original question.
This pseudo compilation step simply does not recognize the square brackets access syntax.
You can find the related code here:
https://github.com/SAP/chevrotain/blob/master/src/parse/gast_builder.ts
I suppose it should be possible to upgrade the code to support this and I would be willing to consider merging pull requests that do so. But I'm not sure this is a high priority.
because from a "pretty/readable syntax" perspective it is not very good.
I think the most readable approach would be
$.CONSUME(Init)
$.CONSUME(Integer)
$.CONSUME(Identifier)

without any prefix.
You can see a fuller example using this syntax here.
https://github.com/SAP/chevrotain/blob/master/examples/grammars/json/json_es6.js#L94
This coding style (no prefix) is also compatible with ES6 classes and improved imports/exports.
import {Init, Integer, Identifier} from "./tokens"

Thank for answer, @bd82.
You right, this is not a high priority.


Add tools for MuSiC and Cell Cycle tutorials

TODO: Please can you add these tools that are needed for some of the GTN tutorials?
Installation sequence for tool-installers

[ ] Test using @galaxybot test this
[ ] Inspect CI output for expected changes
[ ] Deploy using @galaxybot deploy this if test install was successful
[ ] Merge this PR

@galaxybot test this

Thanks @MarisaJL! For next time, you'll also have to run make fix to generate or update the relevant lock file (see https://github.com/galaxyproject/usegalaxy-tools#requesting-a-new-tool-or-updating-a-tool)


credentials_set?': undefined method access_key_id' for nil:NilClass (NoMethodError)

#terraforming sg --profile admin
Getting error "credentials_set?': undefined method access_key_id' for nil:NilClass (NoMethodError)" while trying to use terraforming.
My config and credentials files as below -
$ cat .aws/config
[default]
region = us-east-1
[profile admin]
region = us-east-1
role_arn = arn:aws:iam::AccountID:role/admin
source_profile = default
[profile readonly]
region = us-east-1
role_arn = arn:aws:iam::AccountID:role/readonly
source_profile = default
$ cat .aws/credentials
[default]
aws_access_key_id = Access key
aws_secret_access_key = Secret key
The same configuration is working fine in another account where I don't have any profile,only changing access key and secret key.
ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
Tried terraforming sg --profile admin --assume arn:aws:iam::accountID:role/admin but getting same error.
aws cli working fine with these credentials.
aws iam list-users --profile admin
Is there any way to fix this ?

me too

I found if you use what's set in the source_profile part it works


Some rather simple but unifying brace for the gem groups is needed

what's the use case here? the toolkit/portals/modules will show a list of all the gems belonging to that module. so i don't think this is needed


Add PRF Documentation to website

Hi. Is there a reason that the PRF documentation is missing from the website?
There is no hyperlink to it in the list of primitives and the use case of generating deterministic tokens for redacting personal data is not listed on the website. It is, however, listed on the README.
If you point me to how the documentation is generated, I would be happy to try to fix this in a PR. Btw I love that example use cases are given. This helps non-crypto experts easily navigate which primitive to use.

An initial PRF primitive overview page has been added at https://developers.google.com/tink/prf. We'll continue to iterate on it.
FYI, the developers.google.com site is maintained internally and the publishing pipeline isn't sourced from the OSS codebase (i.e. it's not feasible to contribute via PR at this time).
Thanks for calling this out.


npm run installgo is leading to nowhere

First I tried npm start and got this error
Error:Failed to launch chaincode spec(Could not get deployment transaction for a6d7d80d48346954df4e9143b346f3c4b27d3129b1ba28ec295c11138efc9c7a - LedgerError - ResourceNotFound: ledger: resource not found)
Since it was refered in README.md I followed the steps and tried "npm run installgo" which lead to further errors
Failed at the<EMAIL_ADDRESS>installgo script 'cd src/build-chaincode && GOPATH=$(pwd)/../.. && govend -v'.
I understand the above line originates from package.json. But I dont know how to proceed further.
node version: 6.9.2; npm version 4.0.5
Any tips?

My team mate with OSX was able to go over steps in a jiffy?
So, is it possible that this is a linux specific issue. Please enlighten on this aspect as well

@raj040492 It is clear your chaincode is not deployed, I guess because you miss the vendorsdependencies. Is govend correctly installed and it is in your $PATH? Please strictly follow the Prerequisites section in the README and paste here below complete logs.

I too realised the same.. Removed govend completely and reinstalled the same.. edited PATH variables and ensured govend is in the path variable ; Followed all prerequisites to the core.
but still the same error.
npm ERR! Linux 3.13.0-101-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "nodemon"
npm ERR! node v6.9.2
npm ERR! npm  v4.0.5
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>nodemon: GOPATH=$(pwd) nodemon ./bin/www
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>nodemon script 'GOPATH=$(pwd) nodemon ./bin/www'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the server package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     GOPATH=$(pwd) nodemon ./bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs server
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls server
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/rajkumars/workspace/hackathon/fabric-boilerplate/npm-debug.log

@raj040492 Have you installed nodemon globally as written in the README?
npm install nodemon -g

I have the same problem...I already installed the nodemon. If I run only nodemon woks correctly, but when I run the ./start the error happens

Closed as the new version should resolve this issue.


TypeError: fetch failed

TypeError: fetch failed
at Object.fetch (node:internal/deps/undici/undici:11118:11)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async create (file:///app/node_modules/@waylaidwanderer/fetch-event-source/lib/esm/fetch.js:52:34) {
cause: Error: read ECONNRESET
at TLSWrap.onStreamRead (node:internal/stream_base_commons:217:20) {
errno: -104,
code: 'ECONNRESET',
syscall: 'read'
}
}

node version v18.12.1

seems server is under DDoS attack

So this proxy server can't be used again?

yes, until they stop attck

tkank you, Do you know how to build your own reverse proxy server?

We've taken down our reverse proxy servers because it seems like OpenAI patched the method we were using. We're going to investigate if there's any way to get it working again, but for now it doesn't look good :(

Closing in favor of #73

@waylaidwanderer still thank you

@waylaidwanderer Is that proxy service available now?

isnt that 403 error or something like that

do you know that their model is changed or no
(like in this screenshot)

I can't really say much right now but it seems like the method we were using is broken

Just discovered this library and stumbled into this same error. It's a shame this method is no longer working :(
Does anyone know of any other methods to send requests to the chatgpt website and get a response? Perhaps a working implementation of something like this? https://github.com/Zeeshanahmad4/Automating-ChatGPT-with-Python-and-Selenium

@jjmpsp Yeah, you'd have to use a Cloudflare bypass, but my repo doesn't support using the website to talk to ChatGPT in the first place because it was meant for the API that's coming out soon. We just got started a bit early on that, haha.


Adapter does not work with js-controller 2.0

Adapter does not subscribe to states on run - problem is in GetObjectView in main function. Getobjectview does not return value.common, instead the 'common' property returned right in the value.

Adapter fails on restart. It can be restarted for some reasons only every second time. On first restart it is terminated - then run - then terminated once again.

For #1 - proposed change in the PR

still not working @GermanBluefox ?
https://github.com/Pmant/ioBroker.mqtt-client/pull/18#issuecomment-541937934

for me, publishing works (it directly transmits sensor data from deconz objects)
but it won't react on subscriptions.
The changed mqtt value is fired correctly and the object is set up as it was in the past.
I updated to the js-controller 2.0 compatible version (1.2.0).
I also still have the restarting bug:

mqtt-client.0
2019-10-16 20:16:52.607
info
(31701) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason

mqtt-client.0
2019-10-16 20:16:45.841
info
(31701) connected to broker

Please try to install version from this repo
https://github.com/algar42/ioBroker.mqtt-client
and let me know if it works Ok in your installation

Please try to install version from this repo
https://github.com/algar42/ioBroker.mqtt-client
and let me know if it works Ok in your installation

May I install this adapter side-by-side to the original adapter?

hmm... no, if I understood you correctly.  This is same same adapter... the version in the link is just with updated code that works for me and couple of others with js-controller 2.0

Thank you @algar42!
I just installed it over the existing one simply by installing from github.
I thought, that might bring in another adapter-instance but iobroker directly saw it as an update. :-)
But to my astonishment, version 1.1.1 got installed? It already was on v1.2.0?
BUT: Now it works again! Awesome! Thank You!

@algar42 May I ask if you could prepare a PR that is based on the current master? The current PR removes and adds a lot code and jumps back to 1.1.1.

May I ask you, why you merged completely not working version to master without any testing and any feedback and made it available to all?
Answering your question - no, I can't. The code was almost completely re-written and I'm not going to do this one more time, sorry.
The code that I have is not the "back to 1.1.1", but the mix of what was done by bluefox in #19 and my update that I made for myself.
It is your choice accept my version, or to write yet another, but working, one.

I am sorry if you feel offended by my request. As a matter of fact I can't simply merge your PR because it has conflicts.
@GermanBluefox how should I proceed with this adapter? It's not working right now and I currently do not have the time to dig into 2.0.

@Pmant you could replace only main.js, io-package.json and package.json from my copy. and it should work.
You could do this manually in your master if merge does not work.
Please try and let me know.
if does not help, I'll try to clone current master and do update.

Thank you a lot, I will merge and publish your PR since the current version is not working anyway.

Ok. Cool. Closing this issue for now.


Stubs

Are there any stubs for this extension?
If yes where would I find them?
I'm in the process of writing some of my own stubs by hand.
So far I got all the examples working with stubs while playing with the extension.
I'm also in the process of learning to write php extensions and writing stubs is good exercise for me.
I was wondering if stubs would be helpful to someone, I don't mind continuing writing them for this extension.

I would love the stubs :)

I'm not sure if the stubs belong in this repository, but I sent a PR https://github.com/Ponup/php-sdl/pull/71, just in case.
Until then I've also posted them here.
If they get merged into this repo I'll probably delete or archive that repo.
I'm leaving this open until I get a yay or nay from the authors.

See  src/rect.stub.php which is for the SDL_Rect / SDL_Point classes
Best pratice is to add 1 stub per source file in the sources
which is used to auto-generate the arginfo.h file, and used by the C code.

@remicollet hey I've got some spare time again in the weekends and I'm trying to follow your suggestion.
Do you think you could take a look at this file and give me some feedback as to what is missing if anything?
For examnple, I noticed the comment in the rect.sub.php file
/** @generate-class-entries */

is that necessary?
Another question I have is: does it matter if I specify the body of the functions/methods with random code?
I'm writing these mock contents because it's easier when my IDE is not screaming at me because of the errors.

is that necessary?

Yes, this is needed to generate the C sources


fix: shadow for carousel items

Related issue
Closes #999
Scope of work
Visible shadow on carousel elements

@justyna-13 nice 🎖 I think, we shouldn't use padding :( , these elements must be close to each other. The second thing. Like you see on the bottom screen it looks better but not enough.

@justyna-13 thank you, look's good to me


migration/ef not creating table

invalid clients, identity resources etc

You need generate migrations before. Check please section - https://github.com/skoruba/IdentityServer4.Admin/blob/master/README.md#ef-core--data-access

Does it work for you?

I am closing it, feel free reopen


Update please

new update that brings one paid car broke this mod

yes! this would be greatly appreciated 🙂🌈

I may even try to make patch myself but idk where to start and what needs to be changed. I guess nothing much changed only Version number

haha yeah, no idea what to change/ what causes the game to crash 🤷♂

yes looks like those values change every patch if i knew how to find those values in sr i would have done it by now :D

Yeah, the values that change every time are to pointers to functions within the compiled SnowRunner.exe file.
Unfortunately they cant be extracted from the game UI and a program that scans the processes memory (like Cheat Engine) is required.
The process is actually quite straightforward, but the fewer you know about programming and snowrunner, the more you are fucked if something goes wrong.
If you look at the older issues, you can see that i talked to @Ferrster and he told me a little bit about the project in private.
I tried to extract the new values yesterday, but got stuck on one.
Seems like we once again need the master himself to help us out of this one :/

I got Cheat Engine can you tell me procedure of how to get those memory values in cheat engine i have used it before know some

sounds good, sounds good. did you get it to work properly, or not? : )

no i haven't got answer from him on telegram which values and how to get those values so these may be useless

@MOOOOs If you want, we can also connect and share what we got. If you use discord, add me with my username massimolongo.

Can't find user with that name

Huh, weird - what's your username?


test python35 django==1.6

Test failed, change the version of the django1.6 to 1.9
../../../../.virtualenvs/sprint1/lib/python3.5/site-packages/django/utils/html_parser.py:12: in <module>
    HTMLParseError = _html_parser.HTMLParseError
E   AttributeError: module 'html.parser' has no attribute 'HTMLParseError'

I supposed this can be closed now since we no longer support Django 1.6


Current example search leads to no results and bad message

To reproduce, just click SUBMIT on the front page. There is nothing returned.

Hi, thanks for mentioning this. This is because the page cannot retrieve backend data successfully. There is a content length mismatch error in this page and I have no quick idea how to fix.  I'll merge the dev branch (that works) asap.


About group not showing creator

Yes, that looks like a bug indeed. It seems like the creator profile is no longer being included in the back-end feed. Over to @sathomas for investigation.

the createdBy property of the group profile object is just the id string instead of the full object. working backwards from there.

It's coming directly from the backend /api/group/{groupId} without the full profile. Also, FWIW, the swagger documentation doesn't list the property at all.

This PR fixes the issue in the front end code. I'm not sure if it would be better to fix it in Hilary. (That would definitely eliminate one network roundtrip request.) To @nicolaasmatthijs for comment/review.

@sathomas : Can you go back in the Hilary codebase and check if we used to return the full creator profile as part of the profile feeds? I'm under the impression that we did, and that would also be a better way of resolving the issue.

I looked at the current Hilary code, in model.group.js and saw this:
/**
 * The Group model.
 *
 * @param  {String}     tenantAlias                 The alias of the tenant this group belongs to
 * @param  {String}     id                          The globally unique principalId for this group. e.g.: g:cam:math-101
 * @param  {String}     displayName                 The display name of the group
 * @param  {Object}     [opts]                      Optional additional group properties
 * @param  {String}     [opts.visibility]           The visibility of the group
 * @param  {String}     [opts.joinable]             How the group can be joined
 * @param  {String}     [opts.description]          A longer description for the group
 * @param  {Number}     [opts.lastModified]         The lastModified date of the group
 * @param  {Number}     [opts.created]              The create date of the group
 * @param  {String}     [opts.createdBy]            The id of the user that created the group
 * @param  {String}     [opts.smallPictureUri]      The uri of the small picture. It will be made available at user.picture.smallUri
 * @param  {String}     [opts.mediumPictureUri]     The uri of the medium picture. It will be made available at user.picture.mediumUri
 * @param  {String}     [opts.largePictureUri]      The uri of the large picture. It will be made available at user.picture.largeUri
 */

I'll look through the history and see if that's been changed any time in the past

Looks like it's always been just the user ID. Initial functionality added in this commit. Although @simong did clarify the documentation later.

There was a point in time where we modified all getFullProfile function to include the full user profile of the creator. However, that doesn't seem to be present for groups (anymore). The back-end code should be adjusted to include the full profile (e.g. https://github.com/oaeproject/Hilary/blob/master/node_modules/oae-content/lib/api.js#L155) and appropriate tests should be added.
@sathomas : Can you create a Hilary ticket for this and either have a go at it yourself or assign to @stuartf ?

Closing this in favor of Hilary issue https://github.com/oaeproject/Hilary/issues/1117


UI background colour of warning makes it illegible

ISSUE TYPE

Bug Report

COMPONENT NAME

UI

CLOUDSTACK VERSION

CONFIGURATION

OS / ENVIRONMENT

SUMMARY

when selecting a default ACL for a VPC tier, the warning about the ACL is not legible due to its colours.

STEPS TO REPRODUCE

EXPECTED RESULTS

ACTUAL RESULTS

tested this in the tungsten UI PR #7166 , it seems to be specific to that code. I can not reproduce in main atm.

@DaanHoogland we found this to be a build bug (if you build UI again, you may not consistently get this issue), which we hope is fixed via the Ant Design 3 upgrade by @davidjumani . Pl keep an eye if you hit this again and create new issue.


README.MD editorial update and v3.1 Release notes

Pull request includes editorial updates to README.md to reference the new version. Draft release notes for v3.1 are updated as well. There are few missing links that still need to be updated but will not require a PR.

@Mahsa-Ettefagh thanks for getting this started. I added to RELEASES and made one change I've been wanting to do for a while in the main README, which is putting a summary of WZDx before the repository navigation section, so that visitors don't have to scroll past the directory structure to see what WZDx is about. I adapted what I put in the new intro from the below sections but some is new, so I'd appreciate a review and revision if needed.


TTOOLS-593 Adds publish - unpublish virtualization

added publish - unpublish functions to the VirtualizationHelpers
modified the VirtualizationsPage to utilize the new functions
adapted VirtualizationList and VirtualizationListItem stories

PR Storybook available here


MacOS brew install not working as expected

Following the instructions, the brew install correctly executes, and there's no error shown.
However, it's not added to PATH and If I try to find the binary, and execute it, it's missing dependencies (?)
Locations of the bins:
/opt/homebrew/Cellar/ceph-client/17.2.5_1.reinstall/bin/ceph
/opt/homebrew/Cellar/ceph-client/17.2.5_1.reinstall/libexec/bin/ceph
/System/Volumes/Data/opt/homebrew/Cellar/ceph-client/17.2.5_1.reinstall/bin/ceph
/System/Volumes/Data/opt/homebrew/Cellar/ceph-client/17.2.5_1.reinstall/libexec/bin/ceph

I'm in MacOS 15, in an M2 Pro

I don't know about MacOS and thus won't post any answer. But you'll most probably want to get in touch with the Ceph community(see https://ceph.io/en/community/connect/) than "go-ceph".

Hi @anoopcs9 thank for the prompt response.
I tried installing python 3.10 via brew and now there is another error, so we're advancing a bit:
Traceback (most recent call last):
  File "/opt/homebrew/Cellar/ceph-client/17.2.5_1.reinstall/libexec/bin/ceph", line 151, in <module>
    import rados
ModuleNotFoundError: No module named 'rados'

Shouldn't all these dependencies (python 3.10, modules) be handled by brew itself?


Failing example in documentation about aggregating unit test reports

I have a project with subprojects and I want to generate an aggregated test report about the tests in all subprojects, both the succeeding and the failing tests. Using the instructions in the docs, the test report is not generated. Using the instructions from the Gradle forum in 2014, the test report is generated very well!
So, please update the docs.
Expected Behavior
Test reports from subprojects should be incorporated in the main test report.
Current Behavior
When I use these instructions here (from the official Gradle docs), the build fails before the report is generated because the TestReport task dependsOn Test:
Failing example
subprojects {
    apply plugin: 'java'

    // Disable the test report for the individual test task
    test {
        reports.html.enabled = false
    }
}

task testReport(type: TestReport) {
    destinationDir = file("$buildDir/reports/allTests")
    // Include the results from the `test` task in all subprojects
    reportOn subprojects*.test
}

I found this at https://docs.gradle.org/current/userguide/java_testing.html#test_reporting
However, when I use code and explanation from an old entry in the Gradle forum from 2014, the report is generated very well:
Working example, instead:
subprojects {
    apply plugin: 'java'

    // Disable the test report for the individual test task
    test {
        reports.html.enabled = false
    }
}

task testReport(type: TestReport) {
    destinationDir = file("$buildDir/reports/allTests")
    reportOn subprojects*.test.binResultsDir
}
subprojects {
    test.finalizedBy(testReport)
}

This works because it is not a dependsOn but a finalizedBy relationship.
I found this code (including a good explanation) at https://discuss.gradle.org/t/testreport-not-generated-if-one-of-executed-tests-fails/1770
Steps to Reproduce

Try gradle testReport in the first example and watch what happens when a test in a subproject fails (i.e. the directory $buildDir/reports/allTests is not created at all!)
Try gradle test in the second example and see that the directory is created and filled with a nice test report!

Your Environment
Gradle 6.3
openjdk 14
Mac OS X 10.15.4

I've a similar gradle build file configuration with something like your workaround:
test.finalizedBy(testReport)
but it doesn't work well for me, when you try to filter tests or run single tests from IntelliJ Idea, you ends up running the whole test suite.

The documentation has been updated, and TestReport samples are working now.


Regex rule example in the documentation is incorrect

The example in the documentation of the regex rule is as follows:
'regex:/^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/'

however it doesn't work this way. The correct way is the following:
'regex:^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$'

that is, the slashes at the beginning and the end of the regex is not necessary.

yeah my bad, will update docs

just spent 2 hours on this :)

done as of v2.0.0


reducing deep dependencies

twisted is a large project with many dependencies and not all of it's services are consumed by cyclone, however, how much of it is actually used?

Not much of it is used. These are the required modules:
twisted.internet.defer
twisted.internet.protocol
twisted.internet.reactor
twisted.internet.ssl
twisted.protocols.basic
twisted.protocols.policies
twisted.python.failure
twisted.python.log
And twisted.mail is optional if you want to be able to send emails using cyclone.mail.

That's exactly my point. Is there another framework cyclone can be installed on top of that does not carry that baggage?

I dont think I got your point, you mean by using cyclone over pure python or, say, gevent ? if that's the requirement maybe the best route would be tornado itself, as it provides its own ioloop. Correct me if I'm mistaken ! Best, Gleicon.

rbucker if you don't want twisted then you don't want this project, as gleicon said try tornado.

rbucker if you don't want twisted then you don't want this project, as gleicon said try tornado.

perhaps I should close this ticket
current deps are setuptools and twisted >= 10; simplejson is recommended but not required


add array questions

add multiple array questions in a folder.

I would like to take this issue up.

Hey @saujibua, can work on this ?

Hey @saujibua can I take this issue?

I like to work on it ...
I will provide multiple questions and their solution to help other .
plz assign it to me.

sure you all guys can go ahead.

Done By Me.. Pull Request given.Thank you for opportunity.

Can I add array questions in C?


[WIP] Allow Sidekiq 7 to work with the gem

Closes #409

Updated the sidekiq dependency in the gemspec.
Changed the redis gem to be a development dependency.
Added SIDEKIQ_GTE_7_0_0 for version checks.
Implemented changes needed to get sidekiq 7 playing nice using the new constant to fork logic.

I used a near vanilla Rails app with some simple jobs to verify sidekiq boots and scheduled jobs do enqueue and execute.

So with the release of Sidekiq 7, Sidekiq 5.x and earlier is no longer supported. We may want to take this opportunity to also drop support for those Sidekiq versions in this gem as well here. Maybe also dropping EOL Rubies?
I wouldn't mind taking a shot and a better wrapper class of some sort in this PR to encapsulate pulling out the sidekiq options as a hash instead of having it in riddled if statements. Another option could be to determine exactly what sidekiq options this gem cares about instead of passing around the whole config and merging things blindly just in case we need something.

So with the release of Sidekiq 7, Sidekiq 5.x and earlier is no longer supported. We may want to take this opportunity to also drop support for those Sidekiq versions in this gem as well here. Maybe also dropping EOL Rubies?

Yes, let's do that. Is it needed for this PR or can we do it in a separate one?

I wouldn't mind taking a shot and a better wrapper class of some sort in this PR to encapsulate pulling out the sidekiq options as a hash instead of having it in riddled if statements. Another option could be to determine exactly what sidekiq options this gem cares about instead of passing around the whole config and merging things blindly just in case we need something.

I haven't touched the gem in a while, but I remember I did want to do something similar, if we can do it, it would be lovely.
I'll see if I can take some time to take a stab on it too

@t27duck I pushed some commits, tests are all fixed for both sidekiq 6 & 7, we're just down a bit on the coverage.
I still want us to try to wrap the sidekiq options in a wrapper class so we can avoid all those ifs as you suggested.

Sounds good. I'm going to try to carve out some time to take a swing at something (either a wrapper class or some conditional method overriding mixins) either Friday evening or sometime Saturday (I'm on US east coast time).

@t27duck I took a stab at it here https://github.com/sidekiq-scheduler/sidekiq-scheduler/pull/412
I think we can work on the refactor from there, feel free to work on that branch or come up with a different approach.
I'll merge this branch here but won't make a release until we get that refactor in.

@marcelolx could you release a new version that supports Sidekiq 7, please?

@palexvs While we don't drop a new release you can do the following to use sidekiq-scheduler with sidekiq 7 https://github.com/sidekiq-scheduler/sidekiq-scheduler/issues/409#issuecomment-1303233347, my plans are to push https://github.com/sidekiq-scheduler/sidekiq-scheduler/pull/412 to the finish line next week, but until that, you can safely point your gemfile to the github repo and use sidekiq-scheduler with Sidekiq 7


Fixed bug in make_logical_array

backend.logop_array_set does not exist, should be replaced by backend.ilogical_array_set

Thanks !


Add to the Django packages REST framework grid

https://www.djangopackages.com/grids/g/django-rest-framework/

Done.

:+1:


Cannot create an Apostille in Chrome.

In Chrome browser, during creating an Apostille, after pressing 'Send' we see the 'Transaction successfully sent' message, then the 'Processing' sign and it stays like that forever. The transaction is visible on the blockchain but the .zip file is not created.
It works in Firefox without a problem.

It is working perfectly here in Chrome version 53.0.2785.143 (64-bit). Is your browser up to date or below the version I am using ?

I had the previous version of Chrome but after updating and restarting nothing changed. I'm not sure where's the problem, maybe someone else could test it too.

Can you look at the console when "Processing" appears (tools -> JavaScript console).
You should see red error(s), can you please report them back here ?

main.js:30304
TypeError: Cannot read property 'push' of undefined
at Object.updateNotaryData (main.js:110940)
at _this2._Transactions.serializeAndAnnounceTransactionLoop.then._this2.common.privateKey (main.js:99757)
at processQueue (main.js:32767)
at main.js:32783
at Scope.$eval (main.js:34066)
at Scope.$digest (main.js:33879)
at Scope.$apply (main.js:34174)
at done (main.js:28215)
at completeRequest (main.js:28417)
at XMLHttpRequest.requestLoaded (main.js:28350)

You probably have old Nty data loaded into your local storage. Please clean it and try again it should fix this issue.

I opened an incognito window and it worked there. So you are right, the issue was on my side. Thanks for help.

I forgot to say that in the update.. As nty data structure changed a bit it'll cause error if there is already data in local storage. Going to post about in forum.nem.io thread

@SpiderBTT thanks for testing.  I had this bug too.   please paste in your address

Thanks, here's the address :)
NAIVE43D3SLI5MFIIXRFIY64RKOWIYQQQ6MBM2CC


[#wave-control] [Bring copilot to NewDot] Create AddDelegatePage

Part of the Bring copilot to NewDot project
Main issue: https://github.com/Expensify/Expensify/issues/382866
Doc section: https://docs.google.com/document/d/18G6J5bl61VnVa5CoKpRXhM0MhkXDwpm87GVitZrSCVg/edit#heading=h.2n72uai4aja7
Project: https://github.com/orgs/Expensify/projects/130
Feature Description

Manual Test Steps
Automated Tests
Issue OwnerCurrent Issue Owner: @rushatgabhane

assigning myself for review once it's ready

PR: https://github.com/Expensify/App/pull/47353

I think we can go ahead and close this one right?

yep


feat(Geometry/Manifolds/Instances/Homeomorph): Homeomorphism maps C^k manifolds to C^k manifolds

Labeling as WIP until this can be sufficiently generalized to global homeomorphims.


Relay Global Object Identification Enhancements

How should we handle foreign keys?

This one is now mostly implemented and feels much better than before.
The schema has now a global switch to enable relay support:
ISchema schema = SchemaBuilder.New()
    .EnableRelaySupport()
    .AddType<Query>()
    .Create();

By enabling relay support we will take care of serializing and deserializing id values.
In order to mark an object type as a node we can do the following:
new ObjectType(d => d
    d.AsNode((ctx, id) => ctx.Service<IFooService>().GetEntity(id)))

AsNode adds the node interface and a resolver that fetches this object by id.
The node resolver is used by the node field to resolve nodes by their id.
We still need to ensure that the id arguments are deserialized.


setting KMS key ARN in eksctl create yaml file causes cluster creator to be MasterKey

when is cluster is being created with:

secretsEncryption:
keyARN: ${MASTER_ARN}

in wksworkshop.yaml file, the creator of the cluster is "MasterKey", which prevents the user from accessing the data. after i removed the above lines from the yaml file, the cluster was created correctly. I verified the above behavior by looking in CloudTrail for the user which invoked "createcluster" call.

this seemed to a transitory issue, and didn't happen again


Add delay to when the animation effect should start

Hi, I was wondering if there is a way to achieve some delay after the when prop is set to true. I have an array of images. This array first has zero elements. and then when I fetched the images, it gets filled with the images' URLs. So in my when prop I simply set array.length. But I would like to wait a few 100 milliseconds before it happens. Is there a built-in method for this, or should I create an internal state which uses setInterval when array.length is not zero anymore?

the prop name is delay ;)

Yea its fine but how can add delay dynamically like using loops. Should like 5s,10s,15s and so on


Add Support for Vertex AI Embeddings

Description
Added support for litellm using vertex ai embeddings
Fixes #1827
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactor (does not change functionality, e.g. code style improvements, linting)
[ ] Documentation update

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

[ ] Unit Test
[ ] Test Script (please provide)

Checklist:

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

Maintainer Checklist

[ ] closes #xxxx (Replace xxxx with the GitHub issue number)
[ ] Made sure Checks passed

@Dev-Khant Please review and let me know if any changes are needed. Additionally, inform me if the documentation needs to be updated based on these changes

 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.

Hey @Divyanshu9822 Changes looks good to me. Can you please add this to docs as well?

Hey @Divyanshu9822 Changes looks good to me. Can you please add this to docs as well?

Docs updated, and I've also added the embedding_dims parameter to vertexai

LGTM, @Divyanshu9822 thanks for the contribution.


Fatal error: Index out of range

Using openStoreListing and tried to put appid for ios by following the requirement (e.g. 'id1234567890'), however the error popup saying the index is out of range at urlStore line. This applies to other public apps that I have tried.

I got the same error currently :(

Hey @imanz7 sorry for the delay of anwser, i don't understand why you saw 'id1234567890', to open you should give this id who look like com.myapp.app


New Data should not be abide by same rules of edition than ID, before being uploaded to the OSM Database

Description
One of the problems that I ever encounted with the AI Data suggestion is that several magenta lines once accepted as highway=residential (despite what later will become) are too big to be moved, adjusted or otherwise edited, that produce an unnessesary burden for the mapper to be splitting the line and adjust move or offset chunck by chunck.  This is totally ilogic to me, we should be able to move or adjust the whole line created independently of the size or zoom, because that line is not yet in the Database of OSM.
Mappers are being restricted, by an ID rule that is perhaps Ok for EXISTING DATA, but not ok for data that is not YET part of the Database, as is the data suggested by RAPID AI.

I agree that we can relax the rules about what the user can edit , for features that they just drew and haven't been uploaded to OSM yet.  👍


 I adjusted the constructor to:
this.Images = new Meteor.Files({     debug: false,     collectionName: 'Images',     storagePath: '/images',   allowClientCode: false, // Disallow remove files from Client   onBeforeUpload: function (file) {     // Allow upload files under 10MB, and only in png/jpg/jpeg formats     if (file.size <= 1024*1024*10 && /png|jpg|jpeg/i.test(file.extension)) {       return true;     } else {       return 'Please upload image, with size equal or less than 10MB';     }   } });
And my images are saved in the directoy /images which works perfect.
But why are my images still in my application after removing them from my folder ?

Hello @lightsnow0 ,
App uses Mongo.Collection to know where and what files is stored. If you have removed files from FS, but not from collection, application will think files still exists.
Let me know if it helps

Ok, so I get why the system thinks there is still an image. It's because there is still a link to the image in the mongo.
But why displays my app still the images ? There is no image anymore ? Or are the images also in the mongo ? If yes, i don't get the sense of gridfs ....

@lightsnow0 if you're using GridFS - yes, images in a MongoDB. Otherwise it may be the browser cache.

You're right, was the cache, thanks for the fast reply 👍
And thanks for the great package :)

@lightsnow0 glad it's solved.
Please, support this project by:

Star on GitHub
Star on Atmosphere
Share on Facebook and Twitter
Donate via PayPal


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/40116

TagBot fix

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/49396

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/58127

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/58679

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/59079

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/59529

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/68653

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/71860

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/91542


BufferWhileBy: emit empty array when primary source finished first (#128)

See #128

I actually thought of making this as an option this time, rather than introducing a breaking change. Should've done the same for filterBy, but haven't had that thought at the right time :(
Let's add option emitEmpty alongside with others (flushOnEnd & flushOnChange ), false by default.
There will be an inconsistency with filterBy, that has that behavior by default, but we'll fix this in the future.
What do you think?

Yeah, that's probably better than breaking everything. Though these two, bufferBy/bufferWhileBy, will be most customizable among others :).

Done, I suppose, see new change :)

Also could you add a test case with {flushEmpty: true, flushOnChange: true}, when the controlling stream "chnages" before any value from main stream so the result stream emits []?

The new test case is same as test with emitting [] on end case (which you've added earlier).
There is two cases now when the result stream can emit []:

when the main stream ends,
when controlling stream changes from true to false (simply emits false actually).

We have a test case for the first one, but not for the second.

it 'should flush empty buffer and then end when secondary ends (w/ {flushOnChange: true, emitEmpty: true})', ->
      expect(stream().bufferWhileBy(send(stream(), ['<end>']), {flushOnChange: true, emitEmpty: true})).toEmit [{current: []}, '<end:current>']
      a = stream()
      b = stream()
      expect(a.bufferWhileBy(b, {flushOnChange: true, emitEmpty: true})).toEmit [[], '<end>'], -> send(b, ['<end>'])

Is this one right? It fails in my case, should I fix it?

(fails since emits just an empty array without end event)

With a lot of "intersecting" options, it's becomes a bit harder for one's mind to get what actually should happen :)

Is this one right?

Not quite, its should be send(b, [true, false])

fails since emits only empty array without end event

It's not necessarily have to end after emitting [] (see explanation below)

With a lot of "intersecting" options, it's becomes a bit harder for one's mind to get what actually should happen :)

Yeah, sorry. I'll try to explain how it works. But perhaps you are right that we should simplify it somehow for easier understanding (maybe in v3.0 #103).
So here how it works. It buffers all the values from main stream, and may flush the buffer in 3 cases:

On a value from main stream, if latest value from controlling stream was false.
On a false value from controlling stream, if {flushOnChange: true}.
On end of main stream, unless {flushOnEnd: false}.

And normally in all those 3 cases we check if buffer not empty before emit. But if {emitEmpty: true}, we don't do that check. Also in the first case the buffer always has at least 1 value, because there just was a value from main stream, so emitEmpty does't matter here.
Also note that in the second case after emitting [], the result stream doesn't end, why should it?
Hope that'll help :)

Yes, that's a great explanation, thank you! I think I got this right this time.

On a value from main stream, if latest value from controlling stream was false
if flushOnChange is false, I suppose :)

I'll be able to fix it in the evening, I hope there's no rush :blush:

if flushOnChange is false, I suppose :)

No, flushOnChange also doesn't matter here. On a value from main it puts the new value to the buffer and then immediately flushes the buffer.
With {flushOnChange: false}:
foo:     ----1----2----3----4----5----6----7----8X
bar:     -----------f---------t---------fX

result:  --------------•----•--------------•----•X
               [1, 2, 3]  [4]      [5, 6, 7]  [8]

With {flushOnChange: true}:
foo:     ----1----2----3----4----5----6----7----8X
bar:     -----------f---------t---------fX

result:  -----------•--•----•-----------•--•----•X
               [1, 2] [3]  [4]     [5, 6] [7]  [8]

I'll be able to fix it in the evening, I hope there's no rush :blush:

Of course, no problem :)

Hope now I got things right. So I send true and false to a secondary stream (actually, a property), and since primary stream sent no events before, I check if it emitted empty array. I also wanted to clarify what does the first line in the test case and a difference with the last line. As I see it, first one checks Kefir.bufferWhileBy and last one checks stream.bufferWhileBy(otherStream). Is what I see correct?)

Also I wanted to clarify what does the first line in the test case and a difference with the last line. As I see it, first one checks Kefir.bufferWhileBy and last one checks stream.bufferWhileBy(otherStream). Is what I see correct?)

Not sure what you mean, we don't have Kefir.bufferWhileBy
It's all now looks good to me except for the test title.

Not sure what you mean, we don't have Kefir.bufferWhileBy

True, I somehow thought every stream instance-bound method has a "backup" as a static method. Though, yet I found exports.stream/prop in test-helpers, I feel there is a major difference between the first line and the last line in the test case, but I'd like to clarify, what is it? Or does first line tests if current value was properly emitted, and last one does not? I mean these two:
expect(stream().bufferWhileBy(send(prop(), [true, false]), {flushOnChange: true, emitEmpty: true})).toEmit [{current: []}]
expect(a.bufferWhileBy(b, {flushOnChange: true, emitEmpty: true})).toEmit [[]], -> send(b, [true, false])

Or does first line tests if current value was properly emitted

Yeah, basically
In expect(observable).toEmit(expectedLog, callback) the callback is optional. It subscribes to observable and save events to a log; then if callback provided, calls the callback; then unsubscribe end compare log with expectedLog. So without callback it only captures current values.
It should be send(prop(), [false]) in first line, btw. Both send(prop(), [true, false]) and send(prop(), [false]) create a property with current value false.

:pray:

Merged, thanks!
I'll release a new version soon.

Just published 2.8.0. Sorry it took so long, busy week :bee:

Thank you a lot! Will it soon be at npm or is it there already? No rush, just asking :)

Yeah, it's on npm :)

Great! Thanks again! :)


moment().toObject() returns incorrect month number

var moment = require('moment-timezone')
var mDT = moment()
console.dir(mDT.toObject())
console.dir(mDT.toJSON())
console.dir(mDT.toISOString())

returns:
{ years: 2017,
  months: 3,
  date: 13,
  hours: 11,
  minutes: 1,
  seconds: 24,
  milliseconds: 820 }
'2017-04-13T10:01:24.820Z'
'2017-04-13T10:01:24.820Z'

which is wrong because the "months" entry should be 4 right now and not 3.
In other words all the outputs are 1-based except for "months" which is 0-based.
Version installed<EMAIL_ADDRESS>Platforms: Linux and Windows
Also note that the toJSON() output also seems wrong or at least it doesn't match the documentation which suggests it should return:
{ postDate: '2017-04-13T10:01:24.820Z' }

Months are intentionally 0-indexed to be consistent with the native JS Date object.  http://momentjs.com/docs/#/get-set/month/
The toJSON example with postDate in the docs is explicitly adding that postDate wrapper, because it is intended to show how a moment instance will be serialized by JSON.stringify when the moment is a property of a larger object.  If this could be clearer, feel free to submit a documentation update PR.
Feel free to tag me on a reply if you still have concerns.

@butterflyhug I mentioned this in another thread, but I wasn't sure where it would actually get traction. Is there any possible way of convincing the moment team to make month 1 indexed? I understand that it's 0-indexed in the native JS Date object, but I think everyone who has ever used Date objects would agree that that was a design flaw. There's no reason moment can smooth that over and make dates more predictable/logically. Part of the reason people use moment is so they don't have to use Date objects. No one ever in the history of humanity has wanted a 0-indexed month. It just doesn't make sense. (Meaning literally every person calling momentInstance.month() is immediately adding 1 to the returned result.)

I can't believe its going to be 2023 and month is still zero based. We use moment because its a utility to fix things like this.


Personal Notes field limited to 200 characters?

I'd like to use the Personal Notes field to put my own brief review of books I have read, but it seems to be limited to 200 characters, which isn't enough. It would be great if this could be increased, say to a couple of thousand. Many thanks.

you're right, the maxLength is wrong in one place.
It's 5000 chars everywhere except in the edit book form.

This should be fixed in v0.49.1

9514973bc8aa24ddec929811e9e4fc53c6f2d5b2

Merci beaucoup for the fast response and a great app.


The subscrible fails after running some minutes.

In your commit, I find you have write something as fix the read error. And I updated my AMQPCPP and build a new library, but the example "receive_logs" failed soon in some minutes.
The test file is "AMQP-CPP/examples/rabbitmq_tutorials/receive_logs.cpp"
The error message is:
Error reading:system:104
Can someone have a try, and give some help?

The jave library for rabbitmq works fine, so it is not my rabbitmq server's problem.
The receive_logs program just runs about 5 minutes, then the program will exit. Both the windows and linux runs for the same result.
The code of the program is:
#include
#include <boost/date_time/posix_time/posix_time.hpp>
#include "asiohandler.h"
int main(void)
{
boost::asio::io_service ioService;
AsioHandler handler(ioService);
handler.connect("localhost", 5672);
AMQP::Connection connection(&handler, AMQP::Login("guest", "guest"), "/");

AMQP::Channel channel(&connection);
auto receiveMessageCallback = [](const AMQP::Message &message,
        uint64_t deliveryTag,
        bool redelivered)
{

    std::cout <<" [x] "<<message.message() << std::endl;
};

AMQP::QueueCallback callback =
        [&](const std::string &name, int msgcount, int consumercount)
        {
            channel.bindQueue("logs", name,"");
            channel.consume(name, AMQP::noack).onReceived(receiveMessageCallback);
        };

AMQP::SuccessCallback success = [&]()
        {
            channel.declareQueue(AMQP::exclusive).onSuccess(callback);
        };

channel.declareExchange("logs", AMQP::fanout).onSuccess(success);

std::cout << " [*] Waiting for messages. To exit press CTRL-C\n";

ioService.run();
return 0;

}
If I have to change something in the code?

I changed the event lib as libevent, but still the same problem, the subscrible program runs about 4 minutes and then exit.
Can you give me some suggestions?

Implement the ConnectionHandler interface, especially the onError() method, and pass that object to the Connection constructor. It allows you to check whether an error occurs on the connection.
Also make sure that the SIGPIPE event is blocked. You can do this by calling signal(SIGPIPE, SIG_IGN) right after the program starts.

I am using the LibEventHandler, and I used the SIGPIPE, but the issue still exist, I paste my code as bellow you can have a look.
int subScrible()
{
	host = "<IP_ADDRESS>";
	port = 5672;
	user = "epri";
	password = "123456";
	timeout = 3;
	channelName = "testChannel";

            event_base *base = event_base_new();
	AMQP::LibEventHandler handler(base);
	AMQP::TcpConnection connection(&handler, AMQP::Address(host,port,AMQP::Login(user, password), "/"));
	AMQP::TcpChannel channel(&connection);
	//channel.
    auto receiveMessageCallback = [](const AMQP::Message &message,
            uint64_t deliveryTag,
            bool redelivered)
    {

        std::cout <<"Receive: [x] "<<message.message() << std::endl;
    };

	AMQP::ErrorCallback error = [&](const char * msg)
	{
		cout << msg << endl;
	};

    AMQP::QueueCallback callback =
            [&](const std::string &name, int msgcount, int consumercount)
            {
                channel.bindQueue(channelName, name,"");
                channel.consume(name, AMQP::noack).onReceived(receiveMessageCallback).onError(error);
            };

    AMQP::SuccessCallback success = [&]()
            {
                channel.declareQueue(AMQP::exclusive).onSuccess(callback);
            };

    channel.declareExchange(channelName, AMQP::fanout).onSuccess(success);

    std::cout << " [*] Waiting for messages. To exit press CTRL-C\n";

    event_base_dispatch(base);
    return 0;
}

int main(int argc, const char* argv[])
{
signal(SIGPIPE,SIG_IGN);
int ret = cls.subScrible();
}

Hey, man
do you have any ideas? What I am using is the TcpHandler, do you have any other suggestions?
Or can you have a try on the example code I paste upside?

No, I can't.

I got to know that the TcpConnection is write by yourself, can you give me some examples which can be run based on it?
I really can't find out why the subscriber program terminates, I have tried a lot, really don't know why, thanks a lot if you can provided me some examples.


Allow aborting requests

For some commands, it would be useful to be able to abort them before they complete. I'm specifically thinking of wait, but I'm sure there's others too. There's been previous requests for this with image building, e.g. #506, #269
I think it should be easy to do so by accepting a { signal: AbortSignal } option (like most promisified web APIs & modern Node.js APIs do) and passing that through directly to the HTTP requests, to become the signal option for http.request.
With that, everything should Just Work to allow API aborting easily everywhere. The end user code would look something like:
const Docker = require('dockerode');
const docker = new Docker();

const abortController = new AbortController();
docker.getContainer('abc').wait({ signal: abortController.signal })

// Later:
abortController.abort(); // Ends the pending request

AbortController is supported in all v15 & v16 node versions, and in v14 behind a flag, and it's the standard way to abort all promisified APIs. Although that doesn't go back to node v8 (as Dockerode appears to support) there's no compatibility risk, since we wouldn't actually need to reference it here ourselves. We just need to pass through the signal property to the HTTP APIs. Any user using v15/v16 version, or using v14 with either the flag enabled or their own polyfill would be able to use it immediately. Anybody on older unsupported versions wouldn't have a problem, they just can't use it without a modern Node version.
Would you be open to that?

Sure, I think it's a good improvement. Without breaking changes is even better :)

Ok, great. I'll look into this and open a PR soon.

Hi @apocas, if you get a minute, is it possible to release the docker-modem change above that was merged & review the dockerode PR here (#630)? I'd love to be able to start using this! Let me know if there's anything at all that I can do to help.


Remove ExecutionPayloadHeader

The complexity around ExecutionPayloadHeader feels unnecessary given that the BeaconState can easily store ExecutionPayload.transactions (the storage overhead is small/tiny). Note that even when the transactions are accompanied by witnesses in the context of statelessness the overhead remains small. More speculatively, it may be valuable down the road for the beacon state to readily have access to the latest transactions.
Heads up: I have a bunch of other cleanups and polishing to this merge doc but want to get this fairly substantive change out first.

Do we have an estimation on the max size of transactions depending on the gas limit after statelessness got released? 10MB or 100MB for 25M gas limit?

Non-zero calldata is 16 gas per byte so the worst-case block size pre-statelessness is (25M gas)/(16 gas/byte) = 1.5MB. My rough conservative heuristic is ~10x overhead for naive Merkle witnesses. The fancier algebraic non-Merkle stateless solutions have way less than 10x overhead thanks to batching. Also the way one maxes out the witness size for a given block is by accessing state, not using call data. So all in all I expect the worst case total size would be lower than 10MB for 25M gas. cc @dankrad

The main problem I see with this, especially in the context of statelessness (larger blocks), is that this state object changes every slot.
Many client implementations store many states (e.g. 1 epoch worth) in memory and rely heavily on diffs/deduplication due to most of the state (the validator set) remaining almost entirely stable diff to diff.
The fact that this block changes every slot then puts much higher diff each state. And in the event that this is 5 to 10MB during stateless, then you have hundreds of more MB to store in memory if you store an epoch or more of state diffs in memory.

In terms of numbers: One 32-byte state access costs ca. 200 bytes using verkle tries, so if we increase costs to roughly 800 gas per access that's around 5 gas/byte or a max of 5 MB at 25M gas.
I find it very strange to put a payload into the state and would be against it. Danny has added good arguments why it might be inefficient.


refactored examples

Great job! Let's just fix the example types and open 🍾  since this PR would bring us close to 100%!

Yay! We're good to go!


Mapping windows key

How to set switch between apps shortcut to windows+tab instead of alt+tab

[switch-apps]

# Whether to enable switching apps
enable = yes

# Hotkey to switch apps
hotkey = win+tab


[SPARK-38938][K8S][2.4] Move to supported OpenJDK docker image for Ku…

What changes were proposed in this pull request?
Change entrypoint.sh script for the kubernetes manager image to reference /usr/sbin/tini
Why are the changes needed?
This makes running commands like /bin/bash via pass-through work.
This was missing from #26046
Does this PR introduce any user-facing change?
It makes pass-through work.
How was this patch tested?
I built an image and verified that the following worked:
docker run -it --rm  image:version   /bin/bash

Can one of the admins verify this patch?

Can one of the admins verify this patch?

cc @dongjoon-hyun

@jkleckner The JIRA number in the title seems wrong, can you fix it? Please also modify the title to make it not truncated.

Test build #112856 has started for PR 26296 at commit 17f80a5.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/17786/

Test build #112856 has finished for PR 26296 at commit 17f80a5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/112856/
Test PASSed.

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/17786/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/17786/
Test PASSed.

Thank you for the followup, @jkleckner and @viirya .

Thank you for the followup, @jkleckner and @viirya .


required constraint is not implemented

Looks like this constraint wasn't implemented.
(this is just from looking at the code, so I might have missed it..)

@akariv could you please provide an use case example?

The simplest use case would be this simple CSV file:
numeric_field

(notice the empty line).
numeric_field is not required, and of datatype number. This should evaluate correctly, emitting one row with numeric_field=None

@pwalsh
Could you check am I getting this right?
type = ConcreteJTSType(field)
type.cast(any-of-null-values-like-'')
if required:
  raise ConstraintError
else:
  return None

For example this test - https://github.com/frictionlessdata/jsontableschema-py/blob/master/tests/test_types.py#L636-L641 - not following this.

@roll what you describe is correct: if not required, then field can be any null value.

And any null value is casting to None?
Just to be sure because some tests have written otherwise (like '' should be converted to ''). I'll fix the tests and raise a PR so you both could check.

@roll i think so, yes. A few of us have touched this code now, but that is, I believe, the intention. I'd say a PR would be great so we can investigate.

FIXED


Made for loops more consistent

Some for loops were storing the obj.length in a variable, some weren't. I converted them to all cache the length.

i up vote on this if the line 678 does have the var ii declared first it won't break the build ;)


SDK UX issues and problems with packages

My further recommendation for all apis will be to:

Drop apiv1 etc. We do not actually have the means to keep API's versions like Kubernetes does and it is confusing for people
Use the same package name as a folder - currently we are importing apiv1 but the package name is different which is confusing

Double imports (generated code and wrapper can be fixed by having both in the same package.
We will only need to add ignorefile for the generator in that instance.
Related issues:
#125

Drop apiv1 etc. We do not actually have the means to keep API's versions like Kubernetes does and it is confusing for people

In what way do you mean we do not have the means? As in we will not maintain multiple concurrent API versions? We would! What do you suggest we do once apiv2 is introduced?

Use the same package name as a folder - currently we are importing apiv1 but the package name is different which is confusing

It is not. It is quite common:
https://github.com/googleapis/google-cloud-go/blob/master/servicemanagement/apiv1/service_manager_client.go#L17

We will only need to add ignorefile for the generator in that instance.

What would we ignore?

What do you suggest we do once apiv2 is introduced?

Every breaking change will need new version and previous versions will simply stop working.

What would we ignore?

Our own written code/wrapper in the same package

Google SDK maps more kubernetes but our backend doesnt work this way. In kube you would have openapi per version and no breaking changes in version.
Sadly this not reflecting how our services work

Every breaking change will need new version and previous versions will simply stop working.

That is not necessarily true - you can have different customers on different major versions! You can't expect a customer to be able to immediately upgrade their version - they may have a grace/deprecation period of a year to move over. In the meantime you would have new customers who go straight to v2.

Our own written code/wrapper in the same package

I still don't understand. Why would we ignore our custom wrapper? Can you be more explicit to help me understand.

Google SDK maps more kubernetes but our backend doesnt work this way. In kube you would have openapi per version and no breaking changes in version.

Hmm. This has little to do with k8s API versioning. This is mapping to semantic versioning.

That is not necessarily true - you can have different customers on different major versions

Hi
I think this ending up as some heated discussion.
Lets close this issue - want to avoid discussions with exclamation marks
We both have good understanding of problem but talking about different things.
What kubernetes does is openapi snapshotting with each version being immutable,  our backend uses single openapi file with versioning that is allowed to change.
What our backend folks will do is to have new endpointns with duplication (v2 or something) in the same openapi.
As outsider/sdk user I was amazed that we adapted snapshotting but then I got breaking change on the same version and decided to create this issue.

Thank you for the background context as to the reasoning for this - it helps make things more clear.

but then I got breaking change on the same version and decided to create this issue

Was there a v2 bump in one of the APIs?

Was there a v2 bump in one of the APIs?

You mean openapi file version?

Was there a v2 bump in one of the APIs?

You mean openapi file version?

Yes kind of. I mean was there a bump to one of the API paths in one of the OpenAPI files?

No. No bump on version. Ideally linter will fix that problem in long run with rule:

If there was the change version of the file should be changed.

No for both actually. No bump on version.

yeah so even though these APIs are using v1 they are more realistically in v1beta:
https://github.com/redhat-developer/app-services-sdk-go#supported-apis
Ideally APIs deployed should be /api/v1beta when still in beta but they were already deployed like this.


[BUG] - teleport-to-player

Describe the bug
not sure if it is a bug or a feature :-D
Using the teleport-to-player command will teleport you to the location where the target player joined the game - not to his actual position.
To Reproduce
Steps to reproduce the behavior:

just port to a player who moved from his join location

Expected behavior
not sure if it is intended, but if so the command should be like teleport-to-last-player-login-location or so

we are aware of this problem and problably will remove that function for now untill cftools gives us the prober api content
cause cftools does not update the the api to the latest player cords

Exactly, Tobias was kind enough to make a feature suggestion to CFTools which you can track here: https://canary.discord.com/channels/373098389174484992/776006893956628491/1115381615212888064
Please upvote this feature suggestions, if we can 25+ upvotes it will be hard for them to ignore the feature requests. It's a major feature for a bot like this.

This has been addressed by CFTools: https://canary.discord.com/channels/373098389174484992/865686257111924777/1131290482501226526


[BUG]: Refined fields type is applied to all other fields

Report hasn't been filed before.

[X] I have verified that the bug I'm about to report hasn't been filed before.

What version of drizzle-orm are you using?
0.38.2
What version of drizzle-kit are you using?
0.30.1
Other packages
<EMAIL_ADDRESS>Describe the Bug
Test schema to reproduce the bug:
export const testTable = pgTable(
  'test-table',
  {
    id: uuid('id').primaryKey().defaultRandom().notNull(),
    anotherId: uuid('workflow_id').notNull(),
    version: integer('version').notNull(),
    settings: jsonb('layout').$type<{ [key: string]: any }>(),
    values: text('values').array().default(sql`'{}'::text[]`),
  }
)

const insertTestSchema = createInsertSchema(testTable, {
  settings: z.record(z.string(), z.any()),
  values: z.array(z.string()),
})
export type NewTest = z.infer<typeof insertTestSchema>

const test: NewTest = {
  id: 'test-id', // Type string is not assignable to type string[] | Record<string, any>
  version: 1, // Type string is not assignable to type string[] | Record<string, any>
  anotherId: 'test-id', // Type string is not assignable to type string[] | Record<string, any>
  settings: {},
  values: [],
}

What seems to happen is that because there are two refined fields, settings of type Record<string, any> and values of type string[], then all other non-refined fields are now considered of type string[] | Record<string, any> as well and having a type error.

What I would expect is for settings to evaluate to the refined types Record<string, any> and values to string[], whereas all other fields should evaluate to the type originally defined in the table.
If I remove the refined fields, there are no errors.
If I use<EMAIL_ADDRESS>there are no errors.

Closing in favor of #3735


Crash in JSON files

Reported here by Mulv

:tada: This issue has been resolved in version 3.1.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Preserve changes made manually to the MP query map

yesterday we needed to manually edit an existing query in MP's persisted query map. Unfortunately after deploying emission it overwrote that manual change because that's how emission updates the MP query map during it's deploy job on CI.
here we change the logic so that it preserves the MP version as the source of truth.
see artsy/metaphysics#2160 #2075 and https://artsy.slack.com/archives/CN8S32FJR/p1581001886215700 for context

Travis is 🍏 but hasn't reported back yet. Merging.

:rocket: PR was released in v1.21.38 :rocket:


Keyboard Manager Doesn't Remap key F23 to Ctrl key, instead Remaps it to Ctrl+Shft

Microsoft PowerToys version
0.81.1
Installation method
GitHub
Running as admin
Yes
Area(s) with issue?
Keyboard Manager
Steps to reproduce
Using GitHub PowerToys Keyboard Manager, on a Lenovo ideapad slim 51 i7, w/Windows 11.  I want to us the F23 key as a Ctrl key on the right side of keyboard, especially to combine with arrows and F, C, V, B, I, U keys, and others.
I tried to remap the key F23 as a "Ctrl" key.  (see screenshots #063433) The F23 key was initially factory assigned as the Microsoft Copilot default shortcut, with a Copilot logo on the key. Another default shortcut to the Copilot app is "Windows key + C".

I ALSO tried to remap as a shortcut, but (see screenshots #063037 & #063414) an error says "Shortcut must start with a modifier key" when I select the F23 key from the drop down menu.  When I press either pencil button then the F23 key, the fields receive "Ctrl" + "Shift" + "F23", when I'd expect them to receive just the "F23" button that I actually pressed.

✔ Expected Behavior
When I remap "F23" to "Ctrl", I expect F23 to become the "Ctrl" modifier key, to combine with other keys to perform specific functions (i.e. by typing F23 + up arrow, the cursor should skip to the next word [or cells containing a value in excel or open office Calc], or F23 + C would copy highlighted text to past later typing F23 + V ).
❌ Actual Behavior
F23 behaves as if I'd remapped it with Ctrl + Shift combination of keys. (i.e. by typing F23 + up arrow, the cursor highlights all letters [or cells in excel or open office Calc] upward through the next word.  That is the default behavior for pressing Ctrl + Shift + up arrow.  "Shift" key or "CapsLk" were not pressed or activated during these
Other Software
I'm using Windows 11 for 64-bit.  Trying if with Mecrosoft Edge, Open Office Calc, Apache Firefox browser windows.  The above issue is consistent with all those software.

I just found a solution after reading the helpful suggestions in a very similar issue#31979.  My new 'Ctrl' key became effective when I deleted a PowerToys Keyboard Manager 'Remap a key' command which may have been interfering and left the 'Remap a shortcut' command as pictured below.
https://github.com/microsoft/PowerToys/issues/31979https://github.com/microsoft/PowerToys/issues/31979


Bound args transform

This PR aims to make it easier to supply configuration defaults from a configuration file by introducing a new cyclopts.App parameter called bound_args_transform.
bound_args_transform is a callable (or list of callables) that has signature:
 def bound_args_transform(commands: Tuple[str, ...], bound: inspect.BoundArguments) -> Any:
     ...

The supplied functions should add/modify the provided bound object based on some external configuration. The commands parameter are the string CLI commands/subcommands that lead up to the function-to-be-executed. For example,
# assuming "cmd" and "subcmd" are cyclopts commands.
$python my-script.py cmd subcmd --foo=bar

would result in commands == ("cmd", "subcmd")
Cyclopts has a few builtin transform classes for common situations for yaml, toml, and json. Example usage:
from cyclopts import App, bound_args_transforms

app = App(
    bound_args_transform=bound_args_transforms.Toml("pyproject.toml", root_keys=["tool", "mytoolname"])
)

Extending the above example, this would:

Search for pyproject.toml in the current directory. If it's not found, do not modify the bound object at all.
If it does exist, look inside for the table [tool.mytoolname.cmd.subcmd] and supply the key/value pairs for unset parameters.

Other nice parameters of the builtin transforms:

must_exist=False: whether or not the configuration file must exist.
search_parents=False: iteratively search parenting directories until a config file is found.

Resolves #87. @BrendanJM what do you think about the concepts outlined in this post? This branch is not in a functional state yet (and the implementation is not yet ready to be reviewed), but I was wondering if I could get your high level feedback?

Codecov Report
Attention: Patch coverage is 55.42169% with 37 lines in your changes are missing coverage. Please review.

Project coverage is 93.98%. Comparing base (5360e9e) to head (677e8d0).

Files
Patch %
Lines

cyclopts/bound_args_transforms/_common.py
47.61%
22 Missing :warning:

cyclopts/core.py
44.44%
3 Missing and 2 partials :warning:

cyclopts/bound_args_transforms/_toml.py
55.55%
4 Missing :warning:

cyclopts/bound_args_transforms/_json.py
62.50%
3 Missing :warning:

cyclopts/bound_args_transforms/_yaml.py
62.50%
3 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #165      +/-   ##
==========================================
- Coverage   96.25%   93.98%   -2.27%
==========================================
  Files          16       21       +5
  Lines        1815     1895      +80
  Branches      457      474      +17
==========================================
+ Hits         1747     1781      +34
- Misses         31       71      +40
- Partials       37       43       +6

Flag
Coverage Δ

unittests
93.98% <55.42%> (-2.05%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Hi Brian - this looks great! Looking through this, a few thoughts:

I like that various config formats could be used. Though focusing on only e.g. pyproject.toml seems like it could also be valid and idiomatic.
When searching for e.g. pyproject.toml in the current directory, is that relative to where the command is run? I imagine looking for this in the repo root by default would potentially be desirable (and maybe obviate the need to search parents). Is there conventional process for locating this (e.g. what setuptools uses, etc)?
[nit] The interface looks good, but to a new/basic user, bound_args_transform may benefit from a more descriptive/simplified name. But this also isn't a big deal given decent documentation and examples.

Thanks for looking!

Though focusing on only e.g. pyproject.toml seems like it could also be valid and idiomatic.

I kinda agree, however there are many ways to interpret pyproject.toml that may be project-specific. The default implementation included in Cyclopts is probably generically useful, but people may want to tweak it for their project. The natural conclusion is this function-callable interface where the user can parse things however they would like.

When searching for e.g. pyproject.toml in the current directory, is that relative to where the command is run?

Yes. But again, this is project specific. For example, if we write a CLI tool that lints a repo based  on it's pyproject.toml, we would want:
app = App(
    bound_args_transform=bound_args_transforms.Toml("pyproject.toml", root_keys=["tool", "mytoolname"], search_parents=True)
)

However, some other tools may want to look in some home config directory:
app = App(
    bound_args_transform=bound_args_transforms.Toml("~/.config/mytoolname/config.toml")
)

In either case, it's pretty explicit about where the configuration will be coming from.

bound_args_transform may benefit from a more descriptive/simplified name.

I 100% agree, but I couldn't think of a better name. Totally open to suggestions! A odd nuance/coincidence is that this hook is VERY similar to App.converter, just with a slightly different interface. It might be worth combining them in a non-backwards compatible way.

After a little more time, i have the following thoughts:

This should NOT be merged with App.converter, since App.converter is NOT inherited from the parenting app. This new feature should be inherited all the way through.
I think we should give this the much simpler parameter name config, since that's the primary use-case. It'll also be much easier for people to find the feature.

Agree - I think the simple config is a great name here, and would be a lot more clear in terms of intent.


Add file to hold nodes on iptables-legacy

Add /etc/fedora-coreos/iptables-legacy.stamp to declare that iptables-legacy should be used instead of iptables-nft (until support is added in future releases)
https://github.com/coreos/fedora-coreos-tracker/issues/676

Merged as 443bd5a26b56e4a92ed25c798ca2b854752a2844


Explain read-only notebook view

This was split off from #748
When viewing a notebook in read-only mode, we'd like to inform the user about what that means, and offer them the ability to clone the notebook to another workspace (so they can modify it there).
This might require some reorganizing of the page layout to support this.

Our design bandwidth is severely constrained. Can we just put some text up in the top-of-page banner (perhaps adjacent to the notebook runtime)?
"Viewing in read-only mode. To edit this notebook, copy it to another workspace", where copy is a link that brings up the copy-to-another-workspace modal used elsewhere?
@zarsky-broad is this something you can hack? Can we just work off a napkin sketch here?

I'm ok with that


Fixes issue of odo login not working correctly

This fixes the issue of odo login not working correctly.
In this PR:

Added logging for before AND after
Changed stdout / stderror to the correct ones from odolog package
Fix up success output
Added Success function to odolog

Closes issue https://github.com/openshift/odo/issues/1643
Closes issue https://github.com/openshift/odo/issues/1664

What the changes look like:

not buildable
pkg/auth/login.go:5:2: imported and not used: "fmt"

after a failure the color still stay's yellow

@cdrage
CDKQE@DESKTOP-N3T8HBG MINGW64 ~/go/src/github.com/openshift/odo (pull_1652)
$ ./odo.exe login -u kubeadmin -p password https://console-openshift-console.apps.amit33.devcluster.openshift.com
Connecting to the OpenShift cluster

The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

 X  invalid character '<' looking for beginning of value

@amitkrout I get the same error with oc, looks like an issue with your cluster?
github.com/openshift/odo  add-show-log-to-watch ✔                                                                                10m  ⍉
▶ oc login -u kubeadmin -p password https://console-openshift-console.apps.amit33.devcluster.openshift.com
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

error: invalid character '<' looking for beginning of value

Can you please do another review / LGTM? :)

@amitkrout I get the same error with oc, looks like an issue with your cluster?
github.com/openshift/odo  add-show-log-to-watch ✔                                                                                10m  ⍉
▶ oc login -u kubeadmin -p password https://console-openshift-console.apps.amit33.devcluster.openshift.com
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

error: invalid character '<' looking for beginning of value

Can you please do another review / LGTM? :)

I have seen such error message X  invalid character '<' looking for beginning of value. In my case what I observed that it happens only if the client version is not compatible with the running cluster
For example :
My cluster version is 4.1 running on aws
And I am trying to login the cluster with 3.11 client version
@kadel can you please check it against your cluster.

@cdrage Even i am seeing the same error while using latest 4.1 oc client for windows [1]. Seems its an issue on 4.1.
[1] https://mirror.openshift.com/pub/openshift-v3/clients/4.1.0-201904090034.git.0.1016bda.el7/windows/

@amitkrout @girishramnani Yup, looks like an error outside-of-Odo.
Mind doing a quick review of this PR?

@amitkrout @girishramnani Yup, looks like an error outside-of-Odo.
Mind doing a quick review of this PR?

@cdrage When i check odo login without this fix it works fine on minishift 1.33.0 (oc 3.11.0). The only issue i found is odo login is broken if trying to login 4.1 cluster.
This pr fix the login issue on 4.1, however odo logout is broken even on master too.
C:\Users\user\minishift-1.33.0-windows-amd64>odo.exe login
Connecting to the OpenShift cluster

Authentication required for https://<IP_ADDRESS>:8443 (openshift)
Username: developer
Password:
Login successful.

You have one project on this server: "myproject"

Using project "myproject".

 V  Login succeeded

C:\Users\user\Downloads\minishift-1.33.0-windows-amd64>odo.exe logout
 X  the current directory does not represent an odo component.
Maybe use 'odo create' to create component here or switch to directory with a component

@amitkrout Okay, I'll fix this in a separate PR. This PR will only fix odo login. I'll add the fix for odo logout in a separate PR.

/retest

/retest
error: You must be logged in to the server (the server has asked for the client to provide credentials)

Fixed another error pertaining to this issue here: https://github.com/openshift/odo/issues/1664
Ready for another review @surajnarwade @kadel @girishramnani @amitkrout

It looks like something is broken in odo login
  /home/travis/gopath/src/github.com/openshift/odo/tests/e2e/login_test.go:37
Running command: odo login -t
Error: flag needs an argument: 't' in -t

This fixes both login issues, which is great.
Problem is that it reverts back to the original messages from the oc :-(
▶ odo login
Connecting to the OpenShift cluster

Server [https://localhost:8443]: https://api.tkral.devcluster.openshift.com:6443
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

Authentication required for https://api.tkral.devcluster.openshift.com:6443 (openshift)
Username: developer
Password:
Login successful.

You don't have any projects. You can try to create a new project, by running

    odo new-project <projectname>

 ✓  Login succeeded

▶ odo login https://mycluster:6443
Connecting to the OpenShift cluster

The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

Authentication required for https://mycluster:6443 (openshift)
Username: kubeadmin
Password:
Login successful.

You have access to the following projects and can switch between them with 'odo project <projectname>':

  * default
    kube-public
    kube-system
    myproject

Using project "default".

 ✓  Login succeeded

odo project <projectname> and odo new-project <projectname> are not valid odo commands. It sahould say odo project set <projectname> and odo project create <projectname>

This fixes both login issues, which is great.
Problem is that it reverts back to the original messages from the oc :-(
▶ odo login
Connecting to the OpenShift cluster

Server [https://localhost:8443]: https://api.tkral.devcluster.openshift.com:6443
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

Authentication required for https://api.tkral.devcluster.openshift.com:6443 (openshift)
Username: developer
Password:
Login successful.

You don't have any projects. You can try to create a new project, by running

    odo new-project <projectname>

 ✓  Login succeeded

▶ odo login https://mycluster:6443
Connecting to the OpenShift cluster

The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

Authentication required for https://mycluster:6443 (openshift)
Username: kubeadmin
Password:
Login successful.

You have access to the following projects and can switch between them with 'odo project <projectname>':

  * default
    kube-public
    kube-system
    myproject

Using project "default".

 ✓  Login succeeded

odo project <projectname> and odo new-project <projectname> are not valid odo commands. It sahould say odo project set <projectname> and odo project create <projectname>

I'm going to manipulate stdout / stderr in order to achieve a better form of filtering for this (and the future). Thanks for pointing this out!

Up for another review @girishramnani @kadel @surajnarwade @mik-dass @amitkrout

If I press crtl+c in between the inputs, the colour of the terminal stays yellow

@mik-dass Thanks!
I've gone ahead and removed the coloured output. It was causing too many problems.

\lgtm

/lgtm

There is still one more thing to modify in the output.
You have access to the following projects and can switch between them with 'odo project <project-name>'
should be odo project set <project-name>

There is still one more thing to modify in the output.
You have access to the following projects and can switch between them with 'odo project <project-name>'
should be odo project set <project-name>

ping @cdrage

@kadel Done!

/approve

Going to re-base this against master as updated tests have been merged :+1:

Rebased ^^. Time for another review :+1:


Injector: dot syntax failover should only occur on services that have it enabled.

The Injector has a feature where if a service name has a name of the form A.B, and A.B isn't defined as a service, but A is, then A will be used.
This was included to allow for specialised and generic services.
An example use-case for this feature is as follows: let's say the ORM is configured to send all read queries to the Database.read service, and all write queries to the Database.write service.
In your config yaml you would then have a few choices:

define a single Database service for all operations
define separate Database.read and Database.write services to set up different behaviour for each of these
define only a Database.read service to allow for read-only operation.

Another potential use case is logging. You could configure logging to log to the Logger.<log-type> service. A general log-handler could be loaded into the Logger service, and log-type-specific log handlers included in the service definition as needed.
It's not a bad feature, but it is only useful when code has been written to support it (i.e. that your code is looking for Database.read|write and not simply Database) and if you're not expecting the feature it might just cause strange bugs.
As such, it would be better if this feature was only available on services specifically designed to support it.

Great idea but it's a super old issue that we're not going to do anything with any time soon. Closing. If someone is keen for this and wants to put in the work to implement it, @ me and we can revisit.