Zip files seem to get corrupted / broken in v0.2.3

If I pull a zip file down using v0.2.3 I can successfully download it
ssdownloader v0.2.3-8cae41f-darwin-amd64

...
2022/06/24 16:22:24 downloading access logs.zip
2022/06/24 16:22:37 file '/Users/mc/Issues/tickets/<hidden>/<hidden>/access logs.zip is complete

However when unzipping we always seem to get a problem
% file access\ logs.zip
access logs.zip: Zip archive data, at least v1.0 to extract

% unzip -t access\ logs.zip
Archive:  access logs.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of access logs.zip or
        access logs.zip.zip, and cannot find access logs.zip.ZIP, period.

Downloding directly from sendsafely works ok
Interestingly in both cases the file sizes are identical but the md5sum isnt
% md5 access\ logs.zip
MD5 (access logs.zip) = 93d1cf5ba38ac6eccf6c411fc940be34

 % ls -l
total 114312
-rw-r--r--  1 mc  staff  58526536 24 Jun 16:22 access logs.zip

% md5 access\ logs.zip
MD5 (access logs.zip) = fd2e6cd1094b4df2b32fb38f9969408a

% ls -l access\ logs.zip
-rw-r--r--@ 1 mc  staff  58526536 24 Jun 16:24 access logs.zip

I will look at the particular file but I am able to download and extract zip files on other tickets

ok I looked at it, particularly interesting , the file extracts fine, but the files IN the zip are corrupted (and not all of them are copied)
I think this is more likely a missing flush, will write some tests around that


Add OSBuildConfigTemplate CRD

@jakub-dzon in last week's call we decided to enforce that the branch will be updated with the base branch. So, you'll need to rebase before merging

@ygalblum done.


editGroupName works when editing group name to itself

The User Guide states that the old group name must exist, and the new group name must not already be in use. Else, the command fails.
However, when changing the group name to itself, e.g. editGroupName g/NUS g/NUS assuming a group called NUS exists, the command does not fail.

Fixed by commit 9e0c1d4


docs: update third party notices

:white_check_mark: Build TheIdServer 7.4.7-feat-better-pwd-hashing1-0066 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/f49b6cb44f by @invalid-email-address)


Simplify Middleware pipeline registration

Adding registration helpers and potentially changing to make registration an interface rather than a delegate.

That'd be a good change, 👍

Fixed #231


Great theme, thank you for it!

Just wanted to drop a little thank you for this theme.
It kinda made me switch from Cursor/VSCode back to Zed again.

@ivryb  Thanks a lot, really appreciate it!


Enhance on-boarding documentation & workflow for new users

What problem or use case are you trying to solve?
The current on-boarding process is split across multiple documentation sections and many of the default steps or instructions lead to unstable states. This is to be expected as a project grows and many new features are added but it would be helpful to re-assess this and try to streamline the process for new users to get started. This can be difficult for the maintainers to do as they have a lot of implicit knowledge that new users don't have and their dev environments may contain undocumented state that makes it hard for them to replicate the issues faced by new users. It also leads to unnecessary support workload for the maintainers as people try to get setup.
As someone with Python dev experience but unfamiliar with the project I'd like to volunteer to draft some enhanced documentation based on my own experience on getting started and
Describe the UX of the solution you'd like
There should be a clear Getting Started path that leads to a stable deployment and helps the user make key decisions based on the use case they have. There should also be clear migration or switching paths to change between different deployment methods without resulting in bad states. This is especially true of Development.md because many non-dev users may find themselves trying to implement this to access something like CLI mode.
Do you have thoughts on the technical implementation?
Some examples of things that I have come across in my own efforts to get things running the way I want:

Development.md requirements setup is quite sparse and leads to errors (see #5793 as an example). It requires python3.12-dev not just python3.12 and both Poetry (via pipx) and NPM (via nvm) have some very specific installation requirements that are not covered.
The Persistent state setup in Development Mode is described as an optional extra however in my case it is required to maintain a stable environment (see #5574 for an example).
Many key configurations (such as a JWT secret) are limited to config.toml which can't be accessed when deploying via the docker image. There seems to be some undocumented environment variables that can be used for this (see the French and Chinese versions of troubleshooting.md on the 0.16.1 tag). It would be good to document any such environment variables that can be used to manipulate the docker deployment to achieve a similar running state as when using config.toml and Development mode.
Development mode is used for much more then development and may be required by non-dev users to access CLI mode. It may be good to separate the instructions for running OpenHands in "local mode" (to access CLI mode for example) from the instructions for setting up a development environment in order to develop the Openhands project.
Mounting a local storage path for the docker image local storage isn't really documented and changes from /.openhands in 0.16.1 to /.openhands-state in 0.17. There are some references to mounting these paths with docker run -v but they aren't explained and are poorly documented as to why you would do this. It also assumes the local path exists and if it isn't docker just fails to mount it silently without any errors which gives the impression that the volume has been mounted when it hasn't. This wouldn't be obvious to less experienced users.

Describe alternatives you've considered
Additional context
As a research architect for a tech company I have Python development experience as well as experience with LLMs, common tools like langchain, etc and other AI methods and technologies. As a new user to the project I think I have a good perspective on the on-boarding process and can help improve it in a way that might be difficult for the more experienced maintainers who have a lot of implicit knowledge of the project.

You are absolutely correct, and thank you for drafting / re-drafting some of this!
A note on this too:

Many key configurations (such as a JWT secret) are limited to config.toml which can't be accessed when deploying via the docker image. There seems to be some undocumented environment variables that can be used for this (see the French and Chinese versions of troubleshooting.md on the 0.16.1 tag). It would be good to document any such environment variables that can be used to manipulate the docker deployment to achieve a similar running state as when using config.toml and Development mode.

There's an attempt somewhere to document this...
https://docs.all-hands.dev/modules/usage/configuration-options
Hmm, it's a note at the start of each section.
The point here is: almost all settings that are in toml are also exposed as environment variables. So you can achieve almost anything by using only env, if you want. All of them are uppercase as environment vars.
The [core] section options are available as their uppercase variants, e.g. jwt_token as JWT_TOKEN. The options in sub-sections, like in [llm], [security], [sandbox], are available with the section prefix, e.g.
[llm]
model="gpt-4"

as LLM_MODEL.
The reason for "almost" is just that some features are too complex and not just a variable with a defined meaning, and those aren't exposed in env. In particular, it is possible for the user to define sub-sections, and those user-defined sections are not available in the env. But the system vars are.

Re: mounting openhands-state. This is fairly new, as you have noticed, and indeed it was bugged/in flux, just now. As per your older issue, it sounds like you may have run into a bug with it!
I'm not sure why we don't seem to have Development.md on the docs site. We should. I do agree with you that it can be useful actually, and I do remember linking it in topics here quite a number of times because it was needed.

Hey @enyst thanks for confirming the availability of env variables. I think the lack of visibility on this is the main reason many people are trying to deploy using Development.md because they think it's the only way to access certain features (I had this impression at first).
I think the goal should be that anyone who is only using OpenHands should only ever use the Docker deployment mode. Most people need just to set a persistent storage volume and a JWT secret and add an instruction file to their project. Then, some people will want to use a custom LLM provider or a custom sandbox (to install requirements.txt, for example). This is all fine for Web UI but there should also be some way to have Openhands start in CLI mode or headless mode in the docker container, then the user just SSHs into the container to access.
This would mean only people who truly intend to develop the Openhands app need to deploy locally. This would greatly simplify using Openhands and avoid non-dev users trying to do build steps and mess around with Makefiles, etc.
Anyway that's the vision :-)

That may have been the reason why it's not on the docs site, but it seems a bit confusing atm because we do have the Debugging page there, which assumes Development.md. 😅
I think running CLI and/or headless is possible with the docker app. Something like this https://docs.all-hands.dev/modules/usage/how-to/cli-mode#with-docker
Indeed AFAIK there are users who prefer it.
I really appreciate you taking a look at this! I think you're entirely correct that getting to know the project recently gives you a unique perspective we don't have, and won't realize what we don't have. 😅

Cool, happy to help. Let me checkout the env variables and the Docker deployment for CLI and headless and see if I can get all the main use cases running and documented.

@enyst - just setup my fork and looking at the docs. There is some overlap between the official website docs and the documentation files scattered through the code but its not completely 1:1. Is there a structure or method in what is in which place and what is the source of truth if they diverge? Is there a way you keep them in sync? Just trying to understand your practice so I can align with it and put things in the right place.

The docs on the website are deployed from this repo, /docs/modules folder.
Other than that, I don't have good answers, I'm afraid. I'd say the docs on the site are maintained well, compared to other info through the code, it's more likely that some readme is outdated, since it's less visible/used. There can be exceptions. The code itself is the source of truth. 😅 So I guess I'd suggest website first, but please, feel free to choose and ask for any detail you may want?

Hey @autonomousit , thanks so much for this!
IMO, ideally the documentation site should be good enough for OpenHands users to understand how to do everything.
We can have additional documentation within the code for OpenHands developers (those actually modifying the OpenHands code), but I don't think users should ever have to look at the documentation in the codebase.

Thanks @enyst & @neubig - I just setup the docs dev environment using yarn and I get a warning regarding packages-lock.json that this is a non-yarn lock file. It's fine as it just ignores it and creates it's own package lock however I'm wondering if you know the origin of this file. If it's a legacy thing I'll just delete it and replace it with the yarn lock as part of my changes.

Thanks so much for this.
Things I would add:

The basic "Getting Started" guides either in README, Doc website or Development mode should address getting OpenHands run with the absolute minimal and no config changes. Any additional options and configurations should be in a different doc that gets linked from the basic "Getting started" guide. The idea here is that to get it run with the default options should be easy and streamlined and that's how most people will initially run it.
Other than the official README at the base of the project, the others ones aren't kept up to date as code changes. Not yet at least. Things are moving too fast right now.

Thanks for the extra context @mamoodi . I agree regarding sticking to the absolute minimum for Installation and Getting Started but I do think there are some customisations that need to be added here to prevent users getting stuck.

Local Port - I have 3-4 Apps that use port 3000 in their Docker images, although a Docker setting, not an OpenHands setting, changing this should be explained to users.
Local Storage - I am having mixed results with this but setting up local storage seems to be needed under some circumstances. If I'm wrong let me know know but this setting should be included and/or explained.
JWT Secret - this should also be set and explained to avoid incompatible tokens across sessions/deployments when deploying and re-deploying

I've attached a draft for the Installation section (had to convert from .mdx to .md to share here). I have tried to assume very little knowledge from the User for this document and focus on the case where someone is just trying to use OpenHands, not develop it. I only focus on a Docker deployment and Web UI access mode. Other access modes and the developer workflow can be addressed in the dedicated sections.
installation.md
Let me know what you think about the approach and my general style, etc. Feedback on improvements or changes would be very helpful so I get a feeling for how you want this to look and feel. Just an FYI, if I follow these instructions I get the app deployed however it always times out when waiting for the client to start, on both 0.16 and 0.17 so there's still something unstable about this I need to work out.

You are welcome to open a PR, @autonomousit , you don't need us with a different branch for that, a PR to main is most welcome! You can mark as draft in github UI as long as it's in progress, if you want. Am I missing something?

Thanks @enyst just wasn't sure about your preferences regarding PRs to main


ADS1115 - real 16 bit resolution?

On my test module there is the imprint "16 Bit I2C ADC+PGA ADS1115" and the chip on the module has the marking "7A BOGI".
An evaluation of the measurement results in the conversion register shows that the last 3 bits (D0-D2) are always set to 0.
e.g.
With a gain of PGA 16 (±0.256mV) this corresponds to LSB = 7.8125µV.
Test results:
The measuring accuracy is not 7.8125µV, but 125µV. This would be not a resolution of 16 bits. see below my monitoring output.
With the Adafruit lib: Adafruit_ADS1X15 I don't get a better resolution either.
Do you really have a resolution of 16Bit in your test?
My test environment:
HW:
ESP32, ADS1115 with 3,3V and MCP4725 with a specially stabilized voltage supply = 3.298V.
Libs and configuration parameters
I tested with your lib: ADS1115_WE.
My Test environment:
HW:
ESP32, ADS1115 with 3,3V and MCP4725 with a specially stabilized voltage supply = 3.298V.
I create with a MCP4725 e.g. a max. measuring voltage of  256mV, which I can change (reduce) in about 60-55µV steps.
I have connected this measuring voltage with the ADS1115 pin A0 and use the following "configuration parameters":
ADS1115_WE adc(ADS1115_I2C_ADDR);
adc.setConvRate(ADS1115_8_SPS);
adc.setMeasureMode(ADS1115_SINGLE);
adc.setCompareChannels(ADS1115_COMP_0_GND);
  adc.setVoltageRange_mV(ADS1115_RANGE_0256); // 16x gain  +/- 0.256V  LSBt = 0.0078125mV
  delay(100);
  adc.startSingleMeasurement();
  while(adc.isBusy()){;}
  volt = adc.getResult_mV();
  Serial.printf("Channel %u vs GND [V]: %.3fmV\t",Channel , volt);
  rawValue = adc.getRawResult();
  Serial.printf("Wandlungsregister: %u\r\n",rawValue);

For each measurement (output line) the measuring voltage is reduced by approx. 55µV.
Here is an excerpt of the monitor output.
Channel 0 vs GND [V]: 4.625mV	Wandlungsregister: 592
Channel 0 vs GND [V]: 4.625mV	Wandlungsregister: 592
Channel 0 vs GND [V]: 4.625mV	Wandlungsregister: 592
Channel 0 vs GND [V]: 4.500mV	Wandlungsregister: 576
Channel 0 vs GND [V]: 4.500mV	Wandlungsregister: 576
Channel 0 vs GND [V]: 4.500mV	Wandlungsregister: 576
Channel 0 vs GND [V]: 4.375mV	Wandlungsregister: 560
Channel 0 vs GND [V]: 4.375mV	Wandlungsregister: 560
Channel 0 vs GND [V]: 4.250mV	Wandlungsregister: 544
Channel 0 vs GND [V]: 4.250mV	Wandlungsregister: 544
Channel 0 vs GND [V]: 4.125mV	Wandlungsregister: 528
Channel 0 vs GND [V]: 4.125mV	Wandlungsregister: 528
Channel 0 vs GND [V]: 4.125mV	Wandlungsregister: 528
Channel 0 vs GND [V]: 4.000mV	Wandlungsregister: 512
Channel 0 vs GND [V]: 4.000mV	Wandlungsregister: 512
Channel 0 vs GND [V]: 3.875mV	Wandlungsregister: 496
Channel 0 vs GND [V]: 3.875mV	Wandlungsregister: 496
Channel 0 vs GND [V]: 3.750mV	Wandlungsregister: 480
Channel 0 vs GND [V]: 3.750mV	Wandlungsregister: 480
Do you really have a resolution of 16Bit in your test?
VG Klaus

That is weird. To answer your question first: Yes, I can confirm a resolution of 16 Bits (+/-2^15, to be exact.). And I can confirm it also for the +/-256 mV range. Moreover I can confirm the module and the ADS1115 Chip have the same label.
I have used my simple lab power supply device for the voltage to be teested.. I have applied the following parameters:
  adc.setVoltageRange_mV(ADS1115_RANGE_0256);
  adc.setCompareChannels(ADS1115_COMP_0_GND);
  adc.setMeasureMode(ADS1115_CONTINUOUS);

I printed the measured values using:
float voltageInMillivolt = adc.getResult_mV();
  Serial.print("Result in Millivolt          [mV]: ");
  Serial.println(voltageInMillivolt);

  int rawResult = adc.getRawResult();
  Serial.print("Raw Result                       : ");
  Serial.println(rawResult);

  Serial.print("Raw Result, binary:              : ");
  Serial.println(rawResult, BIN);

This shows that the full resolution is used. I repeated it with the single shot mode and like you I used:
  adc.startSingleMeasurement();
  while(adc.isBusy()){}
  voltage = adc.getRawResult();

This time I printed only the binary values:

So I have no idea why it's not working properly on your side.
I have tested another ADS1115 module from different supplier and it also worked.

That is weird. To answer your question first: Yes, I can confirm a resolution of 16 Bits (+/-2^15, to be exact.). And I can confirm it also for the +/-256 mV range. Moreover I can confirm the module and the ADS1115 Chip have the same label.
I have used my simple lab power supply device for the voltage to be teested.. I have applied the following parameters:
  adc.setVoltageRange_mV(ADS1115_RANGE_0256);
  adc.setCompareChannels(ADS1115_COMP_0_GND);
  adc.setMeasureMode(ADS1115_CONTINUOUS);

I printed the measured values using:
float voltageInMillivolt = adc.getResult_mV();
  Serial.print("Result in Millivolt          [mV]: ");
  Serial.println(voltageInMillivolt);

  int rawResult = adc.getRawResult();
  Serial.print("Raw Result                       : ");
  Serial.println(rawResult);

  Serial.print("Raw Result, binary:              : ");
  Serial.println(rawResult, BIN);

This shows that the full resolution is used. I repeated it with the single shot mode and like you I used:
  adc.startSingleMeasurement();
  while(adc.isBusy()){}
  voltage = adc.getRawResult();

This time I printed only the binary values:

So I have no idea why it's not working properly on your side.
I have tested another ADS1115 module from different supplier and it also worked.

Hello Wolfgang,
that's good news that 16 bit resolution is feasible.
One more question.
With which ADS1115 operating voltage did you test?
I have my ADS1115 fixed soldered in. (The goal was that I don't lose µV on the connector).
I still have a 2nd module. But first I have to rebuild everything (soldering).
I will test it first still with it.

Thanks for your help.

Hello Wolfgang,
that's good news that 16 bit resolution is feasible.
One more question.
With which ADS1115 operating voltage did you test?
I have my ADS1115 fixed soldered in. (The goal was that I don't lose µV on the connector).
I still have a 2nd module. But first I have to rebuild everything (soldering).
I will test it first still with it.

Thanks for your help.

I applied 5 volts. IT should work between 2 und 5.5 volts.
Still very strange this behavior. Also the datasheet confirms 16 bit:

I applied 5 volts. IT should work between 2 und 5.5 volts.
Still very strange this behavior. Also the datasheet confirms 16 bit:

Hello Wolfgang,
for the test I connected the 2nd module (ADS1115) to the PCB and just used a different I2C address.
I still can't believe it, in the conversion register the last 3 bits (D0-D2) will be used!!!
My monitor output:
Channel 0 vs GND [V]: 0.039mV Conversion register: 5
Channel 0 vs GND [V]: 0.023mV Conversion register: 3
Thanks for your support and your lib.

Hello Wolfgang,
for the test I connected the 2nd module (ADS1115) to the PCB and just used a different I2C address.
I still can't believe it, in the conversion register the last 3 bits (D0-D2) will be used!!!
My monitor output:
Channel 0 vs GND [V]: 0.039mV Conversion register: 5
Channel 0 vs GND [V]: 0.023mV Conversion register: 3
Thanks for your support and your lib.

Magic! Interesting phenomenon with the first module. Great that it works - have fun!

Magic! Interesting phenomenon with the first module. Great that it works - have fun!

I think I know why he may have had the error on his chip.
There are many vendors who sell ADS1115 boards that come with an ADS1015 marked as an ADS1115 like mentioned here.
My two AliExpress ADS1115 boards also turned out to be fake with an ADS1015 installed.
Easy test to see if these are fake is seeing the above mentioned behavior of having the raw values always jump by multiples of 16 (because the ADS1015 has 4 bits less resolution).
By the way, even though it may be an ADS1015, it still works fine with the library.
The only thing that is not working perfect are the Sample Rates. The ADS1015 has higher sample rates going from 128 to 3300 SPS.

@nikilase , great thanks that would explain the issue!

Hi @nikilase, hi @hoffmakl1961,
the threat us closed quite some time. But I am in discussion (outside GitHub) with someone who also seems to have an ADS1015 instead of the ADS1115. One question: what is the label on the IC of the fake models? In case of an ADS1115 it should be "BOGI". The ADS1015 ICs should be labelled "BRPI" (for VSSOP-types).  I am interested to know if the label of the IC is also fake.
It would be great if you could check. Thanks!

I think I recall I bought the two ADS1115 and also two ADS1118 from this Aliexpress shop https://de.aliexpress.com/item/1005001431623921.html?spm=a2g0o.order_detail.order_detail_item.5.91cd6368SXaKth&gatewayAdapt=glo2deu
It looks like the alleged ADS1115 (rectangle) has the marking "BOGI" and just for your record, the ADS1118 has the marking "BBEI" as you can (hopefully) see in the attached photo.

I can re-test the chips at a later date when I have time and if you need it :)

FYI, for anyone else who finds this issue, there are indeed a lot of fakes out there and I believe many of the sellers know they are selling faulty or misbranded goods. Here's me trying to work out what was going on with bizarre data from a QIFEI branded one: [Adafruit Forums: Strange Case of Adafruit ADS1115 and QIFEI ADS1115](https://forums.adafruit.com/viewtopic.php?p=869956).


Email generator required for the library

I think we need to add "email" formatter too. Currently, for string type it supports
is date-time format
is date format
is time format
is uri format
We should also add "email" format.

yep this is nice to add. I am quite busy right now so i will not be evolving much the json-schema related stuff any time soon. However feel free to make a PR :)


05-interactive-rating-respoisve

#26
05-interactive-rating project is made responsive and also fixed bug where if the user submited the form without choosing any number is would take it was 4
Screenshot

Kindly label this PR with gssoc-ext and hactobter and level
Also label the PR that have been merged of mine please

@AkshitGarg24 kindly add labels to this pr

@jjf2009, resolve conflicts, and update the branch.

@AkshitGarg24 conflicts are resloved add labels for this pr

@jjf2009, this is the deployed link of the project after merging the PR : Link.
Compare it with the original website as it is making a lot of changes in the original website. Are you sure about the changes in the PR?

@AkshitGarg24 ok i will check

@AkshitGarg24 please check again i have fixed it on my side i have also added some git actions for greeting and auto labeling the issues with gssoc-ext and hacktober .

Why have you deleted Code_of_Conduct.md file. And please do only those changes that are assigned to you as there are many contributors who wants to or might be working on the same issue.

@AkshitGarg24 i have removed the changes that was not assigned to me and have added the code of conduct md . Very sorry for my conduct

Hey @jjf2009, no issues at all!! Take it easy. You haven't done anything wrong. Don't be sorry for this. Let @beRajeevKumar have a look at this PR. We will merge it soon. Till then, you can work on other issues.

Please make some meaningful contributions that really impact the project and your skill set.


Update issue templates

updated issue templates
🛠 Fixes issue #
Fixes issue #19
📇 Changes proposed
Added templates for Bug report  , Feature request  and Custom template.
✅ Check List (Mark all the applicable boxes)

[✅ ] My code follows the code style of this project.
[✅ ] This PR does not contain plagiarized content.
[✅ ] This PR contains changes in the documentation
[✅] This PR contains changes in the Code of the project
[✅ ] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

📷 Screenshots

@hasnainmakada-99  made the changes let me know if any changes required....

@all-contributors please add @yung-coder as contributor of code


Fixes issue #36 : Updated README.md

Fixes #36
Screenshots of the latest UI of the app have been added to README.md and instructions on using the complex mode have also been added.

Yes. That's because I have a 4K display. I'll switch to 1280*720 and upload the proper screenshots.

I uploaded the proper screenshots.


“Invalid Confirmation Code” error banner displayed even user has entered valid received code from “Confirm” page

Frequency: 100%
Repro on build version: Android internal build V1.16.0, Test Flight Build V1.16.2(68)
Repro on devices: Redmi Note 8 (9.0), iPhone SE (14.2), iPhone SE 1st Generation (14.6), Google Pixel 4a (11.0), iPhone 6+(12.4.5), Vivo V11 pro (10)
Testing Account:   +1(601) 463 5797
Pre-condition: Make sure that user should on “Confirm” page
Repro Steps:

Launch the application & complete onboarding process
Set PIN & Start verification & redirect to “Confirm” page with three fields to paste code.
Enter first two codes
Now enter third code & make sure that loading indicator should display in front of third entered code
Now tap on “Resend last message” button as soon as loading indicator displayed
Wait for time & observed that,
Current Behavior:  “Inavlid Confirmation Code” red error banner displayed
Expected Behavior:  Either code should be resend & user should redirect to timer screen for while or user should redirect to “Connect Contacts” if process already finished
Impact: User not able to confirm phone number if user has performed above scenario
Investigation: After performing above steps & waiting for sometime after red banner shoots user get “Confirmation Error” banner even user not spend too much time on that screen
Attachment: InvalidCodeEvneEnteredValidCode.mp4
Logs: Celo_Logs

Hey @MuckT, We have verified the above issue on Latest Android Internal Release Build V1.28.1& Test Flight Release Build V 1.28.1 & Observed that the issue is fixed now. “Invalid Confirmation Code” error banner is not seen when user has entered valid received code from “Confirm” page and user is redirected to Home page and number gets confirmed. Hence we are closing the issue.
Devices: Samsung Galaxy A9 pro (8.0), iPhone 13 mini(15.1.1), iPhone 6+(12.5.5), Redmi Note 7 Pro(10.0)
Attachments: Confirmation number.mp4
Thanks..!!


Refactor ApplicationEventPublisher

by replacing callbacks type with Set
Rename onPublish method for ease of usage

nice, man.


[WIP] New dependency-alerter bot & support for async bot-handlers

Motivation:

Bot: It's challenging to keep up with latest updates of eg. mypy, so a bot seemed a reasonable idea :)
Async: Grabbing the information via lots of http-requests takes time, as have other bots on occasion, so allowing for an async handler would enable the bots to be more responsive, to one user or between users.

Dependency-alerter bot:

Looks at a requested URL for a requirements.txt-formatted file, then uses PyPI to check whether those dependencies are up to date.
A dict of sample URLs are listed (zulip server repo!); open to including others as default :)
Marked [WIP], since tests and docs are relatively limited so far.

Async support in lib.py:

Appears to work well :)
If the bot has an async handler, then it will try and run that instead of the regular one
The lib runs the async event-loop in a new thread, and runs the bot async message-handler in that loop when a new message is received
It shuts down the loop and thread upon SIGINT cleanly
This will require python 3.5+, which I'm not sure if we specify explicitly (3.4 is maybe implied?)
We could work with pre-3.5, but the syntax is somewhat less clean
Python 3.6 would make things more concise again, but that may be going too far for now, at least for the lib
[WIP] since there may be lib tests needing to be added?

Async support in dependency-alert bot:

Initially retained use of sync requests, but with async def and await as appropriate
Expansion of dict comprehension to for loop is required currently, assuming we stick with only python 3.5
Last commit migrates to the async aiohttp from requests; this is faster due to the async nature

All commits should pass lint and run-mypy.
This is also WIP since I've not gone through the idea of async support on czo, but hopefully it seems reasonable, at least as a first step :)
Potential future bot developments:

cache the requirements / pypi downloads on a 1h-1d basis
allow the repo dict to be amended at run-time (or use storage)
improve output of the current/available; maybe a table (though this can look a little ugly?)
if a download isn't cached, post the message as eg. "processing..." and then update it later, given it can take a while (then the user gets feedback, and it places it after the user message, in time)

@showell - since async is bot library related
@timabbott - discussed the bot with you on czo

Perhaps unsurprisingly, this doesn't run pass the tests on python 3.4, though this seems as much about the presence of Awaitable in the annotations as the use of async.


Double includes are not ignored.

Hello,
According to the help function of the tool, when there are multiple includes/imports are detected, they only get included once. This doesn't seem to be working. Is there any flag I must set to get this to works?
I'm using 143 XSD-files (6,09MB) which end up in +/- 54MB of code. So I really need splitting up the files.

You wouldn't happen to be will to share those XSD files would you, so I can debug this?
The xs:include/import resolution logic I programmed was meant to handle recursive includes/imports when the inclusion forms from a chain.
Similar to File1->File2->File1. If it becomes File1->File2, File2->File3->File1 then it will probably screw up.

Not able to share the code due to the license of our supplier. But I could narrow it down to this:
https://gist.github.com/EddieDemon/d666e524d279269edd42860414a56410
I noticed that the configuration generator didn't like the namespace (just plain C.) I do imagine that this could be a problem at conversion time.


api: use OpenAPI v3

Describe the bug
We're currently using OpenAPI v2, newer tooling is moving to OpenAPI v3, so we should considering migrating to that as well.

It looks like there is a v2 to v3 converter that we might be able to chain in: https://github.com/grpc-ecosystem/grpc-gateway/issues/441#issuecomment-1553189665


How to set different actions for different states

First, thanks for your great work!
Let me use the following example to explain my question.
When state=1, actions = [a1, a2, a3]
When state=2, actions = [a1, a2]
for state =2 , a3 is 100% not happened. So don't need to add a3 to actions to train.
So, how can I set different actions for different states ?

Hi,
state dependent actions are not supported, you have to handle this is in your application


python3Packages.ytmusicapi: 0.15.1 -> 0.16.0

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 120326 at 69460bcd run on aarch64-linux 1

3 packages built successfully:

python38Packages.ytmusicapi
python39Packages.ytmusicapi
spotdl


Fix az cli error when closing a handle by id

Description
Trying to close a handle by id on an Azure File share produces an exception (https://github.com/Azure/azure-cli/issues/27671). This fixes the exception by making sure only a single definition of the recursive argument is passed.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

Hi @jfsimoneau, thanks for your contribution but I think the fix should probably go into CLI somewhere. recursive is not a valid argument to the close_handle function and therefore should not be passed by CLI. I'm not familiar with the CLI code to know why this is passed, especially by default, but it seems like a bug on their end.

Very well, thank you @jalauzon-msft. I did create an issue for them to fix a while ago, but I will try to find a way there myself.


bug with alpha and render order

example - https://github.com/sg3des/fizzle-example
Found a problem - if object with transparency material render before other objects, transparent will not.
in example look at 219-221 lines and try swap objects.
add screenshots, transparent object first, last

Yes, as far as I understand it, that's "normal" behavior. I believe the common solution to this is to render transparent objects in a last pass.
I haven't set up any built-in ways of doing this yet. It sounds like something a scene manager type of object would organize -- what objects to draw and when to draw them. Something like this goes on in the lights_forward sample in that it does a shadow pass first for the lights and then does the actual render. The third step would be to render transparencies.
I'm getting to the point where I have to make a decision on this in my game prototypes. I think I'll end up making a basic naive scene manager and an interface for it. It will also require a flag on renderables indicating if they're transparent or not.
Soon.

Hello, I use this solution:

enable next opengl flags:

gfx.Enable(graphicsprovider.BLEND)
gfx.BlendFunc(graphicsprovider.SRC_ALPHA, graphicsprovider.ONE_MINUS_SRC_ALPHA)
gfx.Enable(graphicsprovider.SAMPLE_ALPHA_TO_COVERAGE)
gfx.Enable(graphicsprovider.EQUAL)

all objects have flag Transparency
render objects in two steps, first  transparancy = false, second transparency = true.

Result is not good, but acceptable.

Yea, something like that is what I was thinking. Thanks for posting your solution.


Add support for Gradle builds

Added support for building the project using Gradle, a replacement
for maven with a plain-text config file.
Added Gradle cache files to .gitignore.
Tested with Gradle 2.9.

Hey @mbologna!
Thanks for this contribution as usual. I will leave it up to my colleagues to review it and to decide whether to merge it, I am chiming in now just to let you know of a particular complication we will run into if this is accepted. That complication arises from the way we distribute software in SUSE in general - and that also applies to this library.
As you might know openSUSE, SLE and all of their variant distros are rooted in the RPM packaging format and related tools, notably the Open Build Service. That basically means we never ship software in JAR or WAR format - we always have to "wrap" those in RPM packages for trackability, reproducibility, security and other reasons.
Now for Java software, and Java libraries in the SUSE Manager context in particular, we make use of a tool, tetra, to ease the creation of the specfiles - descriptors used to generate those RPMs. JFYI: in general packaging Java software in RPM format properly can be very difficult, tetra takes a couple of shortcuts to make the process manageable in hours/days instead of months.
Now the pain point is that tetra currently supports ant and maven - gradle builds are only "supported manually" and that takes more work. If you ever want to dive into this topic and need more information I will be glad to answer any question!
Happy hacking!

Hello @mbologna! I generally like the non-xml configuration with gradle, but unfortunately - because of the reasons mentioned by @moio - we currently cannot migrate this project to a build system other than ant or maven. Since we also don't want to maintain support for two different build systems at the same time I would ask you if you are OK with closing this PR, at least until gradle is fully supported by tetra? Thanks for your efforts anyway!

Hi @moio !
Thank you for the clear under-the-hood explanation of why gradle can't be used with tetra.
I will have a look at tetra and decide how to go from there.

Hi @renner !
No problem in closing this PR for the same reason you mention (specifically, using two build system).
Thanks!


ER: Add frame rate qualifiers to bitrate targets, or scale bitrate based on frame rate.

Because the target bitrate is based on time, that means the per-frame quality is directly proportional to the source frame rate. So if you were to batch process a large folder of movies, some being 30fps and some 60fps, the 30fps files will have double the quality of the 60fps files.
I'm not sure if this is a bug, or a feature request, but it would be nice to be able to pass in a bitrate that is automatically scaled to the input frame rate. So maybe keep the same interface as it is, but add a feature where the bitrate is applicable to 30fps material, but scaled up or down based on the frame rate. So a target bitrate of 5000kbps will scale up to 10000 for 60fps material.
The other way would be to add frame rate qualifiers to the targets, so you could, for example, do this:
 other-transcode --target 1080p30=5000  --target 1080p60=10000 C:\Rips\*.mkv

@cplr Ah. This is essentially the same case that other users have encountered, i.e. they want to process some camcorder/phone video instead of their Blu-ray or DVD rips. And because it's almost always isolated a generalized feature is not really necessary.
BTW, I would not recommend doubling your bitrate to accommodate a doubled frame rate. A modest 20% increase in the target should be sufficient to maintain quality.
Also, you don't even need to worry about this at all if you're using the Nvidia encoder because --nvenc-cq is available to you. That's a quality-based rather than bitrate-based ratecontrol system. So you could use the same quality (I recommend something between 28 and 25 inclusive) to scale the output bitrate based on complexity.


RFC compliance flag

Some design decisions have to be made.
There is the case where the user adds multiple "from" to an email, but doesn't add a sender. In the case of multiple "from" headers, the RFC dictates that there must be a "sender" header. We can

Choose one from (e.g. the first) as the sender. This might be the wrong one, and thus could introduce a semantic error in the output email.
Return an error. This error would be so specific, that a badly written software using this lib might just panic instead of handling it correctly.
leave the "sender" header to create a non-RFC-conform email.

There is the case where the user does not add a "from" header, but manually takes care for the envelope from. The RFC dictates, that there must be exactly one from header and it can't be empty. We can

Return an error
Leave the "from" header. This works because all mail programs I tested handle this gracefully by not showing a "from" and this might be exactly what the user wants (i.e. writing a "mysterious" email without an obvious sender)

Currently, in the former case, we do the former and in the latter case the latter. But I think none of the solutions can always fit. Maybe we should add a flag to disable enforcement of the RFC compliance.
In compliant mode, the choices could then be: second, first
In non-compliant mode: third, second
What do you think?

I think there are two main usecases, like for the transport part, with the simple sending method vs. SMTP commands.

The general case, i.e. a developer who wants to send an email in his program. He does not really know about SMTP/Email formats, but wants to send this text from an address to another. The main goal of lettre is to help him getting this done easily and safely, with understandable errors. That means we should do our best to enforce the RFC and more generally to ensure things will work as expected, but without

The lower level case, which is the reason to expose the low level methods as a library. They can be used for a lot of different reasons, some requiring RFC compliance, some requiring not to follow the RFC.

Concerning the header/envelope issue:

For the first point (several from and no sender), I prefer the error, as I don't like silently taking a decision for the user.
For the second point (manually set envelope), as it is a lower level method, I think we could keep it as is.

However, I also like the idea of the flag because it allows both usecases while being consistent. Compliant mode should return an error every time we know there will likely be an issue, and non-compliant skip all RFC checks.

Just thinking, for the RFC compliant variant, we could have a separate builder struct, to enforce some constraints via the type system (because compile-time errors > run-time errors).
struct RFCMailBuilder;
impl RFCMailBuilder {
    fn set_main_author(address) -> EmailBuilder {…}
}

The main author would be used as Sender if multiple From will be added later. And it also works as the minimum one From address we need for compliance.
We could also then rename the EmailBuilder to RawEmailBuilder, so people will be more reluctant to use it directly.

This issue might affect the API of this crate. Therefore I suggest adding its solution to the 1.0 milestone.

After some more thinking: As you said, this crate walks the line between two things:
a) an E-Mail builder with much control, where you set the Headers yourself and are to some degree responsible for RFC compliance. This allows for fine-grained control and is suitable to build e.g. a GUI email client.
b) an easy-to-use E-Mail library with few options, but more guidance, to just "send this text to these people". A user of it needs to know nothing about the RFC, but has less control about the exact headers. This is suitable to daemons that need to notify somebody on some event, or web stores that send emails to customers etc.
I don't see a way that one struct (i.e. EmailBuilder) can be excellent at both.
I propose removing all low-level features from lettre (e.g. set_message_type, add_child, add_header, envelope customization), adding a whole lot of types to enforce correct usage using the type system and guaranteeing RFC compliance. People who need the low-level features should be pointed to the email crate. We can't cover all of their use cases anyway.

After more thinking: I think there is a way to yell at people and still give them the power to change every detail about an EMail. It involves a build.rs script tough...
Wether or not we should yell at a user for an Email depends on these booleans:

does it have a from header?
does it have multiple from headers?
does it have a sender header?
does it have a to header?
does it have a subject?
does it have a body?

The idea is to yell at the user if

anything important (to, from, subject, body) is missing
or it has multiple froms, but no sender

We can encode the required booleans into struct names by appending ones and zeros to a name, e.g. "SafeEmailBuilder". Example: struct SafeEmailBuilder100111 would be the name for a simple, Email that has one from, at least one to, a subject and a body. SafeEmailBuilder would be a typedef for SafeEmailBuilder000000.
Each such struct should be defined like this:
struct SafeEmailBuilderXXXXXX {
    raw: EmailBuilder
}

All the safe methods of EmailBuilder are also in each of the impls. They are implemented simply like this:
impl SafeEmailBuilderXXXXXX {
    pub fn foo(mut self, arg) -> SafeEmailBuilderYYYYYY {
        self.raw.set_foo(arg);
        SafeEmailBuilderYYYYYY { raw: self.raw }
    }
}

If you just add a Cc, Bcc or reply-to, the output type will stay the same, i.e. XXXXXX == YYYYYY. But if you add a To, Subject, Sender, body, the type will change, e.g.
SafeEmailBuilder00XXXX.to() -> SafeEmailBuilder10XXXX

The build method will only be available in the conforming structs:

100111
111111
101111

So if the user tries to build an Email, which is to be yelled at (e.g. something missing), the build method will just not exist for that Email and the compiler will yell at the user. Also the method body will be missing from any state XXXXX1, and the method subject missing from any state XXXX1X.
Furthermore, the structs that could be built, will also have an identity (i.e. nothing changing) function namend assert_buildable. The structs will also implement Into<EmailBuilder> as a "downgrade" possibility. So if you want to make a valid EMail (and make sure it's valid) and then add a custom header, you can do it like this
let safe_email = SafeEmailBuilder::new().to(…).bcc(…).from(…).body(…).subject(…).assert_buildable();
let mut footgun_email : EmailBuilder = safe_email.into();
footgun_email.header(…);

This would require 3*2^4=48 structs (because 01XXXX codes cannot exist). Of course, we don't want to write these by hand. So we need a build.rs script to generate them.
For stabilization I think, we shouldn't stabilize the intermediate struct names at all. Just say there are structs with those properties and a user may not assume a type name for an intermediate struct.
If we want, we can rename EmailBuilder to RawEmailBuilder or something like that. This would encourage people to have a look at the safe API when they upgrade. But this is optional.
We could also only add a few of those states by dictating the order in which the parameters must be given (i.e. mail.from(…).to(…) would be valid, while mail.to(…).from(…) would not). But where is the fun in that? 😄
What do you think?


How to reload onDataBind

Using the "onDataBind" when I modify the data need to reload the data, how to reload，thanks

Hi Zyn926,
Your question is not clear. Can you share the code snippet used to bind data. Also, which component are you using (data table or dropdown)? Please elaborate further on what you are trying to do?
Thanks.

I use a data table to display the data，but I have gain change operation on data，after I want to modify the data and reload the data.
ngOnInit() {
this.getListData();
}
getListData() {
this.onDataBind = this.dataFetchService.onDataBind('http://localhost:8080/api/staff/getStaffList');
}
addOrEdit(_staff) {
const dia = this.dialog.open(StaffAddOrEditComponent, {
minWidth: 400,
data: _staff ? _staff : null
});
dia.afterClosed().subscribe((res) => {
if (res) {
this.getListData();
}
});
}

Hi Zyn926,
Your question is not clear. Can you share the code snippet used to bind data. Also, which component are you using (data table or dropdown)? Please elaborate further on what you are trying to do?
Thanks.

I use a data table to display the data，but I have gain change operation on data，after I want to modify the data and reload the data.
ngOnInit() {
this.getListData();
}
getListData() {
this.onDataBind = this.dataFetchService.onDataBind('http://localhost:8080/api/staff/getStaffList');
}
addOrEdit(_staff) {
const dia = this.dialog.open(StaffAddOrEditComponent, {
minWidth: 400,
data: _staff ? _staff : null
});
dia.afterClosed().subscribe((res) => {
if (res) {
this.getListData();
}
});
}
This is part of the code，I should how to reload data
Thanks

There are multiple approaches to bind data for data table. refer the [https://ornamentum.app/feature/data-table/data-binding/client-side/basic](client-side basic data binding) and follow the provided instructions. further, if you have any concerns please let me know.

There are multiple approaches to bind data for data table. refer the client-side basic data binding and follow the provided instructions. further, if you have any concerns please let me know.
User“this.dataFetchService.onDataBind('');” Data binding only once？Here the data I need paging on the server,are there any other method call paging component？

Thanks

There are multiple approaches to bind data for data table. refer the client-side basic data binding and follow the provided instructions. further, if you have any concerns please let me know.

User“this.dataFetchService.onDataBind('');” Data binding only once？Here the data I need paging on the server,are there any other method call paging component？

Hi
Can I use DataTableEventStateService？
If I can call should be how to call？
Thanks

There are multiple approaches to bind data for data table. refer the client-side basic data binding and follow the provided instructions. further, if you have any concerns please let me know.

User“this.dataFetchService.onDataBind('');” Data binding only once？Here the data I need paging on the server,are there any other method call paging component？

If you want to perform server-side pagination use server-side basic data binding and follow the provided instructions. do not mess with internal services with user exposed functionalities. :)

There are multiple approaches to bind data for data table. refer the client-side basic data binding and follow the provided instructions. further, if you have any concerns please let me know.

User“this.dataFetchService.onDataBind('');” Data binding only once？Here the data I need paging on the server,are there any other method call paging component？

If you want to perform server-side pagination use server-side basic data binding and follow the provided instructions. do not mess with internal services with user exposed functionalities. :)

I use server-side paging, how to reload this data, such as I added a new data, how to load this data into the table？
Thanks


[DO NOT MERGE] Statistical data set deploy one

Trello

Render Statistical Data Sets using government-frontend.

Do not merge this until Statistical Data Set Migration has been merged and we have rebased.

Paired with @bevanloon.

@gpeng Have rebased, will wait for the Wraith tests to be approved before taking away the 'Do not merge'


add_synapse_logic

This is to make this repo compatible with Azure Synapse
resolves #
This is a:

[ ] documentation update
[ ] bug fix with no breaking changes
[ ] new functionality
[ ] a breaking change

All pull requests from community contributors should target the main branch (default).
Description & motivation

Checklist

[ ] This code is associated with an Issue which has been triaged and accepted for development.
[ ] I have verified that these changes work locally on the following warehouses (Note: it's okay if you do not have access to all warehouses, this helps us understand what has been covered)

[ ] BigQuery
[ ] Postgres
[ ] Redshift
[ ] Snowflake

[ ] I followed guidelines to ensure that my changes will work on "non-core" adapters by:

[ ] dispatching any new macro(s) so non-core adapters can also use them (e.g. the star() source)
[ ] using the limit_zero() macro in place of the literal string: limit 0
[ ] using dbt.type_* macros instead of explicit datatypes (e.g. dbt.type_timestamp() instead of TIMESTAMP

[ ] I have updated the README.md (if applicable)
[ ] I have added tests & descriptions to my models (and macros if applicable)
[ ] I have added an entry to CHANGELOG.md

Hi @aashish72it, thanks for taking the initiative here - I'm sorry for the slow reply!
I'm going to close this as these macros are now implemented in each adapter directly. I would encourage you to open an issue on https://github.com/dbt-msft/dbt-synapse to get this implemented. Or it's possible that it can inherit from https://github.com/dbt-msft/dbt-sqlserver - I'm not sure exactly!


Inference on other datasets

Hi. I’ve read the paper (really well written by the way!), and I’d like to try it in inference mode on a different dataset. It would be nice if I could start with an RGB image, and end up with the aligned object model to visualise. Currently, I’m not able to, as I can’t find the following:

Script which takes in an RGB image and extracts a hand mesh so it’s compatible with the provided inference script.
Script to query genie to obtain an object model.
Script to align the object model with the output of MCC-HO.

Have I missed something (very likely), or if not do you plan to release these, as I think they'd be really useful? Thanks for your help!

Hi, thanks for your interest!

We use HaMeR to extract a hand mesh (compatible with the inference script): https://geopavlakos.github.io/hamer/.

Once you have the hand mesh, you also need to set the Pytorch3D camera intrinsics as in this file: https://github.com/janehwu/mcc-ho/blob/main/demo/camera_intrinsics_mow.json
If it's helpful, this is how I converted pyrender (used by HaMeR) to pytorch3d:
        pyrender_focal_length = 1000
        scale = image_height / 2.0
        # Get the PyTorch3D focal length and principal point.
        focal_pytorch3d = pyrender_focal_length / scale

        # Intrinsics
        focal_length = (focal_pytorch3d, focal_pytorch3d)
        principal_point = (0., 0.)

The Genie API isn't free, but you can access their Discord server to query the text-to-3D model: https://lumalabs.ai/genie?view=create
We used ICP to align the object with the output of MCC-HO. I used this implementation: https://github.com/ClayFlannigan/icp

Let me know if you have further questions.

Thanks. I've managed to install everything, and can run the demo. But when I provide it with my hand .obj from hamer, the associated hand/object masks, rgb and intrinsics, it gives the following error: writing failed max(): Expected reduction dim 0 to have non-zero size. It looks as if it's not making any predictions at all.
I think the problem is coming from the hand mesh, as when I just use the demo one with the rest of my inputs, it at least provides an output (albeit not a very good one). I've noticed that the seen_xyz still has -inf values in it for my mesh, but not for the demo one.
Would you mind me sending you these files to have a quick look at, as we'd like to use this for an ongoing project if it works? Thanks again for your help.

Sure! Feel free to send me the files at<EMAIL_ADDRESS>

Hi Jane, thanks for the great work!
I am also trying to run MCC-HO on images from other dataset.
I noticed that hand meshes I got from the vanilla HaMeR model are approximately 0.5x smaller than yours (hand mesh in demo). Also, the coordinate system is different (with x, z to be -x, -z)
Would you show us that how we modified HaMeR so we can get the same mesh as you please? Thanks in advance!

Hi @fujenchu,
Did you manage this?
@janehwu any tips for this?
Thanks!

Please see our updated demo which includes obtaining 3D hands using HaMeR: https://github.com/janehwu/mcc-ho?tab=readme-ov-file#demo-with-hamer
Note that the MCC-HO+HaMeR demo takes an object segmentation mask, not hand+object.
The original demo.py script can also be used, but note that we use a lower focal length (1000) than the HaMeR demo to ensure the hands are not too far away from each other/the camera.


Add a Canary branding option

Obviously, icons are all wrong. Color is about right but they need CAN icons.
I'll leave that as an exercise for @DHowett to generate the right ones as a follow-up.
Related to #774

@DHowett thoughts on how we should treat:
https://github.com/microsoft/terminal/blob/333fcd89b305a1c4f08b05c238c39b56eb4d03e9/build/pipelines/release.yml#L72-L94
?

To your question about the nuget package suffix: It doesn't matter. These builds will come from a feature branch (and get tagged with -featurexyz) or main (and get tagged with -experimental, since they did not come from a release- branch)


Wrong time for Brazil timezone for DST areas

The docker image with the daylight saving time tzdata package is out of date.
In Brazil (-03:00) no longer has daylight saving time but is displaying timezone with -02:00
apt list --installed | grep tzdata
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
tzdata/now 2019b-0+deb9u1 all [installed,local]

Move the issue to the right repository as it happens only on the desktop app.
The issue itself is related to NodeJS and not to Rocket.Chat itself: https://github.com/nodejs/node/issues/30211
we're trying to work on a workaround while the official fix is not released by NodeJS

related to https://github.com/RocketChat/Rocket.Chat.Electron/issues/1181

I have the same issue, in version 2.16.2 this may seems OK

It's totally a "band-aid", a tempfix, but if you set the "TZ" environment variable to "America/Bahia" and then execute the application, it works.
I use Ubuntu, so I changed the "Exec" on rocketchat-desktop.desktop to this:
Exec=sh -c "TZ='America/Bahia' /opt/Rocket.Chat/rocketchat-desktop %U"
Works for me.

I'm closing it since I believe it's fixed at the develop branch, soon to be released as 2.17.0.

@lkraider I'm waiting for news about Electron 7 passing through the App Store validation. Until there, we're blocked. :disappointed:


Dev docs sweep

Description
Don't merge please. Working on a big batch of sweep items. This is the first pass. I'll continue to update this PR. This one is for overuse of New Relic name in regular docs use.
Reviewer Notes
If there are links or steps needed to test this work, add them here.
Related Issue(s) / Ticket(s)
If there are any related GitHub Issues or JIRA tickets, add links to them here.

issue

Screenshot(s)
If relevant, add screenshots here.

This is a big batch of edits. I reconciled a bunch of merge errors, but otherwise should not impact more than some style changes.


Feature/monitoring plugins

This new role is capable of installing / removing monitoring plugins as listed in the Icinga Template Library.
It has an internal list of known check command names corresponding to the appropriate packages available in the distribution's repositories.
It compares a list of requested check commands against that list, installing them if available and removing those that have not been requested.
It's also possible to install all managed check commands at once supplying the according list variable with the word 'all'.
icinga_monitoring_plugins_check_commands:
  - all

Awesome work @Donien thanks again


Add extractor for Jetty Client.

Please fix the build.

Codecov Report

Merging #1582 into master will decrease coverage by 0.03%.
The diff coverage is 66.66%.

@@             Coverage Diff              @@
##             master    #1582      +/-   ##
============================================
- Coverage     82.13%   82.09%   -0.04%
- Complexity     1742     1750       +8
============================================
  Files           260      261       +1
  Lines          8077     8089      +12
  Branches        770      770
============================================
+ Hits           6634     6641       +7
- Misses         1209     1212       +3
- Partials        234      236       +2

Impacted Files
Coverage Δ
Complexity Δ

.../http/jetty/client/OcJettyHttpClientExtractor.java
66.66% <66.66%> (ø)
8 <8> (?)

...census/implcore/trace/export/SpanExporterImpl.java
91.78% <0%> (-1.37%)
8% <0%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 644f466...de9a2f4. Read the comment docs.


update for hawthorn.1

The current version works for ginkgo, when will you update it for hawthorn?

@cequn Can you provide some additional information? Your mention implies that it doesn't currently work on hawthorn; what issues are you encountering?

@stvstnfrd sorry for later reply, I think i figure it out, but i can't remember what it is, it seems the issue of django version, hawthorn use a django>1.9,


Upgrades stuck on "Starting" while containers are actually running on hosts

Rancher Version: v1.1.2
Docker Version: 1.10.3
OS and where are the hosts located? (cloud, bare metal, etc): RancherOS 0.4.5, AWS EC2
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB) Single Node behind AWS ELB, external DB
Environment Type: (Cattle/Kubernetes/Swarm/Mesos) Cattle
Steps to Reproduce:
On any of my services, run an upgrade with a batch interval of 120-600s (to account for initializing on my containers).
Results:
Containers are stuck on "Starting (Starting)" with no extra messages:

When I ssh into the host OS, I can see the running process but with a UUID name, whereas the container in the UI doesn't have a io.rancher.container.uuid label to identify the container in docker ps:
[rancher@ip-10-2-2-227 ~]$ docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS                        PORTS                                                              NAMES
e2493bceb6d0        quay.io/jewlr/jewlr4:stable      "/sbin/my_init"          9 minutes ago       Up 9 minutes                  80-81/tcp, 443/tcp, <IP_ADDRESS>:30001->30001/tcp                       a2f3b836-fa42-4b3a-b44c-f87e0d7d7655
c55e58f44b12        rancher/agent:v1.0.2             "/run.sh run"            27 hours ago        Up 27 hours                                                                                rancher-agent
d6840b302dbe        rancher/etcd:v2.3.7-6            "/run.sh node"           5 days ago          Up 5 days                                                                                r-etcd-ha_etcd_1
6ec77e66c635        quay.io/jewlr/haproxy:latest     "/bin/sh -c /sbin/my_"   5 days ago          Up 5 days                     <IP_ADDRESS>:80->80/tcp, <IP_ADDRESS>:443->443/tcp, <IP_ADDRESS>:8080->8080/tcp   r-jewlr4-de_loadbalancer-de_1
bd3428d771c6        meltwater/docker-cleanup:1.6.0   "/run.sh"                5 days ago          Up 5 days                                                                                r-janitor_cleanup_17
e36409417335        rancher/agent-instance:v0.8.3    "/etc/init.d/agent-in"   5 days ago          Up 5 days                     <IP_ADDRESS>:500->500/udp, <IP_ADDRESS>:4500->4500/udp                       7a1a95d9-d134-42af-8f90-9235eaad1603
ca00074117e3        rancher/agent:v1.0.2             "/run.sh https://ranc"   5 days ago          Restarting (0) 27 hours ago                                                                      register

The second host doesn't start the container because the first container is still not running, it seems. The rancher server logs don't seem to indicate any problems.
If I stop the UUID container, the scheduler will restart it and begin the second container:

Except this time the first container says "Starting (Networking)" and there's no UUID or actual containers in my docker ps. The second container then says "Starting (Starting)" and has the same issue that the first host originally had.
Then, if I stop the first container a second time, and the second container a first time, the first container finally starts and goes into its correct "Initializing" state. Once it's "Running", the second container starts again and goes into its "Initializing" state, and then "Running".
Expected:
Zero-downtime jank-free upgrades :(

Getting hit by this as well today, but I'm on 1.1.3. Will downgrade to 1.1.2 to attempt to debug.

This also happens to me for new hosts as well once they've connected to the Rancher server, everything including the Network Agent is just stuck in this "Starting" state forever.

Also suffering this on 1.1.3 only on containers running the node:latest image.

Here's a fascinating aspect. The stats start running on the container while it's still stuck in "Starting" state, but it's only visible from the host view:

The container view shows nothing:

I really hate to be too forward here, but why isn't this considered more of a critical issue/bug? You can see from my initial comment that it caused an entire service to go down because none of the "Starting" instances could ever get to the "Initializing" state.

My logs in a pastebin since it's too long for this comment: http://pastebin.com/BRjWTD4G

Container logs...
agent.logs.zip

It seems like the image pull takes awhile, but eventually (a minute-ish) it completes successfully and sends a successful response to cattle, but cattle doesn't update the ImageStoragePoolMap.activate process to finished.
So, this process gets stuck and it holds up the instance from getting updated to  running.
I tried to reproduce by ensure image pull takes longer than a minute, but this did not reproduce.


resin local push gives "exec format error"

resin-cli version: 7.4.0
Operating system and architecture: macOS 10.13.4

I have a Dockerfile (simplified from my actual app):
FROM resin/raspberrypi3-node:6-slim

RUN [ "cross-build-start" ]

RUN apt-get update && apt-get install -yq \
    python build-essential bash wget && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

RUN [ "cross-build-end" ]

CMD ["npm", "start"]

When I run sudo resin build -a myapp, it works:
[Info]    Creating default composition with source: /Users/eczajk/Projects/smartswm/thing
[Info]    Building for armv7hf/raspberrypi3
[Build]   Built 1 service in 0:06
[Build]   main Image size: 285.55 MB
[Success] Build succeeded!

But if I do sudo resin local push f12345b.local -s . (as described here), I get an error:
* Building..
- Stopping and removing any previous 'local-app' container
- Uploading build context & starting build...
Step 1/12 : FROM resin/raspberrypi3-node:6-slim
 ---> ac929deb06b0
Step 2/12 : RUN cross-build-start
 ---> Running in 1a8fe3b7f603
standard_init_linux.go:187: exec user process caused "exec format error"
Push failed. Error: The command 'cross-build-start' returned a non-zero code: 1 Error: The command 'cross-build-start' returned a non-zero code: 1
    at Stream.<anonymous> (/Users/redact/.nvm/versions/node/v6.10.3/lib/node_modules/resin-cli/node_modules/resin-sync/build/docker-utils.js:146:23)
    at emitOne (events.js:96:13)
    at Stream.emit (events.js:188:7)
    at drain (/Users/redact/.nvm/versions/node/v6.10.3/lib/node_modules/resin-cli/node_modules/through/index.js:36:16)
    at Stream.stream.queue.stream.push (/Users/redact/.nvm/versions/node/v6.10.3/lib/node_modules/resin-cli/node_modules/through/index.js:45:5)
    at Parser.parser.onToken (/Users/redact/.nvm/versions/node/v6.10.3/lib/node_modules/resin-cli/node_modules/JSONStream/index.js:130:18)
    at Parser.proto.write (/Users/redact/.nvm/versions/node/v6.10.3/lib/node_modules/resin-cli/node_modules/jsonparse/jsonparse.js:135:34)
    at Stream.<anonymous> (/Users/redact/.nvm/versions/node/v6.10.3/lib/node_modules/resin-cli/node_modules/JSONStream/index.js:21:12)
    at Stream.stream.write (/Users/redact/.nvm/versions/node/v6.10.3/lib/node_modules/resin-cli/node_modules/through/index.js:26:11)
    at IncomingMessage.ondata (_stream_readable.js:555:20)
    at emitOne (events.js:96:13)
    at IncomingMessage.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at IncomingMessage.Readable.push (_stream_readable.js:134:10)
    at HTTPParser.parserOnBody (_http_common.js:123:22)
    at Socket.socketOnData (_http_client.js:362:20)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    at TCP.onread (net.js:547:20)

I think I understand that the "exec format error" is related to the content of this blog post. And I can see in the resin-cli source that the resin local command uses resin-sync under the hood, where the resin build command uses a different process.
Is there an alternate method of deploying locally for development purposes?

Generally exec format error means you're running some code that's intended for a different architecture.
I think the cross-build lines here are likely the problem - that's intended for emulating ARM when building on x86, and in a local push you're building ARM on ARM.
If you remove those, does it build with local push? That will of course break resin build (which needs emulation to build on your x86 machine) but you can pass --emulated/-e to that command to automatically handle emulation, without having to edit your dockerfile at all. Does that work for you?

Yes. Yes it does. THANKS!

--emulated/-e is where it is added, I am a new one. Thank you for any useful reply.


[W6.4b][T15-B4]Azizi Azfar

@aziziazfar
Some comments added. Please ack & close the PR after reading comments.


Holistic Tests: do a pull if the repo isn't in the parent directory

Holistic tests fail if the various repos are not in the parent directory... so do a git clone of the repo if it's not there already

Unified all the repos into the main Funcatron repo. No longer necessary.


Set up website analytics

Context
We need to monitor website traffic as a metric of community success related activities.
Links
https://plausible.io/catalystproject.cloud (requires login)
https://plausible.io/share/catalystproject.cloud?auth=0fPkqjDfrFarKPwWtsR5n (shareable, no login required)
Tasklist

[x] Set up Plausible (30 day free trial)
[x] Report back in 30 days and if successful ask for funds for a subscription fee

Hello! Rather than ask for more funds for a new subscription, I have just transferred the site to an existing 2i2c subscription at no extra cost.
The shareable, no login required link still works the same and 2i2c team members can access the admin account via the 2i2c BitWarden account (I do not anticipate that other Catalyst core team members require admin access).
I've updated the playbook to reflect this https://docs.google.com/document/d/1ZBUC5bCZqwaE3mWlp5MTbeLAtIkhkget4dcLbX8Fimw/edit#heading=h.87u6272el8hf


Handle nil content type in http resp validation.

This would now raise a more useful Thrift::HTTPClientTransport Unexpected response content type: '' error instead of NoMethodError: undefined method downcase' for nil:NilClass, mentioned in #17.

@balser @conch: Thank you!


DetectNet model: invalid device function on NVIDIA DIGITS 6 AMI

Hello,
Overview
I am working through the "Locating Object Coordinates using DetectNet" section of the tutorial.  I am using the DIGITS 6 AMI on Ubuntu 16.04 from the AWS Marketplace (instance type is gx.2xlarge), but ran into a roadblock when trying to launch the DetectNet-COCO-Dog model. At a high level, the error that I'm seeing is: "ERROR: Check failed: error == cudaSuccess (8 vs. 0) invalid device function."
More details:
Here are the first and last several lines of output from caffe_output.log for the job:
[snip]
libdc1394 error: Failed to initialize libdc1394
I1126 11:55:07.177713 579 upgrade_proto.cpp:1044] Attempting to upgrade input file specified using deprecated 'solver_type' field (enum)': /jobs/20171126-115505-4756/solver.prototxt
I1126 11:55:07.177882 579 upgrade_proto.cpp:1051] Successfully upgraded file specified using deprecated 'solver_type' field (enum) to 'type' field (string).
W1126 11:55:07.177889 579 upgrade_proto.cpp:1053] Note that future Caffe releases will only support 'type' field (string) for a solver's type.

Maybe somewhere I have to change a setting to accommodate the GPU architecture?  I was also assuming (probably incorrectly) that AWS DIGITS 6 already had the NVIDIA driver, cuDNN, and NVcaffe, but perhaps I have to follow some of the steps earlier in the tutorial to install them?
Thanks for your help!

Hi alamesa, you are correct that 'invalid device function' typically means the correct GPU architecture hasn't been set somewhere (in this case probably NVcaffe).
Have you been able to run any DIGITS examples, or just seeing this problem with DetectNet?   Sorry, I haven't installed this AMI myself yet.
Also, you may eventually run into the issue that TensorRT currently needs to use models trained by NVcaffe-0.15 due to some BN-normalization parsing issue.
-------- Original message --------
From: alamesa<EMAIL_ADDRESS>Date: 12/1/17 8:26 AM (GMT-05:00)
To: dusty-nv/jetson-inference<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [dusty-nv/jetson-inference] DetectNet model: invalid device function on NVIDIA DIGITS 6 AMI (#169)
Hello,
Overview
I am working through the "Locating Object Coordinates using DetectNet" section of the tutorial. I am using the DIGITS 6 AMI on Ubuntu 16.04 from the AWS Marketplace (instance type is gx.2xlarge), but ran into a roadblock when trying to launch the DetectNet-COCO-Dog model. At a high level, the error that I'm seeing is: "ERROR: Check failed: error == cudaSuccess (8 vs. 0) invalid device function."
More details:
Here are the first and last several lines of output from caffe_output.log for the job:
[snip]
libdc1394 error: Failed to initialize libdc1394
I1126 11:55:07.177713 579 upgrade_proto.cpp:1044] Attempting to upgrade input file specified using deprecated 'solver_type' field (enum)': /jobs/20171126-115505-4756/solver.prototxt
I1126 11:55:07.177882 579 upgrade_proto.cpp:1051] Successfully upgraded file specified using deprecated 'solver_type' field (enum) to 'type' field (string).
W1126 11:55:07.177889 579 upgrade_proto.cpp:1053] Note that future Caffe releases will only support 'type' field (string) for a solver's type.

Maybe somewhere I have to change a setting to accommodate the GPU architecture? I was also assuming (probably incorrectly) that AWS DIGITS 6 already had the NVIDIA driver, cuDNN, and NVcaffe, but perhaps I have to follow some of the steps earlier in the tutorial to install them?
Thanks for your help!

You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/169, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDKw6NTupH2v2KI7MJjEBGommRAZ9jks5s7_53gaJpZM4QyVxZ.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

Hi @dusty-nv, thanks for the suggestions!  DetectNet is the only example that I have tried on DIGITS so far.
I kept running into dependency issues with the DIGITS 6 AMI, so instead I moved to the NVIDIA GPU Cloud and used an nvidia-docker container with DIGITS 6 there.  This allowed me to train the DetectNet model successfully with the dog image.
However, once I downloaded the model and tried to run inference on the Jetson TX2, I'm running into problems very similar to issues #84 and #99.  My nvidia-docker container uses Caffe version 0.16.4, yet it seems I should be using 0.15.  Is there any way to specify the use of Caffe 0.15 on the NVIDIA GPU Cloud?
My versions on NVIDIA GPU Cloud:


Can non-linear ssm(data-dependent input) utilize Mamba's parallelism acceleration？

Thanks for your excellent work! I have a question regarding parallelism in non-linear recursive form.
For parallelism in recursive form, is it necessary for each time step's input to be independent? That is to say: if the input at time step t, x[t], is defined as f (x[0~t]), where f is a nonlinear function, can it still be parallelized?
I noticed that the parallel operations in SSM (State Space Model) actually follow the linear RNN form, and the inputs to SSM are already determined. However, in certain scenarios (such as online settings), the inputs for future time steps are uncertain. In such cases, can we still use Mamba's SSM for parallelism acceleration? If not, are there any alternative solutions?

Probably will be hard for such a general function. E.g. it was hard to parallelize nonlinear RNNs such as LSTM.


rundeck_server_install outputs private_key content

Cookbook version
5.0.0
Chef-client version
14.2.0
Platform Details
RHEL 7.x
Scenario:
rundeck user private key
Steps to Reproduce:
rundeck_server_install 'rundeck' do
  private_key "<private key content>"
end

Expected Result:
No sensitive information output
Actual Result:
    * file[/var/lib/rundeck/.ssh/id_rsa] action create[2019-02-05T00:32:08+00:00] WARN: only_if block for file[/var/lib/rundeck/.ssh/id_rsa] returned "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnN...BAgMEBQYH\n-----END OPENSSH PRIVATE KEY-----\n", did you mean to run a command? If so use 'only_if "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnN...BAgMEBQYH\n-----END OPENSSH PRIVATE KEY-----\n"' in your code.

Two problems, one being that the resource is not sensitive, and the other is the error message blatantly outputting the content

This happens on new installs:
    * file[/var/lib/rundeck/.ssh/id_rsa] action create
      - update content in file /var/lib/rundeck/.ssh/id_rsa from 489e98 to 22ecc5
      --- /var/lib/rundeck/.ssh/id_rsa  2019-02-05 01:00:48.664914000 +0000
      +++ /var/lib/rundeck/.ssh/.chef-id_rsa20190205-293-427g8i 2019-02-05 01:00:48.984914000 +0000
      @@ -1,28 +1,28 @@
      ------BEGIN RSA PRIVATE KEY-----
      -MIIEogIBAAKCAQEArqR+tDroFD1DQMkakLJi8xsTtzCrk/dWQ3tgVmhHjtr/l31p
      -...
      -h4mD9K1RkRH/zENklC77Z4iFnb9/1Zc4iQ+kCqJlyiVc4ynBDEQ=
      ------END RSA PRIVATE KEY-----
      +-----BEGIN OPENSSH PRIVATE KEY-----
      +b3BlbnN...
      +...
      +...BAgMEBQYH
      +-----END OPENSSH PRIVATE KEY-----


Add missing translation keys for all languages

Problem
There are some strings which did not have the key in the .po files
Solution
run django-admin.py makemessages --all

Coverage remained the same at 96.348% when pulling 7e1ede525aa405729acf2afaf4f38e40f376c291 on andrewgy8:add-missing-languages into 5b83f66f683f4d12bb7fa0f99a73dd82423788dd on django-import-export:master.


treewide: remove file-wide with lib; uses in nixos/modules/programs

Description of changes
Following #208242.
Additionally fixed a small error in a recently merged module for soundmodem.
That one was separated into #304811 and merged.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Hum, that's nice and scary!
about soundmodem, put ie in a separate PR.

And now at least 3 checks fail (I think borgo will fail too)

Anyway, I'm rebasing this one on top of #304811, let that one be merged first

Rebased it back on top of master, now it's a single-commit PR again

@wegank merge conflicts resolved

This broke zsh, which probably wasn't part of a VM test. Fixed in https://github.com/NixOS/nixpkgs/pull/311292.

Hum, that's nice and scary!

Very true indeed. Thanks, @flokli!

Sorry I may have missed a bit of context, but how did you handle these changes? Completely rely on visual recognition and manual modification, or scripting nix evaluator? Did you do anything to ensure the correctness of the changes?

@Aleksanaa all edits are done manually (with some macros in vim tho), but i did check it with customized NIX_PATH. I admit that i didn't check it after every edit


Update to companion 3.0 and add api 5 endpoints

Migration to version 3.0 of companion and addition of our api version 5 endpoints

I've only given it a quick skim, but what I saw looked fine :)


Update mfrc630

In write_FIFO function by this structure when we want to read a card, the IRQ0 returned 0x2A, which is indicate the ErrIRQ, because data do not write to FIFO  correctly. to overcome the issue I modified the function structure.
In write FIFO function we must write REG_FIFODATA before data in every 1 byte of data.

Thanks for taking the time to create this PR. I'm not sure why this change was necessary for the card interaction to work on your end, the datasheet states (section 8.4.4 FIFOData):

In- and output of FIFO buffer. Contrary to any read/write access to other addresses, reading or writing to the FIFO address does not increment the address pointer.

Which means we do not have to write the REG_FIFODATA to write consecutive bytes. I'm quite sure the previous behaviour was correct as most other functions depend on the write fifo function and I haven't had problems. I'm really glad to hear you got the library to work but I don't think this fix should be necessary.
I think the underlying cause may be that the MFRC630 considers the SPI transaction finished before all bytes are written and thus resets the address pointer somewhere during the writing of the bytes? Check if you close the SPI transaction / switch the select line in the mfrc630_SPI_transfer function you created. Also double check whether your hardware SPI is configured in the correct mode.

Hi iwanders
Thanks for your response.
I build a project by MFRC63002H and NXP Microcontroller LPC4088 .
I used of the library for test my board, but I don't get any response of Mifare Cards.
So, due to the IRQs result, decided to change writing and reading FIFO functions. After the change of functions I can read the MIFARE Calssic Cards.
Maybe the SPI functions cause of problem.

Marking as won't fix, root cause is likely in SPI communication. I'm glad it's working and thanks for taking the time to make a pull request.


Converting Q to Typescript

Hey everyone,
I've been contemplating in rewriting Q into Typescript so that the project has better type declarations directly from the source, as well as the goodness of types while coding and the safety of compiling our code to the lower common denominator.
I've been successfully using Typescript for a year now with great success in multiple projects and it's been a pleasure to code with as it catches errors sooner.  I'd like to do the same for this project as the current typings on @types/q aren't great and would like it to be more compatible/interchangeable with js promises since it would help me with certain projects.
What are the thoughts of the contributors?  I would hate to take on this endeavor but don't want to waste time doing so if it's never going to be merged to master.
Cheers.

I do not have strong feelings either one way or the other, provided:

most existing collaborators sign off on the change. If @domenic or @benjamingr are weakly against the change, I’m strongly against the change.
no breaking changes
no changes to tests
comprehensive testing in all supported browsers (they go back a long way)
q.js continues to be usable in all the same environments and deployment scenarios, including as a script tag, as a Node.js / CommonJS module, and as an AMD module
q.js must not have the string "es6". I’d rather not place bets on what Node.js / ES6 module interoperability is going to look for the next ten years.

I would like to reserve a veto on the change if I see something alarming that I haven’t thought about.

Sounds reasonable to me and don't see any issues hitting all those targets.
On Tue, Feb 20, 2018 at 11:55 AM Kris Kowal<EMAIL_ADDRESS>wrote:

I do not have strong feelings either one way or the other, provided:

most existing collaborators sign off on the change. If @domenic
https://github.com/domenic or @benjamingr
https://github.com/benjamingr are weakly against the change, I’m
strongly against the change.
no breaking changes
no changes to tests
comprehensive testing in all supported browsers (they go back a long
way)
q.js continues to be usable in all the same environments and
deployment scenarios, including as a script tag, as a Node.js / CommonJS
module, and as an AMD module
q.js must not have the string "es6". I’d rather not place bets on
what Node.js / ES6 module interoperability is going to look for the next
ten years.

I would like to reserve a veto on the change if I see something alarming
that I haven’t thought about.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kriskowal/q/issues/827#issuecomment-366837464, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAjA5Fe5yB3tngtmdmGLnP1KfZP3EZXCks5tWhgSgaJpZM4SLRxM
.

What are the thoughts of the contributors? I would hate to take on this endeavor but don't want to waste time doing so if it's never going to be merged to master.

Honestly, I think promise libraries should aim to put themselves out of business and I hope that in 4 years bluebird, Q and other libraries I maintain don't have as many users. IMO Q played a crucial role in improving how we write code in JavaScript and pushed the web forward - but part of that was paving the way for native promises - which we should probably focus on.
The Chrome (and Firefox, Edge and Safari) team has put a lot of effort into making native promises fast and usable (with long stack traces, performance and instrumentation). I'd recommend involvement in the spec (JavaScript), the engines (V8 or SpiderMonkey) or the platform (Node.js or WHATWG) over writing more promise libraries.
That said - open source in your free time is a "whatever you enjoy working on" deal. If you want to rewrite Q in TypeScript be my guest - Q is very readable compared to native promises or other promise libraries (like bluebird) and I still think it's very useful for educational value. I'm not sure it'll land as "master" but it could be an interesting branch.
On the other hand, if you want to ship Q with a bundled .d.ts file that sounds like a much easier thing to do than a rewrite.


Update Github Actions

Fix  The "master" branch is no longer the default branch name for actions/checkout  warning.

Update setup-python to v2 (default to 3.x on x64).

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Implement CustomOpCompilers for list builtins

Followup to #454. Most of the list ops in .prelude.builtins require custom compilers that handle the fallible outputs of hugr's std.collections ops, or write their own control flow logic.
These are currently compiled to guppylang.unsupported ops.

Tracking issue here https://github.com/CQCL/guppylang/issues/526


fixes #1278 - Improves response time of /v2/tasks and /v2/apps/{appId}/t...

...asks ans adds limit and offset parameters.
The tests have been executed on a GCE 2 vCPU instance with 1,000 running tasks.
/v2/tasks
Before:
time curl -H "Accept: application/json" localhost:8080/v2/tasks >> /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  234k    0  234k    0     0  34984      0 --:--:--  0:00:06 --:--:-- 62134

real	0m6.880s
user	0m0.004s
sys	0m0.004s

After:
time curl -H "Accept: application/json" localhost:8080/v2/tasks >> /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  234k    0  234k    0     0   847k      0 --:--:-- --:--:-- --:--:--  847k

real	0m0.283s
user	0m0.020s
sys	0m0.152s

/v2/apps/{appId}/tasks
Before:
time curl -H "Accept: application/json" localhost:8080/v2/apps/foo/tasks >> /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  212k    0  212k    0     0  23290      0 --:--:--  0:00:09 --:--:-- 65303

real	0m9.342s
user	0m0.000s
sys	0m0.008s

After:
time curl -H "Accept: application/json" localhost:8080/v2/apps/foo/tasks >> /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  212k    0  212k    0     0  1388k      0 --:--:-- --:--:-- --:--:-- 1397k

real	0m0.159s
user	0m0.012s
sys	0m0.048s

Maybe, if implementing paging proves difficult, you could separate out your performance improvement into another patch.

That's what I was thinking about. Maybe we don't need it right now, depends on how we can adjust the frontend code.

That looks great. I am looking forward to a faster and better Marathon! :)
I still would like type annotations on the local vals. If you disagree, I can still merge because it is not that important and probably a matter of taste.


Menu popup

Hello,
It seems like gtk_menu_popup is missing, how to emulate it? Basically I'd like create a right click pop up menu.

Indeed. Strange... cc @gkoz

@EPashkin Could you please provide an example of how to emulate gtk_menu_popup?

@Eilie: I'll add it in the next hours.

@GuillaumeGomez I think we primarily need a simple variant, that only takes the last two parameters.

Well, I finish my patch and then if you find a better way, you can just close it. :)


[Release] Update remove old artifacts release script

I just executed the remove old artifacts release script which also removed the previously created three patch releases for 6.0.2, 7.0.1, 8.0.1.
That's not desirable since those have just been released so I had to revert to an earlier revision.
cc @kou @assignUser @raulcd
Reporter: Krisztian Szucs / @kszucs
Assignee: Kouhei Sutou / @kou
Note: This issue was originally created as ARROW-17294. Please see the migration documentation for further details.

So currently, there's only arrow 11 present under https://dist.apache.org/repos/dist/release/arrow anymore. Whatever the implicit/explicit support policy that's decided, I think it's a bad idea to remove the source release tarballs (we're supporting the last 4 versions in conda-forge -- 5 while we're transitioning to any new version -- and we relied on those URLs so far; I can switch to GH sources, but then what's the point of publishing tarballs at all?).

Could you use https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/arrow-11.0.0/apache-arrow-11.0.0.tar.gz style URL used in our install page instead of direct https://dist.apache.org/repos/dist/release/arrow/ URL. The .../dyn/closer.lua?... style URL is the official URL and it works for all versions. For example: https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/arrow-10.0.1/apache-arrow-10.0.1.tar.gz

Sure. Didn't know that URL style, thanks.

I don't see how this could be introspected though (being dynamic AFAICT), and so I think I'll stay with the github tags.

Sorry. I'm not sure what "introspected" means. Could you explain more?
FYI: Other packaging systems such as Conan, Homebrew and MSYS2 also use the dyn/closer.lua style URL:
Conan:

https://github.com/conan-io/conan-center-index/blob/master/recipes/arrow/all/conandata.yml#L3
See also: https://github.com/conan-io/conan-center-index/pull/14431

Homebrew:

https://github.com/Homebrew/homebrew-core/blob/master/Formula/apache-arrow.rb#L4

MSYS2:

https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-arrow/PKGBUILD#L41

Sorry. I'm not sure what "introspected" means. Could you explain more?

It cannot be taken apart and looked at. Or rather, when I do, I get to https://archive.apache.org/dist/arrow/arrow-10.0.0/, which actually looks way more useful that an url that's dynamically constructed (which is harder for the bots, harder for reproducibility -- even if you promise it --, etc.).
I don't speak for the other packaging systems, but I will always prefer source urls that are as simple possible (i.e. non-magical, not dynamically constructed...), and so I'd always take https://github.com/apache/arrow/archive/refs/tags/apache-arrow-{{ version }}.tar.gz or https://archive.apache.org/dist/arrow/arrow-{{ version }}/apache-arrow-{{ version }}.tar.gz over https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/arrow-11.0.0/apache-arrow-11.0.0.tar.gz

Hmm. https://github.com/conan-io/conan-center-index/pull/14431#discussion_r1032700774 thread may help you.

Thanks. But it's not adding new information. Well, except that with the policy of only keeping the last 3 releases online, I've got one more argument for using the GitHub tags.