Use Reselect in baseDux

We should adopt Reselect for these reasons i.e. a summary:

Selectors can compute derived data, allowing Redux to store the minimal possible state.
Selectors are efficient. A selector is not recomputed unless one of its arguments changes.
Selectors are composable. They can be used as input to other selectors.

Some inspiration maybe: https://github.com/onaio/reveal-frontend/blob/7008a0460159b8b45c50acaf22a7b4571fd941cc/src/store/ducks/README.md


add F13-F19

via Reddit

[ ] F13
[ ] F14
[ ] F15
[ ] F16
[ ] F17
[ ] F18
[ ] F19

I was told that this option relies on not using the key bind to position flag so it's probably nearly impossible as this would require knowing every keyboard layout.

As #9 seems to be fixed soon this might be possible to do.

Should be fixed by 53085f0e6d34f85953feedd824d8c205cd9190c8.


Fixes #9 - Adds modal popup to show full long values

Initial work to make a basic MessageBox show when pressing Enter in the list box.
I want to add validation that the SelectedIndex is within the bounds of Source so leaving Draft for now.

On the side note, do you think removing Filter (Contains/Regex) combobox and turning that into something like a /r prefix in Keys Filter is better? Just so it doesn't end up trimmed like in your screenshot?

On the side note, do you think removing Filter (Contains/Regex) combobox and turning that into something like a /r prefix in Keys Filter is better? Just so it doesn't end up trimmed like in your screenshot?

Hmn I guess if theres only 2 options I would make it a checkbox.  Contains is implied because its a filter.  Regex is an option that can be enabled so hence checkbox seems right.

[x] Regex

Thanks! I will upload a new version tomorrow.


Error when attempting to get a response from LLM.

I loaded Openai with min. credits and have GPT-4, getting this message:
Error when attempting to get a response from LLM.
Error code: 404 - {'error': {'message': 'The model gpt-4 does not exist or you do not have access to it. Learn more: https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}

Great to hear that the issue is resolved for you.
Share the solution for benefit of the whole community.

how did you fix it?can you tell me?i have same problem .


chore: update codeowners

@kgpayne mind update the PR message to include something a bit descriptive? Just something as simple as "update webapp owners" would be fine. Had to look pretty closely to pick up what was actually changing 😁


Optimize the process of downloading kind in ofn demo

for fix #58

skip downloading if kind already exists
support to add insecure flag to curl command

Signed-off-by: laminar<EMAIL_ADDRESS>

Thanks for the quick fix !


Support for VK_EXT_depth_clip_control

Would it be possible to support VK_EXT_depth_clip_control? Ryujinx is adding a fix for Legend of Zelda: Tears of the Kingdom that uses this extension.

Why closed?

Why closed?

Metal only supports depth from 0 -> 1


conflict mxnet version hint

For bugs or installation issues, please provide the following information.
The more information you provide, the more likely people will be able to help you.
Environment info
Operating System: Ubuntu-16.04
Package used (Python/R/Scala/Julia): Python
MXNet version:0.11.0
Or if installed from source: yep
If you are using python package, please provide
Python version and distribution: anaconda2-4.4.0
Error Message:
Please paste the full error message, including stack trace.
After finishing compiling mxnet-0.11.0 from source, I use the command "cd python; pip install -e ." to install mxnet egg for python. The output is "Installing collected packages: mxnet
Running setup.py develop for mxnet
Successfully installed mxnet-0.10.1", while the return sting of the command "mxnet.version" is '0.11.0'
Steps to reproduce
or if you are running standard examples, please provide the commands you have run that lead to the error.

git clone --recursive https://github.com/apache/incubator-mxnet.git
make
cd python; pip install -e .

Is it possible that a stale egg folder happens to be in the current working directory?

@szha Thank you. I have created a pure docker environment and repeat operations above. I was wrong. Everything is ok now.


Pylance incorrect typecheck on openpyxl worksheet ws["A1"]

 Environment data

Language Server version: 2023.2.30
OS and version: win32 x64
Python version 3.11.2:
python.analysis.indexing: true
python.analysis.typeCheckingMode: basic

from openpyxl import load_workbook
wb = load_workbook("c:/temp/file.xlsx")
ws = wb["Sheet1"]
x = ws["A1"]
Results in "__getitem__" method not defined on type "Chartsheet" for the last line.  However, this code is correct.  See https://openpyxl.readthedocs.io/en/latest/tutorial.html and openpyxl.worksheet.py which includes def __getitem__(self, key).  Also, mypy --strict does not report an error.

I'm not able to repro the problem you're reporting. The openpyxl library is an untyped library (i.e. it contains no "py.typed" marker and does not include inlined type annotations, but there are minimal (admittedly incomplete) type stubs for the library included in typeshed and therefore also bundled with pylance.
If you right click on load_workbook and choose "Go To Declaration", where does VS Code take you? In my case, it takes me to a stub file called stubs/openpyxl/openpyxl/reader/excel.pyi.
The stub defines load_workbook as follows:
def load_workbook(filename, read_only: bool = ..., keep_vba=..., data_only: bool = ..., keep_links: bool = ...): ...

Note that the return type is missing, so pylance will use Any as the return type here.

Right clicking on load_workbook and choosing Go To Declaration takes me to Lib/site-packages/openpyxl/reader/stubs/excel.pyi which defines load_workbook with a return type Workbook.  I uninstalled this file (openpyxl-stubs) and the Pylance error went away.
I am now getting mypy errors, but I guess that's not Pylance's problem?
Skipping analyzing "openpyxl": module is installed, but missing library stubs or py.typed marker
See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Seems my choices are to satisfy Pylance or satisfy mypy.

You should not need to install an external stub package in this case. As I mentioned above, the openpyxl stubs are included in typeshed, and pylance bundles the typeshed stubs with it.
It looks like you're using a version of openpyxl that includes some stubs. I suspect that's an older version of the library. Have you tried installing the latest version (pip install openpyxl --upgrade)?
If you're looking for static type checking capabilities, you don't need to use mypy. Pylance can provide that as well because it is built on pyright, Microsoft's open-source Python type checker. Simply set typeCheckingMode to "basic". If you want to run static type checking in your CI script, you can do that as well.

To clarify, I am using the latest version of openpyxl.  I used to use mypy before switching to Pylance.  I installed openpyxl-stubs, as it was necessary for running mypy without errors. I regularly update both files.
I've been getting the Pylance error message for some time, but finally got annoyed enough to post today.  I ran mypy as a check to see if it found any errors. It's now clear what is happening.
It would be nice if Pylance could do actual type checking on openpyxl, rather than using Any.  Any seems indistinguishable from no type checking. 😛 I hope this doesn't come across as argumentative.

Pyright (the type checker that underlies pylance) is able to infer types from Python code, but it does this only in cases where type stubs are not present. Inferring types is costly and can be error prone. If pyright sees that there's a type stub present, it assumes that the stub is the unambiguous source of truth for type information for that module. You're encountering an unfortunate situation where a type stub is present, but the stub is woefully incomplete and is probably doing more harm than good.
Something for you to consider... you could consider contributing improvements to the openpyxl type stub in typeshed. This would benefit the entire Python community regardless of which type checker or language server they're using.


Invalid Config: The following components and platforms could not be set up:  hassio

I have the following error notification in HASS.IO

Invalid Config: The following components and platforms could not be set up: hassio
Please check your config.

and the Hass.io tab does not appear.
This problem seems to be related to Zone 2 on my Yamaha Receiver, it was working prior to my update to 0.78.3
Version
Hass.io 0.78.3 on Raspberry Pi 3
Last known working version:
0.77.3 - intermediate revisions not tested
Errors in log:
Update for media_player.yamaha_receiver_zone_2 fails

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 224, in async_update_ha_state
yield from self.async_device_update()
  File "/usr/local/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 353, in async_device_update
yield from self.hass.async_add_job(self.update)
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/media_player/yamaha.py", line 187, in update
self._sound_mode = self.receiver.surround_program
  File "/usr/local/lib/python3.6/site-packages/rxv/rxv.py", line 296, in surround_program
response = self._request('GET', request_text)
  File "/usr/local/lib/python3.6/site-packages/rxv/rxv.py", line 139, in _request
response = ET.XML(res.content)  # releases connection to the pool
  File "/usr/local/lib/python3.6/xml/etree/ElementTree.py", line 1315, in XML
return parser.close()
  File "<string>", line None
xml.etree.ElementTree.ParseError: no element found: line 1, column 0

and
Invalid XML returned for request <YAMAHA_AV cmd="GET"><Zone_2><Surround><Program_Sel><Current>GetParam</Current></Program_Sel></Surround></Zone_2></YAMAHA_AV>: b''
`
Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/rxv/rxv.py", line 139, in _request response = ET.XML(res.content) # releases connection to the pool File "/usr/local/lib/python3.6/xml/etree/ElementTree.py", line 1315, in XML return parser.close() File "<string>", line None xml.etree.ElementTree.ParseError: no element found: line 1, column 0`

I worked round this issue by adding
 zone_ignore:
      - "Zone_2"

to my configuration.yaml file
Many thanks,
Justin

/move home-assistant/home-assistant


NullPointerException at spotbugs annotation

The format of the spotbugs may not be considered.
Currently the code parse BugInstance -> SourceLine, but sometime spotbug will generate BugInstance ->  Field -> SourceLine.
Error log
java.lang.NullPointerException
	at io.jenkins.plugins.codeInsights.domain.SpotBugsAnnotationProvider.convert(SpotBugsAnnotationProvider.kt:21)
	at io.jenkins.plugins.codeInsights.usecase.AnnotationUsecase.execute(AnnotationUsecase.kt:36)
	at io.jenkins.plugins.codeInsights.KotlinEntryPoint.delegate(KotlinEntryPoint.kt:68)
	at io.jenkins.plugins.codeInsights.CodeInsightsBuilder.perform(CodeInsightsBuilder.java:76)
	at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:101)
	at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:71)
	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

thank you for reporting

Yes, you're right.
I checked xml you gave, and realized some SourceLine tag right under BugInstance doesn't have start line information, but ones right under Class, Type, etc. have it instead.
I'll modify the source code to check those tags when one right under BugInstance doesn't have the info.

I changed my mind.
I guess just SpotBugs found what is bad but couldn't find where is bad.
In this case, it is better to show the error massage on the top position of file in PR view

Ah, I got it.
Thank you 😌


As a student who has questions about modules, I want to have consolidated information about who to contact in SOC

so that I know where and who to ask for help.

Decided not useful for the application.


Supply layout template for other languages (Rails, Python...)

When implementing the Design System in a Rails app, I am able to include the assets (CSS, JS, fonts, images) easily enough, but the only layout file supplied is template.njk so I have to manually create views/layouts/application.slim myself, and then it will degrade over time and need to be recreated when the system is updated.
It would be ace to have a slim or perhaps just erb version of the template for Rails apps.

We've made an initial decision to just support HTML and Nunjucks centrally. However I think this issue is useful for the community to discuss the issue of supporting other languages, for example other teams might want to maintain official ports of the template to other languages.

This decision record is also useful context here as it details what was done in alpha and some of the challenges we've identified: https://github.com/alphagov/govuk-design-system-architecture/blob/master/decision-records/003-templating-languages.md

If anyone's looking for a Python solution - I've now got fully working Jinja2 versions of all the govuk-frontend Nunjucks macros. I'm looking to get them published to PyPi but that will take a little bit of time while I jump over various hurdles to get the code published (hopefully not insurmountable, mostly just matters of approval, and sorting out a release process to keep them up to date and tested), but in the meantime just give me a shout and I can help set it up. What I've done is write a script that converts from Nunjucks to Jinja2 (Since they are "similar"). I've popped the script in this Gist:
https://gist.github.com/andymantell/8b1bb037341f38990a4d019894abd83e
The idea is that the Gulp task grabs the files it needs directly from the version of govuk-frontend that is in your node_modules directory so the templates will always be in step with the govuk-frontend css/js. It's unlikely to work for anyone exactly as is, but the core of it is fine. You'd need to get it loaded into your Gulp setup, or convert it to something else if you aren't using Gulp. And there are some specific things in there around paths etc that would need adjusting to your situation. (For example, the script assumes that your templates are loaded with jinja's PrefixLoader set to app/)
Once this is done, you can use the nunjucks examples from the design system pretty much as is, except you will need to quote the keys in the dicts when you invoke the macros.
In addition to this - I am currently working on a set of macros that make it easier to pipe flask-wtf forms directly into the govuk-frontend macros. Mostly just a case of mapping the pieces of the form object to the correct part of the govuk params.
All this comes with the caveat that none of this is tested or used in production yet - I'm just getting it set up for teams to use so I can't guarantee that there aren't issues.

@andymantell I’d be interested to know how you get on with this approach. I’m looking at doing a similar thing, but for twig in PHP. Just seeing if it’s a viable option.
Did you look into using https://github.com/shawnbot/meta-template at all to do the file conversion?

Hi @leonk,
The script I've pasted is fully working so in terms of viability I think it's a goer. I'm happy that the templates are working correctly, barring any edge case bugs.
I did look meta-template briefly but the readme file suggested it was quite early days so I didn't pursue it. I proceeded on the assumption that Jinja and Nunjucks were similar enough that a few string replacements would do the trick (true => True, quoting object/dict keys etc). The reality turned out to be a little more painful than I realised, but what I've done still mostly amounts to relatively simple string manipulation. The regular expressions got a bit gnarly, but conceptually the transformations weren't complicated. A lot of the differences (particularly the more annoying ones) were the result of the behaviours of the underlying language. And one that was probably either a bug in Jinja or a bug in Nunjucks, because the GOV.UK Nunjucks implementation just did not work whatever I did (The bit where each component macro simply includes an include, and expects the params to still be there)
Given that Twig is inspired by Jinja (And actually written by the same guy) you might well get away with a similar process. Basically I kept adding lines to my script until Python stopped throwing errors.
Give it a go :-)

Hi @axemonkey
Thanks for raising this.
Our team understand that there's interest in multiple templating language versions of Template.
I think we asked you to raise this issue with the intention of having the relevant questions asked/resources shared recorded somewhere but on second thought an issue in GOV.UK Frontend is probably not the best place to do this.
As discussed in our decision record this work is, for various reasons, not something that our team is looking to do at this time.
For that reason we're going to close this issue but the conversations on it have been logged in our backlog.
We'd definitely like to have a better way of sharing the resources that come from the community (like @andymantell's Jinja port) and the related discussions, but we're not sure what the best format is for this yet – hopefully this is something we'll be able to explore soon.
Thanks again for taking the time to raise the issue and also to others who've commented on this issue.
Hanna

Some of the ports made have been collected here: https://github.com/tijmenb/design-system-community-resources


New version: PkgTemplates v0.6.4

Registering package: PkgTemplates
Repository: https://github.com/invenia/PkgTemplates.jl
Created by: @christopher-dG
Version: v0.6.4
Commit: c04a64b4c465ab6623c5ca1baa8a858c6b1b6f82
Reviewed by: @christopher-dG
Reference: https://github.com/invenia/PkgTemplates.jl/commit/c04a64b4c465ab6623c5ca1baa8a858c6b1b6f82#commitcomment-37266235
Release notes:

The default Travis CI template has been updated to work properly after a deprecation by Travis. (#132, #134)

@christopher-dG

:sweat_smile:  I think this is actually kind of a bug with the TagBot App because this release is not on the master branch, and I do have the Action installed on master. But that's an edge case I'm not really willing to fix in the App haha.


JsonInheritanceConverter adds discriminator without checking for its pre-existence

When trying to use inheritance where the discriminator already exists on the object definition, the templated inheritance converter doesn't check for it. Simple one-line if check would fix this I believe.
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
{
  try
  {
    _isWriting = true;

    var jObject = Newtonsoft.Json.Linq.JObject.FromObject(value, serializer);
    if(!jObject.ContainsKey(_discriminator)) // Add this gate
      jObject.AddFirst(new Newtonsoft.Json.Linq.JProperty(_discriminator, GetSubtypeDiscriminator(value.GetType()))); // gate this line
    writer.WriteToken(jObject.CreateReader());
  }
  finally
  {
    _isWriting = false;
  }
}

Please note, the above is currently untested.

Although, the ContainsKey is case sensitive, and I'm not entirely sure if JObject.AddFirst is case-sensitive. So this maybe a factor in considering the solution.

I’d say it’s a “bug” if the discriminator is already set. What is the scenario here?

We have address objects, UKAddress, OverseasAddress and more, they all extend Address. They are differentiated by a property called AddressType, which we intend to be the discriminator.
The way the contract generation has happen, and the code-gen has happened on the other side, we get an Address object with no properties and several specialisations of address, each with an AddressType, and annoyingly each with their own version of the enumeration for AddressType.


Cannot read properties of undefined (reading 'list')

Hello, I just noticed my Homebridge install crashed due to an Error with the plugin.
Below is a log, has anyone got this error before? I am also using the API 2.5.
Is it possible to catch this error and handle it gracefully so it doesn't cause the home bridge to crash?
[04/09/2023, 20:29:25] TypeError: Cannot read properties of undefined (reading 'list')     at /var/lib/homebridge/node_modules/homebridge-weather-plus/apis/openweathermap.js:108:46     at Request._callback (/var/lib/homebridge/node_modules/homebridge-weather-plus/apis/openweathermap.js:406:5)     at self.callback (/var/lib/homebridge/node_modules/homebridge-weather-plus/node_modules/request/request.js:185:22)     at Request.emit (node:events:513:28)     at Request.onRequestError (/var/lib/homebridge/node_modules/homebridge-weather-plus/node_modules/request/request.js:877:8)     at ClientRequest.emit (node:events:513:28)     at TLSSocket.socketErrorListener (node:_http_client:502:9)     at TLSSocket.emit (node:events:513:28)     at emitErrorNT (node:internal/streams/destroy:151:8)     at emitErrorCloseNT (node:internal/streams/destroy:116:3) [04/09/2023, 20:29:25] Got SIGTERM, shutting down Homebridge... [04/09/2023, 20:29:30] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null [04/09/2023, 20:29:35] [HB Supervisor] Restarting Homebridge... [04/09/2023, 20:29:35] [HB Supervisor] Starting Homebridge with extra flags: -I -P /var/lib/homebridge/node_modules --strict-plugin-resolution [04/09/2023, 20:29:35] [HB Supervisor] Started Homebridge v1.6.1 with PID: 9237

Looking at the code, without reproducing it myself, this does definitely look like a bug.
In the update(forecastDays, callback) function in openweathermap.js, it tries to fetch the current forecast with the 2.5 API:
// Old api requires an extra call to get the forecast
if (this.api === "2.5")
{
	this.getWeatherData(this.apiBaseURL + "/data/2.5/forecast", (error, result) =>
	{
		this.generateForecasts(weather, result["list"], result["city"]["timezone"], callback);
	});
}

In the function getWeatherData(), if there is a requestError it calls the callback with a null result object, aka callback(requestError);
Then when it tries to process the response:
this.generateForecasts(weather, result["list"], result["city"]["timezone"], callback);
it does not take into account that an error may have occurred and the result object is null.

I  have a fix that would handle this error gracefully, aka log it and move on.
Can I send you an updated openweathermap.js file to test?

Hello,
I have the same issue that occasionally occurs on version 3.2.11.
I would appreciate the update of the openweathermap.js file to test !
Thank you!

Fixed and landed in #276

Hello thanks so much for the work! I missed the notifications unfortunately. Yes, we can close this now, thanks again!


VSCode: Use log output channel

Stack:

#5015
#5014
#5013
#5012
#5011
#4976
#4975
#4974
#4973
#4959
#4935 ⬅
#4934

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.


Forward compat with StencilKernel

This is the first step to make out Julia framework compatible with master instead of some unmaintainable (for me) branch.
Input gladly accepted, not much change to devito itself, only a few extra functions/conditions

pushed a commit that does most of the stuff in the branch stencil-kernel-basic

And just doing it here would have been to simple?
This PR is not a bout pretty. We NEED this to run devito and work with it here and I'm not gonna wait a month and tell people, oh no it's not pretty enough so find something else. It passes every tests, there is nothing wrong with the code and a lot of the comments are nitpicking.

And just doing it here would have been to simple?

Mmhh...let me think. Why did I not do that? Why do branches even exist? Not sure

This PR is not a bout pretty. We NEED this to run devito and work with it here and I'm not gonna wait a month and tell people, oh no it's not pretty enough so find something else. It passes every tests, there is nothing wrong with the code and a lot of the comments are nitpicking.

I don't blame you, one day you'll understand that this wasn't about prettiness and that "it works != it's correct" (just like maths btw).
Now, back to the PR.
I worked on this a little more and pushed a new commit into this branch (as it seemed you prefer). The commit counts lots of edits but most of them is actually just shuffling code around. Please, take a look and review. I changed a few names and a few interfaces: now from Julia you should call compile (rather than cfunctionJ and arguments (rather than arguments_list). arguments returns two values, but probably you guys just care about the first one. Can you do the rest of the surgery in Julia and let me know how I can help to fix/improve any outstanding issues? I clearly care as much as you do about merging this ASAP!
Oh, I was about to forget: if you call arguments with an empty kwargs you should get exactly the same behaviour that you originally encoded in arguments_list. This simple tweak, plus method overloading, allowed me to capture lots of duplicated code.
Let me know how this goes.

Again, I forgot.
Just pass the special keyword external to obtain an Operator that doesn't do C-level profiling (i.e., Stencilkernel(..., external=True)). This is just a temporary hack. When we'll have a global configuration mechanism, this probably won't even be needed.

Well, nothing work anymore, I guess back to a week of debuging.

OrderedDict are unusable with Julia ...

This shouldn't be a big deal, I'll take a look today

The compile function only gives back the library name and I need the Kernel name too.

Is the function name essentially stencilkernel.name ? if so, can you get it from there ?

I'm also wondering ( @mlange05 ) how could we write a test to stress the Julia interface and make sure that when we touch StencilKernel, we don't break it

@mloubout Take a look at the latest commit, which adds a special class for Julia support. Now you should automatically get a list of tuples as in your original design

@FabioLuporini All good and works. Thanks a lot.

@mlange05 are you happy with this? I think we can rebase on master and merge, if you are OK with the latest changes

Apart from the basename property question this looks good to me. Certain parts of the argument handling need a re-think maybe, but that is beyond this PR (and in fact is made easier through this). So, good to go from me.

Alright, I just rebased this on top of master. If Travis is happy, I'll merge it.

Merged.


The baseline LCF-GloVe model

Hi,
Thanks for presenting the implement of LCF-BERT model, could you share the code of LCF-GloVe model , too? It will benefit the community.

Added.


Finalize a few critical to implementations changes to specs

Overview
I've reviewed specs issues and found a few critical things to our starting multi-language work on JTS and DP implementations. I suppose this proposals should be merged/rejected as soon as possible:

[ ] Merging path and url - https://github.com/frictionlessdata/specs/issues/250
[ ] Cache - https://github.com/frictionlessdata/specs/issues/243 (added)
[ ] Remove 'fmt:' prefix - https://github.com/frictionlessdata/specs/issues/260
[x] Enum constraint exact matching - https://github.com/frictionlessdata/specs/issues/221
[x] Multiple urls for resource - https://github.com/frictionlessdata/specs/issues/247

@rgrp see above.

Ack and note existing issue https://github.com/frictionlessdata/project/issues/241 - something of a duplicate of this one or vice-versa.
@pwalsh the real blocker here is a proper conversation with you to resolve these one way or the other.

Closing it because now we track specs repository on the FD board so this issue is just a duplicate of:

Merging path and url - frictionlessdata/specs#250
Cache - frictionlessdata/specs#243 (added)
Remove 'fmt:' prefix - frictionlessdata/specs#260


added Mosab's solution

Interestingly, pass by reference for the numbers array makes the STDEV shoot up to 57%. Pass by reference makes it 19%

Make sure to add your solution to the tests file :)

Fixed haha - forgot to do git add  :see_no_evil:

:ship: :it:


Retry-Time is actually 4:30 instead of 5 Minutes.

Describe the bug
E-Mails that bounced without the server answering a retry-time will be requeued after 4:30 instead of 5 Minutes, because there is a query here, that returns retry_after - 30 seconds.
Ref.: https://github.com/postalserver/postal/blob/main/app/models/queued_message.rb#L39
To Reproduce
Send an E-Mail that bounces, let it requeue and look at the timestamps in the deliveries table.
Expected behaviour
Requeues should only happen after 5 minutes have passed.

Thank you for reporting this. It should be fixed by c8d27b2963af122d6555abdf0742d2d2d6f11ce5


unexpected error using jit over a function that uses a local variable on numba 0.35.0 python 3.5

Hello, everybody,
I found an unexpected behavior in numba 0.35.0 (python 3.5.4 and numpy 1.13.3) or at least interesting to take in account. I have tried to explain this through the following examples:
from numba import jit
import numpy as np

@jit
def foo1():
    a = np.empty(10, dtype=float)

foo1() # works

@jit
def foo2():
    a = np.empty(10, dtype=float)
    for i in range(5):
        pass
    return i  # or do something with i

foo2() # fails

@jit
def foo3():
    a = np.empty(10, dtype=np.float64)  # notice that use numpy.float64
    for i in range(5):
        pass
    return i  # or  do something with i

foo3() # works

@jit
def foo4():
    a = np.empty(10, dtype=float)
    i = 0
    for i in range(5):
        pass
    return i  # or do something with i

foo4() # works

I'm not an expert, but it seems to be something related with name scope or block scope of C.

I ran into the same problem.
A numba function which contains this code always returns -1. Its almost as if best_index is never altered at all by the inner loop.
best_index = -1
best_distance_to_quantile = 10000
for i in range(0, len(predicted_probability_1)):
    distance_to_quantile = np.abs(quantile[i] - (predicted_probability_1[i] * 100))  # By 100 as quantile is a percent, probability is a fraction.
    if distance_to_quantile < best_distance_to_quantile:
        best_distance_to_quantile = distance_to_quantile
        best_index = i
    return i

@mmngreco thanks for the report. I can reproduce. Liveness analysis is failing for foo2() as i is not in the live variables at return time.

@sharpe5 thanks for your comment. Please could you provide a full minimal working reproducer so we can check if the underlying the issue is the same, thanks.

Try this code:
@numba.jit
def numba_bug(quantile: numba.float32[:], predicted_probability_1: numba.float32[:]) -> pd.Series:
    """
    Intent: helper function to pick the expert quantile for each prediction.
    """
    # best_index = -1 # Bug in numba: as soon as a variable is marked as global, modifications in inner scope have no effect.
    best_distance = 10000
    for i in range(0, len(predicted_probability_1)):
        distance_to_quantile = 4
        if distance_to_quantile < best_distance:
            best_distance = distance_to_quantile
            best_index = i
    # print(i)
    # print(best_index)
    # print(quantile[best_index])
    return pd.Series([quantile[best_index]], index=['Quantile'])

df = numba_bug_2(quantile=[20, 30, 70, 80], predicted_probability_1=[.1, .2, .3, .4])
df.head()

If we comment out @numba.jit, we get:
Out[37]:
Quantile    20
dtype: int64

If we include @numba.jit, we get:
 @numba.jit
def numba_bug_2(quantile: numba.float32[:], predicted_probability_1: numba.float32[:]) -> pd.Series:
    """
    Intent: helper function to pick the expert quantile for each prediction.
    """
    # best_index = -1 # Bug in numba: as soon as a variable is marked as global, modifications in inner scope have no effect.
    best_distance = 10000
    for i in range(0, len(predicted_probability_1)):
        distance_to_quantile = 4
        if distance_to_quantile < best_distance:
            best_distance = distance_to_quantile
            best_index = i
    # print(i)
    # print(best_index)
    # print(quantile[best_index])
    return pd.Series([quantile[best_index]], index=['Quantile'])
df = numba_bug_2(quantile=[20, 30, 70, 80], predicted_probability_1=[.1, .2, .3, .4])
df.head()
Traceback (most recent call last):
  File "C:\Python36\lib\site-packages\numba\errors.py", line 491, in new_error_context
    yield
  File "C:\Python36\lib\site-packages\numba\lowering.py", line 216, in lower_block
    self.lower_inst(inst)
  File "C:\Python36\lib\site-packages\numba\objmode.py", line 65, in lower_inst
    value = self.lower_assign(inst)
  File "C:\Python36\lib\site-packages\numba\objmode.py", line 159, in lower_assign
    return self.lower_expr(value)
  File "C:\Python36\lib\site-packages\numba\objmode.py", line 339, in lower_expr
    index = self.loadvar(expr.index.name)
  File "C:\Python36\lib\site-packages\numba\objmode.py", line 520, in loadvar
    assert name in self._live_vars, name
AssertionError: best_index
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Python36\lib\site-packages\IPython\core\interactiveshell.py", line 2910, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-40-0a87e177be5b>", line 19, in <module>
    df = numba_bug_2(quantile=[20, 30, 70, 80], predicted_probability_1=[.1, .2, .3, .4])
  File "C:\Python36\lib\site-packages\numba\dispatcher.py", line 360, in _compile_for_args
    raise e
  File "C:\Python36\lib\site-packages\numba\dispatcher.py", line 311, in _compile_for_args
    return self.compile(tuple(argtypes))
  File "C:\Python36\lib\site-packages\numba\dispatcher.py", line 618, in compile
    cres = self._compiler.compile(args, return_type)
  File "C:\Python36\lib\site-packages\numba\dispatcher.py", line 83, in compile
    pipeline_class=self.pipeline_class)
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 871, in compile_extra
    return pipeline.compile_extra(func)
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 365, in compile_extra
    return self._compile_bytecode()
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 802, in _compile_bytecode
    return self._compile_core()
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 789, in _compile_core
    res = pm.run(self.status)
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 251, in run
    raise patched_exception
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 243, in run
    stage()
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 436, in stage_objectmode_frontend
    cres = self.frontend_looplift()
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 426, in frontend_looplift
    lifted=tuple(loops), lifted_from=None)
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 885, in compile_ir
    lifted_from=lifted_from)
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 373, in compile_ir
    return self._compile_ir()
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 809, in _compile_ir
    return self._compile_core()
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 789, in _compile_core
    res = pm.run(self.status)
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 251, in run
    raise patched_exception
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 243, in run
    stage()
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 650, in stage_objectmode_backend
    self._backend(lowerfn, objectmode=True)
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 626, in _backend
    lowered = lowerfn()
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 599, in backend_object_mode
    self.flags)
  File "C:\Python36\lib\site-packages\numba\compiler.py", line 1016, in py_lowering_stage
    lower.lower()
  File "C:\Python36\lib\site-packages\numba\lowering.py", line 135, in lower
    self.lower_normal_function(self.fndesc)
  File "C:\Python36\lib\site-packages\numba\lowering.py", line 176, in lower_normal_function
    entry_block_tail = self.lower_function_body()
  File "C:\Python36\lib\site-packages\numba\lowering.py", line 201, in lower_function_body
    self.lower_block(block)
  File "C:\Python36\lib\site-packages\numba\lowering.py", line 216, in lower_block
    self.lower_inst(inst)
  File "C:\Python36\lib\contextlib.py", line 99, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\Python36\lib\site-packages\numba\errors.py", line 499, in new_error_context
    six.reraise(type(newerr), newerr, tb)
  File "C:\Python36\lib\site-packages\numba\six.py", line 659, in reraise
    raise value
numba.errors.LoweringError: Failed at object (object mode frontend)
Failed at object (object mode backend)
best_index
File "<ipython-input-40-0a87e177be5b>", line 16:
def numba_bug_2(quantile: numba.float32[:], predicted_probability_1: numba.float32[:]) -> pd.Series:
    <source elided>
    # print(quantile[best_index])
    return pd.Series([quantile[best_index]], index=['Quantile'])
    ^
[1] During: lowering "$48.5 = getitem(value=quantile, index=best_index)" at <ipython-input-40-0a87e177be5b> (16)
-------------------------------------------------------------------------------
This should not have happened, a problem has occurred in Numba's internals.
Please report the error message and traceback, along with a minimal reproducer
at: https://github.com/numba/numba/issues/new
If you need help writing a minimal reproducer please see:
http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports
If more help is needed please feel free to speak to the Numba core developers
directly at: https://gitter.im/numba/numba
Thanks in advance for your help in improving Numba!

Thanks @sharpe5. What you report is a similar but tiny bit different issue, root cause is the same though, best_index is considered local/dead as it doesn't escape the lifted loop. As a result the outer scope is not updated/it is considered dead so inaccessible. Setting the decorator to @numba.jit(looplift=False) "fixes" it but at the cost of not having loop lifting.

Thanks for your quick reply. As mentioned in the final two sentences of my
example, it seems odd that everything works fine with or without numba if
quantile[best_index] is returned. Its only if pd.Series is returned
that the problem exhibits itself.
I found that about half of my functions did not return the correct results
if numba was activated, probably as most of them returned pd.Series, so I
ended up commenting numba out altogether.
Having said that, numba is just amazing, and is far more flexible for
interactive computing compared to Cython (which itself excels at producing
fast code within packages). Keep up the good work, I have a huge amount of
respect for the contributors to numba.
On Mon, 4 Jun 2018 15:22 stuartarchibald<EMAIL_ADDRESS>wrote:

Thanks @sharpe5 https://github.com/sharpe5. What you report is a
similar but tiny bit different issue, root cause is the same though,
best_index is considered local/dead as it doesn't escape the lifted loop.
As a result the outer scope is not updated/it is considered dead so
inaccessible. Setting the decorator to @numba.jit(looplift=False) "fixes"
it but at the cost of not having loop lifting.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/numba/numba/issues/2715#issuecomment-394372055, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABOypHi5RVoZsexhWkgVGOsWb3NVFpfVks5t5UJlgaJpZM4R3T29
.

No problem :) Thanks for your support!
The explanation for the behaviour you are seeing is probably due to object mode vs. no python mode, which is explained here. Essentially Numba doesn't "know" about Pandas so it cannot compile your entire function to machine code, instead it tries to work out if it can compile any loops in it and "lift" them out, then run those in machine code and the rest in the interpreter. Unfortunately you hit a bug in loop lifting. To get really good performance, you could isolate your compute into functions that run in no python mode and then just use the results from those in e.g. the pandas Series bit. In the case of your sample this should have the desired effect.
import numba
import pandas as pd
import numpy as np

# this compiles to machine code
@numba.jit(nopython=True)
def npm_function(quantile: numba.float32[:]) -> int:
    best_distance = 10000
    for i in range(0, len(quantile)):
        distance_to_quantile = 4
        if distance_to_quantile < best_distance:
            best_distance = distance_to_quantile
            best_index = i
    return best_index

# standard python interpreter function to make the numba call and
# then push the result into a Series
def object_mode_function(quantile: numba.float32[:]) -> pd.Series:
    best_index = npm_function(quantile)
    return pd.Series([quantile[best_index]], index=['Quantile'])

df = object_mode_function(quantile=[20, 1000000])
print(df.head())

Excellent, that explains everything - in general, make life easy for numba
by giving it functions which can be compiled to 100% machine code. Thanks
again!
On Mon, 4 Jun 2018 at 15:57, stuartarchibald<EMAIL_ADDRESS>wrote:

No problem :) Thanks for your support!
The explanation for the behaviour you are seeing is probably due to object
mode vs. no python mode, which is explained here
http://numba.pydata.org/numba-doc/latest/user/performance-tips.html#no-python-mode-vs-object-mode.
Essentially Numba doesn't "know" about Pandas so it cannot compile your
entire function to machine code, instead it tries to work out if it can
compile any loops in it and "lift" them out, then run those in machine code
and the rest in the interpreter. Unfortunately you hit a bug in loop
lifting. To get really good performance, you could isolate your compute
into functions that run in no python mode and then just use the results
from those in e.g. the pandas Series bit. In the case of your sample this
should have the desired effect.
import numbaimport pandas as pdimport numpy as np
this compiles to machine code@numba.jit(nopython=True)def npm_function(quantile: numba.float32[:]) -> int:
best_distance = 10000
for i in range(0, len(quantile)):
    distance_to_quantile = 4
    if distance_to_quantile < best_distance:
        best_distance = distance_to_quantile
        best_index = i
return best_index

standard python interpreter function to make the numba call and# then push the result into a Seriesdef object_mode_function(quantile: numba.float32[:]) -> pd.Series:
best_index = npm_function(quantile)
return pd.Series([quantile[best_index]], index=['Quantile'])

df = object_mode_function(quantile=[20, 1000000])print(df.head())
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/numba/numba/issues/2715#issuecomment-394384813, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABOypEJWazMkfQQPXWkN-UlwBxpN1X9fks5t5Uq1gaJpZM4R3T29
.

Closed by #3230.


Login: Use access-token flow for all auth (even when not using 2FA)

This would make it so we never need to save the username/password in local storage.

@msavy : Note - this appears to work.  Good idea.

Excellent news!

Great news, everyone!


Add chainId, networkId to rest function call data.

Note that before using the chainId, a function server should verify using ain-util's ecVerifySig() that the transaction body, signature, address, and chainId are valid.

Thanks for the fast review! Now merging~

Any issues with unittest btw?


Symlink icons

GitHub has a new feature where they show a different icon for symlinks. I think it'd be great to have in Gitea too.
GitHub example

Gitea example

PR for this: https://github.com/go-gitea/gitea/pull/3826


WIP: Switch to basic CBinding v1 pre-generated approach

@krrutkow After (very) long discussions we have ultimately decided to use Clang.jl-generated bindings (see https://github.com/trixi-framework/P4est.jl/pull/49). Still, thank you very much again for your generous support and efforts to help us make this work.


Move transform boxing out of individual BeamRelNode classes

This removes boilerplate from BeamRelNode, reversing a prior decision to make them vend a PTransform.
I'm not 100% sure this is a great move. It doesn't really change any logic, it just moves ownership of transform boxing into BeamSqlRelUtils.

Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.

R: @apilloud
CC: @akedin
As promised, negative diff size. I'm not really sure this PR is an improvement. I just wanted to do the demonstration that I said I would do.
PRO: the BeamRelNode has less boilerplate
CON: if you call BeamRelNode.implement directly, you get a disorganized graph

Oh, I should say that the diff is deceiving due to indentation. It is actually more like +/- 50 lines. Every implement method is exactly the expand method from the transform class that was deleted.

I've decided I dislike this change.


The gprc Context does not work

The gprc Context because it is backed by thread local.
We should reimplement it using a TaskLocal so the context is passed.

I think we should mention in the docs that it is best to use a Local directly.


Plasma closure size

This is the first step in reducing Plasma's closure size. The main feature is a new technique of wrapping KDE applications. Although the closure is still quite large, this achieves up to a 50% reduction in some cases.

The Travis failure is a hash mismatch in an unrelated package.

@ttuegel I'm getting thousands of file collisions with this PR. All related to icons:
collision between `/nix/store/mv2v338sqzzrkfnxnqj6d7b68qsmamf3-kcalc-16.04.3/share/icons/breeze/actions/16/dialog-tile-clones.svg' and `/nix/store/z84piy2h4n2b4sq00719kr0dcykiglrb-gwenview-16.04.3/share/icons/breeze/actions/16/dialog-tile-clones.svg'
collision between `/nix/store/mv2v338sqzzrkfnxnqj6d7b68qsmamf3-kcalc-16.04.3/share/icons/breeze/actions/16/dialog-transform.svg' and `/nix/store/z84piy2h4n2b4sq00719kr0dcykiglrb-gwenview-16.04.3/share/icons/breeze/actions/16/dialog-transform.svg'
collision between `/nix/store/mv2v338sqzzrkfnxnqj6d7b68qsmamf3-kcalc-16.04.3/share/icons/breeze/actions/16/dialog-xml-editor.svg' and `/nix/store/z84piy2h4n2b4sq00719kr0dcykiglrb-gwenview-16.04.3/share/icons/breeze/actions/16/dialog-xml-editor.svg'
collision between `/nix/store/mv2v338sqzzrkfnxnqj6d7b68qsmamf3-kcalc-16.04.3/share/icons/breeze/actions/16/dirsync.svg' and `/nix/store/z84piy2h4n2b4sq00719kr0dcykiglrb-gwenview-16.04.3/share/icons/breeze/actions/16/dirsync.svg'
collision between `/nix/store/mv2v338sqzzrkfnxnqj6d7b68qsmamf3-kcalc-16.04.3/share/icons/breeze/actions/16/distribute-horizontal-baseline.svg' and `/nix/store/z84piy2h4n2b4sq00719kr0dcykiglrb-gwenview-16.04.3/share/icons/breeze/actions/16/distribute-horizontal-baseline.svg'
collision between `/nix/store/mv2v338sqzzrkfnxnqj6d7b68qsmamf3-kcalc-16.04.3/share/icons/breeze/actions/16/distribute-horizontal-center.svg' and `/nix/store/z84piy2h4n2b4sq00719kr0dcykiglrb-gwenview-16.04.3/share/icons/breeze/actions/16/distribute-horizontal-center.svg'

I also just noticed huge amounts of collisions like @peterhoeg

Those collisions are harmless because those are links to identical files, but I will fix them in an upcoming PR.

Those collisions are harmless because those are links to identical files, but I will fix them in an upcoming PR.

The excessive collisions are fixed in the branch I merged at 9a295516367eab1505e758ada2f9b1d080c44533.


Questions about subset partitioning strategy in PCTSP

Hello, I have some questions about the subset partitioning strategy when reading your paper and analyzing the relevant code. In the Sampler class in the code, when we divide the number of subsets into a large number, I see a lot of repeated nodes between subsets. In addition, when calculating the penalty, you seem to calculate it based on the global nodes that are not visited in a single subset, which confuses me. According to my understanding, this method seems to be contrary to the traditional idea of subset partitioning, because usually we want the subsets to process some nodes independently, rather than trying to cover all global nodes.

Hi there, thanks for your interest!
Could you please clarify which lines of code you are referring to?

In the Sample file, line 40
visit_mask, depot_mask = self.update_mask(visit_mask, depot_mask, cur_node, collected_prize)
'''
In this line of code, the updates of visit_mask and depot_mask do not seem to effectively prevent node duplication between subsets. When the total number of nodes is 500 and the number of subsets is 50, the subsets contain the same nodes.
line 57
'''
return (torch.eq(expanded_nodes, expanded_sol)==0).all(dim=1)
'''
and '''gen_penalty(self, solutions, node_penalty) '''function(line 59)
The penalty calculated by the gen_penalty function is based on the global node uncovered situation, rather than the independence of each subset.
In the train.py file, the calculation in line 32(''' objs = eval(subsets, coor, sol_penalty, opts)''') seems to be an independent calculation for each subset. According to your penalty calculation logic, it should be expected that each subset contains all nodes. This confuses me. Thank you very much for your help.

The code generates subsets for PCTSP (GLOP-S). In PCTSP, each subset is an independently sampled subsetting solution, i.e. the to-visit nodes.


Repair seems to cause excessive removals when there's a custom target

Confirming the behaviour reported at https://forums.freebsd.org/post-542233

edit /usr/local/etc/gitup.conf for ports to target "/tmp/ports"
gitup ports
du -hs /tmp/ports
result: 814 M
gitup -r ports
du -hs /tmp/ports
result: 4.0 K

Additional context for my case:
% pkg info -x gitup
gitup-0.96
% uname -aKU
FreeBSD mowa219-gjp4-8570p-freebsd 14.0-CURRENT FreeBSD 14.0-CURRENT #115 main-n250650-ef396441ceb: Sat Nov 13 23:52:09 GMT 2021     root@mowa219-gjp4-8570p-freebsd:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG  amd64 1400041 1400041
% cat /usr/local/etc/gitup.conf
# $FreeBSD$
#
# Default configuration options for gitup.conf.
{
        "defaults" : {
                "host"           : "git.freebsd.org",
                "port"           : 443,
                "verbosity"      : 1,
                "work_directory" : "/var/db/gitup",
        },

        "ports" : {
                "repository" : "/ports.git",
                "branch"     : "main",
                "target"     : "/usr/ports",
#               "target"     : "/tmp/ports",
                "ignores"    : [
                        "distfiles",
                        "packages",
                ],
        },

        "poudriere" : {
                "repository" : "/ports.git",
                "branch"     : "main",
                "target"     : "/usr/local/poudriere/ports/default",
                "ignores"    : [
                        "distfiles",
                        "packages",
                ],
        },

        "quarterly" : {
                "repository" : "/ports.git",
                "branch"     : "quarterly",
                "target"     : "/usr/ports",
                "ignores"    : [
                        "distfiles",
                        "packages",
                ]
        },

        "release" : {
                "repository" : "/src.git",
                "branch"     : "releng/11.4",
                "target"     : "/usr/src",
                "ignores"    : [
                        "sys/amd64/conf",
                        "sys/arm64/conf",
                        "sys/i386/conf",
                        "sys/pc98/conf",
                        "sys/powerpc/conf",
                        "sys/riscv/conf",
                        "sys/sparc64/conf",
                ]
        },

        "stable" : {
                "repository" : "/src.git",
                "branch"     : "stable/12",
                "target"     : "/usr/src",
                "ignores"    : [
                        "sys/amd64/conf",
                        "sys/arm64/conf",
                        "sys/i386/conf",
                        "sys/pc98/conf",
                        "sys/powerpc/conf",
                        "sys/riscv/conf",
                        "sys/sparc64/conf",
                ]
        },

        "current" : {
                "repository" : "/src.git",
                "branch"     : "main",
                "target"     : "/usr/src",
                "ignores"    : [
                        "sys/amd64/conf",
                        "sys/arm64/conf",
                        "sys/i386/conf",
                        "sys/pc98/conf",
                        "sys/powerpc/conf",
                        "sys/riscv/conf",
                        "sys/sparc64/conf",
                ]
        }
}
%

the line that I used to perform the test is now commented out.

Sorry about that!  I just pushed out a fix.  How does it look on your end?

Thanks. Sorry, my mind always goes blank at points such as this, what's my mistake below?
% cd gitup
% ls -hl
total 1
-rw-r--r--  1 grahamperrin  grahamperrin   6.1K 24 Nov 23:40 gitup.1.in
-rw-r--r--  1 grahamperrin  grahamperrin    97K 24 Nov 23:40 gitup.c
-rw-r--r--  1 grahamperrin  grahamperrin   1.8K 24 Nov 23:40 gitup.conf
-rw-r--r--  1 grahamperrin  grahamperrin   4.6K 24 Nov 23:40 gitup.conf.5.in
-rw-r--r--  1 grahamperrin  grahamperrin   1.3K 24 Nov 23:40 LICENSE
-rw-r--r--  1 grahamperrin  grahamperrin   637B 24 Nov 23:40 Makefile
-rw-r--r--  1 grahamperrin  grahamperrin   414B 24 Nov 23:40 README.md
% make install
install  -s -o root -g wheel -m 555   gitup /gitup
install: gitup: No such file or directory
*** Error code 71

Stop.
make: stopped in /usr/home/grahamperrin/dev/gitup
%

No worries!  If you do a make instead of make install, you should be able to test it by running ./gitup

At a glance: fixed; thank you.
…
 + /tmp/ports/x11/zenity/pkg-plist
#
# Please review the following file(s) for important changes.
#       /tmp/ports/UPDATING
#       /tmp/ports/mail/dspam/files/UPDATING
#
# Done.
% du -hs /tmp/ports
816M    /tmp/ports
% sudo ./gitup -r ports
grahamperrin's password:
# Scanning local repository...
# Host: git.freebsd.org
# Port: 443
# Repository Path: /ports.git
# Target Directory: /tmp/ports
# Have: c83cbdf5573e365ef37fb7d731ba52dfd6825977
# Want: c83cbdf5573e365ef37fb7d731ba52dfd6825977
# Branch: main
# Done.
% du -hs /tmp/ports
816M    /tmp/ports
%

Thank you for letting me know about this!


kubernetes: Disable IPv6 for real

Commit 5104ff68d429 intended to disable IPv6 for new deployments but kept the
default as-is.
Fixes: 5104ff68d429 ("kubernetes: Disable IPv6 by default for new deployments")

This change is

test-me-please


Custom adapter

Your swipe Action adapter takes only base adapter. any way to add custom adapter?

You custom adapter must inherit from BaseAdapter or it won't be able to do much anyway.
I strongly suggest you read up a bit on the java type system


rename - kuma ui  to something else anon

I kindly request that you consider renaming this sound library to something else: ' kumaas I understand in Japanese meansbearbut that might not be well-received in East Africa and across regions in Africa that speakSwahili`,  little Google search or translation will add more context to this. thank you. ✌

Thank you for bringing this to our attention. Language and cultural differences can indeed be complex in our globalized world. The name ‘Kuma’ was chosen for its significance in Japanese, meaning ‘bear’, symbolizing the strength and reliability that we aim for in our library. Furthermore, in Japan, there are many people named ‘Kuma’, which further indicates the respect and reverence associated with this word in our culture. Changing the name could inadvertently cause distress to these individuals.
We understand that words can have different meanings in different cultures. Please note that any unintended associations or interpretations in other languages are purely coincidental and not reflective of our intentions. We are committed to fostering a respectful and inclusive environment for all users, and we will seriously consider your feedback. We appreciate your understanding and respect for the cultural significance of ‘Kuma’ in Japanese culture, just as we respect the significance of words in other cultures. Your feedback is invaluable in this regard, and we sincerely thank you for it.


Add support for TSLint

Support for TSLint.
.vscode settings to make it easy for vscode users to get tslint.
Add documentation on how to get tslint working for everyone working on the project.

I will work on this

@js-sapphire any update on this?


added snapshot testing which fixes #75

This PR adds snapshot tests for -
createDiscussionRepo.test.js
getCommentsOnIssue.test.js
backgroundFinder.test.js
getUserCommentedIssues.test.js
createDiscussionIssue.test.js
getUserDiscussionIssue.test.js
Test for analyseSentiment.test.js will be covered in next PR otherwise this PR would become larger.

For utilities that wrap Octokit methods (like getUserCommentedIssues), I don't think that you need to add tests like these. You aren't actually testing any logic or functionality - you're just passing an argument, then checking that its been passed (which it always will be).
In getUserDiscussionIssue I see why you might choose to include that test, since you're putting a string together, but I personally wouldn't bother. Test coverage is great, but if it gets in the way of modifying or improving code because the tests are too specific then thats not helpful. You can choose to merge this anyway - I just wanted to make sure you understand the implications of how a long-term project deals with tests 😄
I love the changes to createDiscussionIssue.test.js - this is a great use-case for snapshots. Looking at the generated file gives a good sense of the comment, and its a great way of ensuring that changes to the internals don't mess with the output. Good job! 👍

Thanks for the valuable feedback @jasonetco

I agree with you that tests shouldn't be so rigid that they become a bottleneck for development. I'm going to drop the tests on getCommentsOnIssue.js since it is serving no real purpose. Other github-api methods still have some string manipulation so I'm thinking of keeping the tests for them.


feat(tutorial): complete step 4

Closes #
{{short description}}
Changelog
New

{{new thing}}

Changed

{{change thing}}

Removed

{{removed thing}}

would not compile with this import in LandingPage.js:
import { Application32, Globe32, PersonFavorite32 } from '@carbon/icons-react';
had to name/path them explicitly:
import Application32 from '@carbon/icons-react/lib/application/32'; import Globe32 from '@carbon/icons-react/lib/globe/32'; import PersonFavorite32 from '@carbon/icons-react/lib/person--favorite/32';
I also corrected typos in the info cards - couple it's/its errors, and replaced the ' with ’
@tw15egan or @mattrosno is this why Mergify is complaining?

undid this:

I also corrected typos in the info cards - couple it's/its errors, and replaced the ' with ’

Still failing?

@Mergifyio refresh


Fix azure blob storage access key env not mounted

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #4063

adds optional AZURE_STORAGE_ACCESS_KEY to azure credential env mounting

Type of changes
Please delete options that are not relevant.

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

Feature/Issue validation/testing:
Please describe the tests that you ran to verify your changes and relevant result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[ ] Test A

[ ] Test B

Logs

Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Checklist:

[ ] Have you added unit/e2e tests that prove your fix is effective or that this feature works?
[ ] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

Release note:

Re-running failed tests

/rerun-all - rerun all failed workflows.
/rerun-workflow <workflow name> - rerun a specific failed workflow. Only one workflow name can be specified. Multiple /rerun-workflow commands are allowed per comment.

/lgtm
Can you help to add example to the doc as well.

/approve


KTable binding in Kafka Streams binder

When we do an inbound binding on KTable, currently the deserialization is done by the broker. As a developer, if I choose Spring Cloud Stream to do this deserialization it should be possible to do so.

See https://github.com/msmsimondean/spring-cloud-stream-kafka-streams/blob/master/src/main/java/com/example/analytics/AnalyticsApplication.java#L113 for an example

Starting from 3.0, we default to Kafka Streams provided native Serdes for de/serialization. There is still a way to use the framework serialization for KStream. We haven't encountered a need for providing the same for the table types. Closing the issue.


UnitOfWork.computeChangeSets() expensive on large queries

Describe the bug
This snippet is mimicking an endpoint which is doing a large query, calculating some aggregates then spitting out a stats object, without making any model modifications. My app is setup to auto-flush request forks at the end of each request.
const jobs = await em.find(MyModel, {...}); // returns 3K rows

await em.flush(); // effectively hangs the process

Doing some debugging, it looks like there is a very expensive call happening on all 3K rows and even worse, it loops through each entity identity map, which has a ton of uninitialized References.
https://github.com/mikro-orm/mikro-orm/blob/f09a951d2f4725e631a66e7219483efb1e4437c8/packages/core/src/unit-of-work/UnitOfWork.ts#L286-L291
If I comment out line 289, the response returns in a reasonable amount of time. I believe the problem is there is some recursion going on with the bi-directional mappings, and we are using a new WeakSet<AnyEntity>() on every iteration vs creating a single instance.

I woudn't suggesting flushing each request blindly, there will always be a performance penalty. We need to go thru all entities inside identity map, and we need to cascade, otherwise things simply won't work as they should (e.g. persistence by reachability). I don't think it could be caused by the new WeakSet() call itself (but you could verify that easily, if you see this locally). References that are not initialized should be simply skipped, that shouldn't matter either.
Please provide full reproduction for this if you want me to look into this.

I will need a reproduction for this. Tried it this way but it looks fast enough to me (postgres):
for (let i = 1; i <= 3000; i++) {
  const author = new Author2(`Jon Snow ${i}`, `snow-${i}@wall.st`);
  author.books.add(new Book2('b', author), new Book2('b', author));
  orm.em.persist(author);
}

let now = Date.now();
await orm.em.flush();
console.log(Date.now() - now); // insert 3k authors + 6k books = 650ms
orm.em.clear();

const ret = await orm.em.find(Author2, {}, { populate: ['books'] });
now = Date.now();
await orm.em.flush(); // check all those 9k entities for changes = 100ms
console.log(Date.now() - now);

(and I am running this via ts-jest, so far from production performance)

i'll be able to put a reproduction together later this week.
in the interim, i think you'd have a better change to reproduce if you have at least 3 models, which have bi-directional 1:M and M:1 between them, so:
Author <> Books
Author <> Genre (eg: "Primary Genre")
Book <> Genre
the issue came down to recursion between models, where it would cascade to a collection, and the collection would include a model that was already hit in another model/collection.

Any updates on this? Tried once again, it still looks ok to me, at least in master/v5.
test('perf: complex relations', async () => {
  let now = Date.now();

  for (let i = 1; i <= 3000; i++) {
    const author = new Author2(`Jon Snow ${i}`, `snow-${i}@wall.st`);
    const b1 = new Book2(`b ${i} 1/3`, author);
    const b2 = new Book2(`b ${i} 2/3`, author);
    const b3 = new Book2(`b ${i} 3/3`, author);

    for (let j = 1; j <= 20; j++) {
      b1.tags.add(new BookTag2(`bt ${i} 1/3 ${j}/20`));
      b2.tags.add(new BookTag2(`bt ${i} 2/3 ${j}/20`));
      b3.tags.add(new BookTag2(`bt ${i} 3/3 ${j}/20`));
    }

    author.books.add(b1, b2, b3);
    orm.em.persist(author);
  }

  // creates 3k authors, 9k books and 180k tags in memory
  console.log(Date.now() - now); // ~3s

  now = Date.now();
  await orm.em.flush();

  // flush those 39k entities to database
  console.log(Date.now() - now); // ~17s

  orm.em.clear();
  now = Date.now();
  // load those 39k entities to memory
  const a = await orm.em.find(Author2, {}, { populate: ['books.tags'] });
  console.log(Date.now() - now); // ~9s
  now = Date.now();

  // compute changesets on them
  await orm.em.flush();
  console.log(Date.now() - now); // ~800ms
});

This is with postgres. Calling flush on just the 3k authors, without populating the relations, takes just 50ms. Also tried to put there some m:1 relations (as collections should have no effect unless being populated), still very similar numbers.
The numbers could be better for sure, but given this test is working with almost 200k entities, it seems quite fine to me, most of the time is spend on actual database queries. The initial 3s is quite a lot for constructing the entity graph, but this is caused by the propagation, and again, too many entities in the memory.

Still nothing?
Can't say I am happy having open issue for a month with no actual reproduction.

import {
  BigIntType,
  Collection,
  Entity, Enum,
  IdentifiedReference,
  ManyToMany,
  ManyToOne,
  MikroORM, OneToMany,
  PrimaryKey,
  Property
} from '@mikro-orm/core';
import type { SqliteDriver } from '@mikro-orm/sqlite';

@Entity({ tableName: 'member_relationship'})
export class VendorBuyerRelationshipMikro {
  @PrimaryKey({ type: BigIntType, fieldName: 'id', setter: true })
  id!: string;

  @Property({ fieldName: 'created', onCreate: () => new Date() })
  created!: Date;

  @ManyToOne(() => MemberMikro, { fieldName: 'activeId', wrappedReference: true })
  buyer!: IdentifiedReference<MemberMikro>;

  @ManyToOne(() => MemberMikro, { fieldName: 'passiveId', wrappedReference: true })
  vendor!: IdentifiedReference<MemberMikro>;

  @OneToMany(() => OrderMikro, (o) => o.buyerRel)
  orders = new Collection<OrderMikro>(this);
}

@Entity({ tableName: 'member' })
export class MemberMikro {
  @PrimaryKey({ type: BigIntType, fieldName: 'id', setter: true })
  id!: string;

  @Property({ fieldName: 'created', onCreate: () => new Date() })
  created!: Date;

  @OneToMany(() => MemberMikro, (member) => member.parent)
  children = new Collection<MemberMikro>(this);

  @OneToMany(() => VendorBuyerRelationshipMikro, (rel) => rel.vendor)
  buyers = new Collection<VendorBuyerRelationshipMikro>(this);

  @OneToMany(() => OrderMikro, (order) => order.vendor)
  orders = new Collection<OrderMikro>(this);

  @ManyToOne(() => MemberMikro, { fieldName: 'parentId', wrappedReference: true })
  parent?: IdentifiedReference<MemberMikro>;
}

@Entity({ tableName: 'job' })
export class JobMikro {
  @PrimaryKey({ type: BigIntType, fieldName: 'id', setter: true })
  id!: string;

  @ManyToOne(() => MemberMikro, { fieldName: 'memberId', wrappedReference: true })
  member?: IdentifiedReference<MemberMikro>;

  @ManyToOne(() => OrderMikro, { fieldName: 'orderId', wrappedReference: true })
  order?: IdentifiedReference<OrderMikro>;

  @OneToMany(() => JobMikro, (job) => job.parent)
  children = new Collection<JobMikro>(this);

  @ManyToOne(() => JobMikro, { fieldName: 'parentId', wrappedReference: true })
  parent!: IdentifiedReference<JobMikro>;

  @Property()
  rejected = false;

  @ManyToOne(() => VendorBuyerRelationshipMikro, { fieldName: 'buyerRelId', wrappedReference: true })
  buyer?: IdentifiedReference<VendorBuyerRelationshipMikro>;

  @ManyToOne(() => JobMikro, { fieldName: 'delegateId', wrappedReference: true })
  delegate?: IdentifiedReference<JobMikro>;

  @ManyToOne(() => MemberMikro, { fieldName: 'assigneeId', wrappedReference: true })
  assignee?: IdentifiedReference<MemberMikro>;
}

@Entity({ tableName: 'order' })
export class OrderMikro {
  @PrimaryKey({ type: BigIntType, fieldName: 'id', setter: true })
  id!: string;

  @Property({ fieldName: 'created', onCreate: () => new Date() })
  created!: Date;

  @ManyToOne(() => VendorBuyerRelationshipMikro, { fieldName: 'buyerRelId', wrappedReference: true })
  buyerRel!: IdentifiedReference<VendorBuyerRelationshipMikro>;

  @OneToMany(() => JobMikro, (job) => job.order)
  jobs = new Collection<JobMikro>(this);

  @ManyToOne(() => MemberMikro, { fieldName: 'vendorId', wrappedReference: true })
  vendor!: IdentifiedReference<MemberMikro>;
}

describe('GH issue 2379', () => {
  jest.setTimeout(120000);

  let orm: MikroORM<SqliteDriver>;

  beforeAll(async () => {
    orm = await MikroORM.init({
      entities: [OrderMikro, JobMikro, VendorBuyerRelationshipMikro,MemberMikro],
      dbName: ':memory:',
      type: 'sqlite',
    });
    await orm.getSchemaGenerator().createSchema();
  });

  afterAll(() => orm.close(true));

  test('test cpu issues', async () => {
    const rels = [];

    const vendor = new MemberMikro();

    orm.em.persist(vendor);

    for (let i = 1; i <= 1000; i++) {
      const buyer = new MemberMikro();

      orm.em.persist(buyer);

      const rel = orm.em.create(VendorBuyerRelationshipMikro, {
        vendor,
        buyer
      });

      rels.push(rel);
    }

    for (let i = 1; i <= 3000; i++) {
      const order = orm.em.create(OrderMikro, {
        buyerRel: rels[i % 1000],
      });

      orm.em.persist(order);

      orm.em.create(JobMikro, {
        order,
      });
    }

    // this causes jest timeout error, even when bumped up to 120s
    await orm.em.flush();
    orm.em.clear();

    const jobs = await orm.em.find(JobMikro, { }, { populate: ['order'] });

    await orm.em.flush();
  });

});

this should be able to reproduce it, however i think the same issue exists on insert because it is taking too long on the initial flush. obviously in a real environment, we wouldn't be inserting this much upfront

the solution i've been using for fixing the last query/flush, is to update computeChangeSets(), so that it shares the same visited weakset vs creating a new one on every loop
  computeChangeSets(): void {
    const visited = new WeakSet();
    this.changeSets.clear();

    for (const entity of this.persistStack) {
      this.cascade(entity, Cascade.PERSIST, new WeakSet<AnyEntity>(), { checkRemoveStack: true });
    }

    for (const entity of this.identityMap) {
      if (!this.removeStack.has(entity) && !this.orphanRemoveStack.has(entity)) {
        this.persistStack.add(entity);
        this.cascade(entity, Cascade.PERSIST, visited, { checkRemoveStack: true });
      }
    }

Perfect, thanks!

the solution i've been using for fixing the last query/flush, is to update computeChangeSets(), so that it shares the same visited weakset vs creating a new one on every loop

I was actually thinking about that as well.

So in v5/master, if I use the shared set for visited, it looks all fine, including the final flush.
On my m1 the initial flush takes ~320ms, find takes ~200ms and the final flush takes ~265ms. with v4 there is also issue with calling em.persist(), so it hangs in the initial phase before first flush, in v5 cascading is delayed till flush which fixes this (84b5d1b1b867de7cfa8e1349327dc96b7250d4eb), so I can backport that too.

So I cherry picked the existing fix and added the one with shared visited set to 4.x branch, can you please test it? It is available as ^4.5.10-dev.29

@parisholley Thanks to you, it solves a big performance problem in our case which was hard to reproduce.


Seamless OpenSimplex noise has less contrast than non-seamless noise

Godot version:
3.2.2-stable, Windows & Linux
OS/device including version:
Windows 10, Ubuntu 20.04.1 LTS
Issue description:
When switching between seamless and non-seamless versions of OpenSimplex noise, the contrast changes. Specifically, seamless noise never has a value of 0 or 1. I'm using the values in a shader to look up values in a gradient texture and never get the colours in the extremes to show when using a seamless noise texture.
Steps to reproduce:

Create a Sprite
Under Texture, add a New NoiseTexture
Set the Noise to New OpenSimplexNoise
On the Texture, turn the "seamless" checkbox on and off to see the difference. It's most apparent in the darkest colours of the texture; the seamless version just looks more washed out.

Minimal reproduction project:
N/A

cc @JFonS

seamless noise never has a value of 0 or 1

That's actually extremely rare with noise, or normalized random floats in general.
In the case of OpenSimplex, the base algorithm actually happens to never go beyond 0.87 (computed this empirically with a large for loop).
However, in the case of seamless noise, loss of contrast can happen if it is implemented by mixing several layers together and averaging them, because the probability of all layers tending to the same extreme gets less likely.

@Zylann Adding a multiplier is what I'm resorting to now, it does help make things look better. It's pretty interesting that technically the extremes should still exist, I haven't come across anything that looked like it and am using a LOT of different seeds in my current project.
A possible "solution" could be to add a flag for improving contrast, I can imagine that sometimes users wouldn't want that to happen as the maximum possible difference between two adjacent pixels changes by implementing a multiplier curve.

Is this something we should attempt to fix in 4.0, or should we leave it as-is?

A possible "solution" could be to add a flag for improving contrast

This can be done manually by the user using the Image class (or just taking it into account in their shader).

Is this something we should attempt to fix in 4.0, or should we leave it as-is?

Given that the problem is broader than just image generation I'd like to see this fixed. I'm also using the noise function in another project than the one that made me open this issue to create smooth noisy animations, not knowing the actual min and max values makes that a lot harder to control.

currently output is approximatively [-0.8;0.8]
see also reports and links here: https://github.com/godotengine/godot-docs/issues/4078

The proper solution would be to add support for tileable noise directly into the OpenSImplexNoise library, or find another implementation that already supports it.
The sampling of a 4D sphere to get 2D  tileable noise is a trick and, as @Zylann mentioned,  it results in an image with reduced contrast (I didn't foresee that, my bad). However, it should be possible to generate tileable noise directly from the generator. Here's some literature I found if someone wants to look into doing this: https://www.gamedev.net/blog/33/entry-2138456-seamless-noise/
Another option is to wait for #35144 to be merged. If I understand correctly it provides a quadrant swap and blend approach to tileable noise. I assume the blending will result in less contrast just like the current implementation does, but it would only be on the blended regions and likely less noticeable.

The proper solution would be to add support for tileable noise directly into the OpenSImplexNoise library, or find another implementation that already supports it.
The sampling of a 4D sphere to get 2D  tileable noise is a trick and, as @Zylann mentioned,  it results in an image with reduced contrast (I didn't foresee that, my bad). However, it should be possible to generate tileable noise directly from the generator. Here's some literature I found if someone wants to look into doing this: https://www.gamedev.net/blog/33/entry-2138456-seamless-noise/
Another option is to wait for #35144 to be merged. If I understand correctly it provides a quadrant swap and blend approach to tileable noise. I assume the blending will result in less contrast just like the current implementation does, but it would only be on the blended regions and likely less noticeable.

The author of OpenSimplex2 is working on a tileable version too, I think it's probably going to be added to FastNoiseLite.

The author of OpenSimplex2 is working on a tileable version too, I think it's probably going to be added to FastNoiseLite.

Fixed by https://github.com/godotengine/godot/pull/56718 (4.0). In 3.x, this was documented by https://github.com/godotengine/godot/pull/43279.


Allow selection of 2015 or Cures update

Pull requests into Cypress require the following. Submitter and reviewer should :white_check_mark: when done. For items that are not-applicable, note it's not-applicable ("N/A") and :white_check_mark:.
Submitter:

[ ] This pull request describes why these changes were made.
[ ] Internal ticket for this PR:
[ ] Internal ticket links to this PR
[ ] Code diff has been done and been reviewed
[ ] Tests are included and test edge cases
[ ] Tests have been run locally and pass

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

new cures radio button

Indicator on Product screen if tests are 2015 edition or include the cures update
With

Without


Version change to 0.5.0

This change is

r? @Viv-Rajkumar

r? @canndrew
(maidsafe_highfive has picked a reviewer for you, use r? to override)

Reviewed 2 of 2 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io


[$250] Group chat-Member invited, made admin & removed in offline is showed on returning online.

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.22
Reproducible in staging?:
Reproducible in production?:
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4872013
Issue reported by: Applause Internal Team
Action Performed:

Go to https://staging.new.expensify.com/home
Tap fab -- start chat -- select a user
Create a group
Tap header -- member
Go offline
Invite a member
Make him admin by long pressing the member and selecting make admin
Then remove the same user by long pressing the member and selecting remove member
Go online
Tap back

Expected Result:
In group chat, member removed in offline must not be showed on returning online.
Actual Result:
In group chat, member invited, made admin & removed in offline is showed on returning online.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/72b64dda-6397-4dcb-bd70-a922cced67e4

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~015e13003200e6f595
Upwork Job ID:<PHONE_NUMBER>898137464
Last Price Increase: 2024-08-20
Automatic offers:

dominictb | Contributor | 103626792

Issue OwnerCurrent Issue Owner: @aimane-chnaif

We think that this bug might be related to #vip-vsb

@puneetlath  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

What happened with this issue @dominictb @aimane-chnaif? Did we finish it?

Got it. I've paid @dominictb.
@aimane-chnaif can you complete the checklist?

Payment summary:

C - @dominictb - $250 - paid via Upwork
C+ - @aimane-chnaif - $250 - to be paid via NewDot

Thanks y'all!

Ah ok got it. Offer is here: https://www.upwork.com/nx/wm/offer/104341792. Please ping me on this issue when you've accepted.

Paid!


Any way to detect pitch from microphone input without calling play() ?

Trying to implement a simple tuner, but can't seem to figure out how to simultaneously listen to the user mic for frequencies and disallow the audio from playing back via speakers (e.g. to prevent feedback when users are not using headphones). Is there are way to do this? I see the feedback issue is mentioned in the docs, but no solution. Thoughts?
Update:
setting the tuner.output.gain.value = 0; seems to have solved the feedback issue by muting the gain node, but still allows the audio to be analyzed. might be worth mentioning in the docs (or some better solution) for others looking to use WAD for audio analysis purposes.

Sorry I've been slow to respond.
You've got the right idea. You might prefer to use tuner.setVolume(0), which does exactly the same thing.

@rserota Sorry for the thread-necromancy here, but quick question:
I want to basically achieve this same thing where I don't want the microphone input to play back via speakers, but I would also like to be able to use the audiometer to determine what volume the input would be. I have found ways to do either, but not both.
Basically what I'm trying to make is a 'karaoke' engine where your input is used for the pitch detection, but you can configure what volume of input is minimally required to actually process the data (basically: ignore everything not loud enough to care about).

The example from the docs should mostly meet your needs, I would think.
var tuner = new Wad.Poly();
tuner.setVolume(0); // If you're not using headphones, you can eliminate microphone feedback by muting the output from the tuner.
tuner.add(voice);

voice.play(); // You must give your browser permission to access your microphone before calling play().

tuner.updatePitch() // The tuner is now calculating the pitch and note name of its input 60 times per second. These values are stored in tuner.pitch and tuner.noteName.

var logPitch = function(){
    console.log(tuner.pitch, tuner.noteName)
    requestAnimationFrame(logPitch)
};
logPitch();
// If you sing into your microphone, your pitch will be logged to the console in real time.

// tuner.stopUpdatingPitch(); // Stop calculating the pitch if you don't need to know it anymore.

Maybe try tweaking that a bit and see if you can do what you need?


Add Avro schema for logging

are we merging request and response
is it num of bidders records for each ad slot (opportunity)


[Feature]  image generation and text generation use different AI providers

I want to use chatgpt unofficial api for text generation and cloudflare for image gen... How to do it/?

Do you mean that image generation and text generation use different AI providers?

Yes... (For text i will use my own bingai (works fine with ur code  @Imagegenbot009bot and for image i will use cloudflares model)

This configuration is not available at the moment, but you can modify the code loadImageGen  to only return requestImageFromWorkersAI
https://github.com/TBXark/ChatGPT-Telegram-Workers/blob/edd85ae22bcc97baf89e26b2c097a64d1748d73f/src/llm.js#L136-L154

Problem solved 🎇


fromOpenApi: Support JSON Schema

Generates random data based on the JSON schema property types.

Related to #10

Roadmap

[x] Add the "type": "object" integration tests.
[x] Simplify the OpenAPI documents creation (favor in-test descriptions over static .json fixtures).
[x] Unit-test the related functions.
[x] Add the Open API section with the usage examples to the README.

Released: v0.1.0 🎉
This has been released in v0.1.0!

📄 Release notes
📦 npm package

Make sure to always update to the latest version (npm i @mswjs/source@latest) to get the newest features and bug fixes.

Predictable release automation by @ossjs/release.


[11.x] Fixes doc block in Connector.php

This PR, fixes doc block in tryAgainIfCausedByLostConnection method.
The @throws \Exception has been changed to @throws \Throwable, which seems more appropriate, as the parameter $e is of type Throwable.
Additionally, Exception itself extends Throwable.

// Before
* @throws \Exception
*/
protected function tryAgainIfCausedByLostConnection(Throwable $e, $dsn, $username, $password, $options)

// After
* @throws \Throwable
*/
protected function tryAgainIfCausedByLostConnection(Throwable $e, $dsn, $username, $password, $options)

Thanks!


add installed tools' binaries to PATH env var

It might be helpful to add the path to the installed binaries to the OS's PATH env var. Maybe add a CLI flag/switch that performs this?

How to do that? current there is -d DIRECTORY option that allows the user to install binaries to the specified path.
Then add this path to OS's PATH env var?
If the user does not specify a path, the binaries will be installed on the path ~/.local/bin/ on Linux

After giving this more thought, we can probably rely on other mechanism to do this (ie the user can do this manually).
I noticed that this isn't needed for working within a python venv because sys.executable resolves to the venv's "bin" folder (or "Scripts" on windows).
How I imagined this to be implemented:
import os
import subprocess
import platform

set_env_cmd = "export" if platform.system().lower() == "linux" else "set"  # does not account for macOS
PATH = os.getenv("PATH").split":"
if "directory" not in PATH:
    PATH.append("directory")
    subprocess.run([set_env_cmd, f"PATH={':'.join(PATH)}")

Apparently modifying the env vars from within python interpreter is discouraged in the os module's API. Also note that the export command only lasts for as long as the shell is active (all changes revert when terminal is closed).


helm --set change only one list element

Hello.
Is it possible to change only one list element ?
I created chart using helm create command, ingress.yaml - is the original, I didn't change it.
Somehow when I try to change "host", I loose paths data.
values.yaml
ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
  hosts:
    - host: my.domain.com
      paths:
        - /my/domain

helm template --debug --set-string ingress.hosts[0].host="your.domain.com"  .
The result is:
spec:
  rules:
    - host: "your.domain.com"
      http:
        paths:

Yes and no. It is possible to change one item on a list if the value is not an object. If it is simple. When there is something complicated it does not appear to work.
In this case what hosts has is a list. The key on that list item is 0. When the domain name is set at the command line using --set the 0 list item is changed with a new one that has the domain.
But, I think you want to change a single property on the first item on the list. I've not found a way to do that. Someone else may know better.

I believe the answer given by @mattfarina is correct and complete. Marking this as closed.

but this will change the whole list in helm3

any solution for this found?

any solution for this found? not yet..?


[qt5] use configure_file to install qt_debug.conf and qt_release.conf

see previous discussion #2857 .

Thanks for the PR and sorry for taking so long to get to it!
For my understanding: the objective here is to get the current installed path hardcoded into the qt_debug.conf and qt_release.conf files so that you can use them directly in your own project?
(Assuming the above) have you considered doing what we do internally: running our own configure_file() call on those files to generate a qt.conf on the fly. You would need to do something like:
set(CURRENT_INSTALLED_DIR /path/to/vcpkg/installed/x64-windows)
configure_file(${CURRENT_INSTALLED_DIR}/tools/qt5/qt_release.conf /wherever/you/want/qt.conf)

The problem with hardcoding the local machine path is that it obviously makes the package unrelocatable; even renaming the vcpkg folder on your own machine would break things.

I don't think that anyone want to change the vcpkg location, so hardcoding isn't really a problem. Without hardcoding, I need to construct the CURRENT_INSTALLED_DIR variable in every my own projects, but the value never changed in my local machine. Would you mind give me an example that I need to relocate the qt package?

https://github.com/Microsoft/vcpkg/blob/master/docs/specifications/export-command.md is a command supported by vcpkg that enables users to reuse binaries across multiple machines; we've seen a lot of users who are quite happy with this mechanism, so we do need each package to be relocatable :)
Yes, you will need to construct the CURRENT_INSTALLED_DIR in your project, but don't you have to construct that anyway to find the qt_release.conf? Alternatively, if you know the location of qt_release.conf, you can use
get_filename_component(CURRENT_INSTALLED_DIR "${QT_RELEASE}" DIRECTORY)
get_filename_component(CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR}" DIRECTORY)
get_filename_component(CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR}" DIRECTORY)

to compute the current installed location based on the path to qt_release.conf.
[1] https://cmake.org/cmake/help/latest/command/get_filename_component.html

@ras0219-msft I agree with everything you have written but the use-case where you use an exported tree but where a user is still using cmake (to create a qt.conf) seems to me unrealistic.
Lets say I want to build qBittorrent with an exported build tree.  I will
vcpkg install qt5-base libtorrent boost-system
vcpkg export qt5-base libtorrent boost-system --raw

And then that's it, i'm done with cmake.  If a had more cmake work to do, I'd do it in a personal vcpkg tree.  Now it's time for qmake to do it's thing .... and I would like it to be able to find it's libraries.  I can't find a qt distribution out there that does not add a qt.conf file in it's bin folder, wherever it is.  Qt's own redist package has one, so does conda, so does arch, so does whoever builds the ubuntu package.
Thankfully there is an easy solution to this problem.  It

[x] Works with exported trees
[x] Works for linux
[x] Works for OSX
[x] Works for windows

The solution is to create a qt.conf file everywhere we put a qt executable in.  It should use relative paths to point to where to find it's different bits.
something along those lines (Needs further testing):
[Paths]
Prefix = ../..
Documentation = share/qt5/doc
Headers = include
Libraries = lib
Binaries = tools/qt5
LibraryExecutables = tools/qt5
Plugins = plugins
Qml2Imports = qml
Data = share/qt5
ArchData = share/qt5
HostData = share/qt5
HostBinaries = tools/qt5-tools
HostLibraries = lib
Translations = share/qt5/translations

Seperatly, we should also offer a qt_debug.conf that, when used with qmake -conf <filename.conf> option, has it finding/binding to it's debug libs.

You seem unaware that qt.conf doesn't work. It has 0 bearing on the result of QLibraryInfo::HeadersPath for example.

Here's a pyqt5 sample to demonstrate:
Wrong value:
import PyQt5.QtCore
PyQt5.QtCore.QLibraryInfo.location(PyQt5.QtCore.QLibraryInfo.HeadersPath)
'C:/qt5/_h_env/Library/include/qt'

Right value:
import PyQt5.QtCore
PyQt5.QtCore.QLibraryInfo.location(PyQt5.QtCore.QLibraryInfo.HeadersPath)
qapp = QApplication(["blah"])
PyQt5.QtCore.QLibraryInfo.location(PyQt5.QtCore.QLibraryInfo.HeadersPath)
'C:/Users/builder/m64/envs/pyqt/Library/include/qt'

If the relative path works sufficiently, that sounds like a good solution to me and I'd be happy to merge a PR for that!

@mingwandroid let's try to stay on topic please.  I have tried to make this fix happen for more than a year now (see https://github.com/Microsoft/vcpkg/pull/2892) and the comment about qt.conf doesn't work reliably is not relevant to this thread.  This thread is about having qmake, qdesigner, qml and other tools working, in the vcpkg buildtree, or in an exported vcpkg buildtree.
As you stated, qt.conf works for QApplications, and it so happens that qmake, qdesigner, qml and others are QApplications (technically qmake isnt one, not by inheritance like QDesigner is, but behaves like one by instanciating QLibrary during it startup).
If you found bugs in pyqt, you should file them with Riverbank.

that sounds like a good solution to me and I'd be happy to merge a PR for that

Working on it.

#3280 has fixed some paths except for qmldir. mklink /D qml ..\qml in${CURRENT_INSTALLED_DIR}/debug fixes it.


library is not working with more than 2 keyboards

Hi!
Thank you for this great library.
It is exactly what I need for a project where i have to listen to and be able to distinguish between 4 different keyboard inputs.
I tried it on ubuntu 16.04 and on raspberry pi 3.
Everything works fine with 2 keyboards attached, but unfortunately I get some very strange behaviour when I attach a third one.
I use this slightly modified example code inside of the example folder
const InputEvent = require('../')

let inputSlots = [21, 23]
let inputs = []
let readers = []

for (let i = 0; i < inputSlots.length; i++) {
  try {
    inputs[i] = new InputEvent(`/dev/input/event${inputSlots[i]}`)
    readers[i] = new InputEvent.Keyboard(inputs[i])
    readers[i].on('keyup', (data) => { console.log(`reader ${i}: ${data.code}`) })
  } catch (err) {
    console.error(`Can not open device ${i}`)
  }
  if (readers[i]) {
    readers[i].on('error', (data) => { console.log(`reader ${i}: ${data.code}`) })
  }
}

When I adapt the inputSlots array and attach a third keyboard, the keycode doesn't get logged to the console immediately when pressing a key.
I have to press a key on one of the other 2 attached keyboards, then the keycode from before and the keycode from the key that was just pressed are logged.
If i now press another key on this keyboard the thing starts again and i have to press a key on one of the other keyboards in order to log the keycode.
I am wondering if you have ever encountered this problem, or if you happen to know what could be the reason for this behaviour.
I also tried it with the 'keydown' and 'keypress' event, but that didnt change anything.
Thank you very much
Best regards

Hi !
I got the same problem. After a little search, it appears that the problem comes from the readstreams inside the index.js file.
If you press a key on keyboard 1, the .on("data") event from the readstream is emitted.
If you press it again, the event won't be emitted again until you press a key on another keyboard.
Sadly, I don't know how to fix it.

@Toudoo
Thank you for sharing your insights! :)
I planned to use it for with 4 RFID-readers that act like a keyboard, but in the end I had to use NFC-reader anyways.
cheers,
Philipp


Add a Beginner Level Data Science Project

Add a Beginner Level Data Science Project
Objective
Create a beginner-friendly data science project. This project should include:

Data loading and cleaning
Basic statistical analysis
Visualizations (e.g., distribution plots, bar charts)
Insights and conclusions

Requirements

Use libraries like pandas, matplotlib, and seaborn
Include a README.md with detailed instructions
Ensure code is well-documented and follows PEP 8 guidelines

How to Contribute

Fork the repository
Create a new branch: git checkout -b beginner-project
Add your project in the beginner directory
Submit a pull request with your changes

Labels: beginner, help wanted, good first issue

I want to work on this issue. Can you assign it to me?

Sure!

Hello
I'm a beginner in this field
I love it
I'm almost done with my classes
And I need an actual examples of projects to run
To check how well I can do
Please put me through

Hello
I'm a beginner in this field I love it I'm almost done with my classes And I need an actual examples of projects to run To check how well I can do
Please put me through

I have created a new issue, you can work on that


vscodium download settings fails

🐛 Describe the bug
Download settings fails on vscodium build of vscode.
🌴 Visual Studio Code Version : N/A
🌴 vscodium Code Version : 1.27.2
🌴 Code Settings Sync Version : 3.1.2
🌴 Operating System : ubuntu 18.04
🌴 Occurs On: Download
🌴 Proxy Enabled: No
🌴 Gist Id: 3a130beb45a528a4d017d789e529891d
📰 To Reproduce
Steps to reproduce the behavior:

Install vscodium
Install code-settings-sync via the market place
reload vscodium
Shift + Alt + D

The following notification appears :

💪 Expected behavior
I expect the same behaviour as in VS code.
📺 Console Error Log
The developer tools console shows :

Download settings fails on vscodium build of vscode.

Settings sync doesnt support it at the moment.

v3.2 is released with this feature.
@PhE can you verify ?

I'm having the same problem here but a workaround this bug is easy. Where does settings sync expect to find a code executable? That being said, it's just a matter of creating the right symbolic link pointing to the vscodium binary...

Hi guys,
I fixed this issue on Linux (Ubunut 18.10) by making this symlink:
ln -s /usr/bin/vscodium ~/bin/vscodium
Turns  out there are some path issues in vscodium. Be sure that you have 'bin' folder in your home folder and that it is added to PATH.