RC Test: Projectile Data Lab 1.0.0-rc.1

RC Test
Mentions: @matthew-blackman  @samreid
Simulation links

github repository for issues
phet top-level directory
sim: all_phet.html
phet-io wrapper index
link to phet-io zip file

Test Matrices

General Test Matrix
PhET-iO Test Matrix

Features included

[x] PhET-iO
[x] Alternative Input
[x] UI Sound
[x] Sonification
[ ]  Description
[ ] Voicing
[x] Dynamic Locale

Focus and Special Instructions

This is a standard RC test. Please spend extra time testing the interval tool on the 'Measures' screen, as it has undergone some cosmetic and architectural changes (see https://github.com/phetsims/projectile-data-lab/issues/279)
Query Parameters:
autoGenerateData (boolean)
projectileTypeAffectsSpeed (boolean)
binStrategy (binWidth or totalBins)
showStandardError (boolean)
launchSoundStrategy (speed, angle, none)
playLandingSound (boolean)
Issues to Verify
Please verify that all issues raised in dev testing are now fixed.

For QA...

General features

What to Test

Click every single button.
Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.

If there is sound, make sure it works.
Make sure you can't lose anything.
Play with the sim normally.
Try to break the sim.
Test all query parameters on all platforms. (
See QA Book for a list of query parameters.)
Download HTML on Chrome and iOS.
Make sure the iFrame version of the simulation is working as intended on all platforms.
Make sure the XHTML version of the simulation is working as intended on all platforms.
Complete the test matrix.
Don't forget to make sure the sim works with Legends of Learning.
Test the Game Up harness on at least one platform.
Check this LoL
spreadsheet and notify AR or AM if it not there.
If this is rc.1 please do a memory test.
When making an issue, check to see if it was in a previously published version.
Try to include version numbers for browsers.
If there is a console available, check for errors and include them in the Problem Description.
As an RC begins and ends, check the sim repo. If there is a maintenance issue, check it and notify developers if there
is a problem.
As the RC ends, please review the QA credits in the about dialog. If the QA credits are complete and correct, please
add a comment in the RC test issue indicating so. If not, please open a new issue and specify what changes should be
made.

PhET-iO features

What to Test

Make sure that public files do not have password protection. Use a private browser for this.
Make sure that private files do have password protection. Use a private browser for this.
Make sure standalone sim is working properly.
Make sure the wrapper index is working properly.
Make sure each wrapper is working properly.
Launch the simulation in Studio with ?stringTest=xss and make sure the sim doesn't navigate to youtube
For newer PhET-iO wrapper indices, save the "basic example of a functional wrapper" as a .html file and open it. Make
sure the simulation loads without crashing or throwing errors.
Load the login wrapper just to make sure it works. Do so by adding this link from the sim deployed root:/wrappers/login/?wrapper=record&validationRule=validateDigits&&numberOfDigits=5&promptText=ENTER_A_5_DIGIT_NUMBER

Further instructions in QA Book
Conduct a recording test to Metacog, further instructions in the QA Book. Do this for iPadOS + Safari and one other
random platform.
Conduct a memory test on the stand alone sim wrapper (rc.1).
Test one platform combination with ?phetioDebug=true on the Studio and State wrapper.
If Pan/Zoom is supported, make sure that it works when set with PhET-iO State.
Test that the sim works offline:

Click the link to the phet-io zip file (at top of issue) to download the zip file.
Unzip it to a spot locally.
Open index.html by double clicking it on your desktop or in a Finder-view.
It should look like the standalone version of the sim in PhET-iO brand.

Accessibility features

What to Test

Specific instructions can be found above.

Make sure the accessibility (a11y) feature that is being tested doesn't negatively affect the sim in any way. Here is
a list of features that may be supported in this test:

Alternative Input
Interactive Description
Sound and Sonification
Pan and Zoom
Mobile Description
Voicing

Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.
Test all keyboard navigation inputs (if applicable).
Test all forms of input with a screen reader (if applicable).

If this sim is not in this list or up to date there, make an
issue in website to ask if PhET research page links need updating. Please
assign to @terracoda and @emily-phet.

Screen Readers
This sim may support screen readers. If you are unfamiliar with screen readers, please ask Katie to introduce you to
screen readers. If you simply need a refresher on screen readers, please consult the
QA Book, which should have all of the information
you need as well as a link to a screen reader tutorial made by Jesse. Otherwise, look over the a11y view before opening
the simulation. Once you've done that, open the simulation and make sure alerts and descriptions work as intended.

Platforms and Screen Readers to Be Tested

Windows 10 + Latest Chrome + Latest JAWS
Windows 10 + Latest Firefox + Latest NVDA
macOS + Safari + VoiceOver
iOS + Safari + VoiceOver (only if specified in testing issue)

Critical Screen Reader Information
We are tracking known screen reader bugs in
here. If you find a screen reader bug,
please check it against this list.

Keyboard Navigation
This sim supports keyboard navigation. Please make sure it works as intended on all platforms by itself and with a
screen reader.
Magnification
This sim supports magnification with pinch and drag gestures on touch screens, keyboard shortcuts, and mouse/wheel
controls. Please test magnfication and make sure it is working as intended and well with the use cases of the
simulation. Due to the way screen readers handle user input, magnification is NOT expected to work while using a screen
reader so there is no need to test this case.

FAQs for QA Members

There are multiple tests in this issue... Which test should I do first?
Test in order! Test the first thing first, the second thing second, and so on.

How should I format my issue?

We typically assign the developer who opened the issue in the QA repository.

My question isn't in here... What should I do?
You should:

Consult the QA Book.
Google it.
Ask Katie.
Ask a developer.
Google it again.
Cry.

Saw this sound issue: https://github.com/phetsims/tambo/issues/156. Very general and unlikely to be a blocking problem.

Calling QA here

Closing


[bug] [windows updater] updating tauri apps using updater fails if installed to C:\Program Files

Describe the bug
Some user of my tauri app want to install the application to C:\Program Files.
So, they launched the installer with Administer Privilege by left-clicking the installer exe and the initial installation works well with this method.
However, because the updater doesn't launch the installer with admin privilege, it will indefinitely fails to upgrade the tauri app.
the tauri updater should detect missing privilege and ask user for admin privilege OR ask admin privilege inside the installer if writing file fails with permission error.
Reproduction

install some a little older tauri app into C:\Program Files by launching the installer exe with admin privilege
launch the tauri app without admin privilege and upgrade with tauri updater
upgrading the app fails

You may use my ALCOM for real-world example.
0.1.0-rc.0 can be used as the old version https://github.com/vrc-get/vrc-get/releases/tag/gui-v0.1.0-rc.0

Expected behavior
Upgrading the app should not be failed and the update process should ask for admin privilage
Full tauri info output
><EMAIL_ADDRESS>tauri
> npm install && tauri info

up to date, audited 447 packages in 534ms

136 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

[✔] Environment
    - OS: Mac OS 14.4.1 X64
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.75.0 (82e1608df 2023-12-21)
    ✔ cargo: 1.75.0 (1d8b05cdd 2023-11-20)
    ✔ rustup: 1.26.0 (5af9b9484 2023-04-05)
    ✔ Rust toolchain: stable-aarch64-apple-darwin (default)
    - node: 20.12.2
    - pnpm: 8.15.6
    - yarn: 1.22.19
    - npm: 10.5.0

[-] Packages
    - tauri [RUST]: 1.6.1
    - tauri-build [RUST]: 1.5.1
    - wry [RUST]: 0.24.7
    - tao [RUST]: 0.16.8
    - tauri-cli [RUST]: 2.0.0-beta.11
    - @tauri-apps/api [NPM]: 1.5.3 (outdated, latest: 1.5.4)
    - @tauri-apps/cli [NPM]: 1.5.11 (outdated, latest: 1.5.12)

[-] App
    - build-type: bundle
    - CSP: unset
    - distDir: out
    - devPath: http://localhost:3000/
    - framework: React (Next.js)
    - bundler: Webpack

Stack trace
No response
Additional context
No response

Hmm, @amrbashir feedback is imo more valuable here than mine, but imho it'd be better to simply not allow installing a perUser installer with admin permissions and instead rely on the perMachine mode for that. There's more logic in the installer that expects a perUser installer to be actually be installed for just that user. idk what the best way forward is though.

I agree, perUser installers shouldn't at all interfere with perMachine mode.

sorry, I'm not good at Windows. What's the perUser installer means? is there any config to enable installing app for machine (not for user?)

See https://tauri.app/v1/api/config#nsisconfig.installmode

Basically perUser will try to install to C:\Users\<user>\AppData\Local (but users can pick another directory) and doesn't require Admin privileges to install, on the other hand, perMachine installs to C:\Program Files by default and requires Admin privileges to install.

Sorry, I missed 'installmode' settings. Thank you.


vaadin lumo theme for especific components

As valo-theme had default theme (with some styles applied)  for especific components like vaadin-combo-box I can't find something similar in vaadin-lumo-styles....am I missing something? thanks!!

Starting from the latest major versions, the components use Lumo theme by default, and the theme files have been moved to the correspondent repos. See file structure docs for combo-box here.


Log rotation and monitoring guide still refers to log4j

Is your suggestion related to a missing or misleading document? Please describe.
Please note the $subject. It should refer to log4j2 instead.
[1] https://is.docs.wso2.com/en/latest/administer/product-level-security-guidelines/#log-rotation-and-monitoring

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Support for ContentEncoding

Hi, I need the ability to store gzip encoded files in S3rver. The real S3 handles this with the ContentEncoding parameter on the putObject command.  The PR includes code to read/write a contentEncoding key in the metadata file. Also I moved the functionality to create the test buckets into the mocha before block so it's possible to run one test at a time and have the test buckets exist. Added a new unit test for storing and reading a gzipped copy of jquery. All tests are passing when running npm test.

Hi @dvonlehman
Thank you for your contribution!  A nice extra feature.
I've merged your pull request.

Would you like me to create a new release?

A new release to npm would be great. Thanks.

Released a new version. Sorry for the delay; it completely slipped my mind.
Version is now: 0.0.5
Thanks for your contributions.


opkg version outdated

When I tried to install this tool as explained in https://github.com/awilliams/wifi-presence#opkg it installed a very old version (0.1.1), while the latest one is 0.3.0.
For now I can manually install the new version, but would be cool if the opkg repo was updated!

Went through this myself.
Can't just use the github release URL either.
For others:

Download ipk for your architecture (observe which one opkg installed when you use command from installation instructions)
use SCP to upload to your router (e.g., scp local_file.ipk root@<IP_ADDRESS>:/)
ssh into router, then install opkg install /local_file.ipk


OSError: Can't load config for 'princeton-nlp/sup-simcse-bert-base-uncased'

您好，运行过程中遇到了OSError: Can't load config for 'princeton-nlp/sup-simcse-bert-base-uncased'，有完整下载链接吗，谢谢您

Hi,
We just checked and the name should be correct. You can check whether your transformers version is the same as what we have in requirement.txt. You can also use this link for downloading the model.


(PDB-1389) Add puppet-agent option for debian dependencies

Previously installing the puppet-agent and puppetdb together would not
work on debian/ubuntu because puppetdb requires a specific version of
puppet or puppet-common, which puppet-agent cannot provide. This commit
addresses that by allowing puppet-agent to be a fallback if
puppet/puppet-common is not available (puppet for puppetdb,
puppet-common for the terminus).

Successful install alongside puppet-agent 0.9.1 and puppetserver 2.0.0-rc4:
apt-get install puppetdb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  postgresql
The following NEW packages will be installed:
  puppetdb
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 23.6 MB of archives.
After this operation, 26.6 MB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  puppetdb
Install these packages without verification [y/N]? y
Get:1 http://builds.puppetlabs.lan/puppetdb/f0efbf4a898aa8297280ebdb6ee996924ab9bea3/repos/apt/wheezy/ wheezy/main puppetdb all <IP_ADDRESS>-1puppetlabs1 [23.6 MB]
Fetched 23.6 MB in 1s (22.3 MB/s)
Selecting previously unselected package puppetdb.
(Reading database ... 47704 files and directories currently installed.)
Unpacking puppetdb (from .../puppetdb_<IP_ADDRESS>-1puppetlabs1_all.deb) ...
Setting up puppetdb (<IP_ADDRESS>-1puppetlabs1) ...
PEM files in /etc/puppetdb/ssl are missing, we will move them into place for you
Warning: Unable to find all puppet certificates to copy

  This tool requires the following certificates to exist:

  * /etc/puppetlabs/puppet/ssl/certs/ca.pem
  * /etc/puppetlabs/puppet/ssl/private_keys/k1pgim8io5g16db.delivery.puppetlabs.net.pem
  * /etc/puppetlabs/puppet/ssl/certs/k1pgim8io5g16db.delivery.puppetlabs.net.pem

  These files may be missing due to the fact that your hosts Puppet
  certificates may not have been signed yet, probably due to the
  lack of a complete Puppet agent run. Try running puppet first, for
  example:

      puppet agent --test

  Afterwards re-run this tool then restart PuppetDB to complete the SSL
  setup:

      /usr/lib/puppetdb/puppetdb-ssl-setup -f

:+1: Package built off this ( http://builds.puppetlabs.lan/puppetdb/f0efbf4a898aa8297280ebdb6ee996924ab9bea3) successfully installed on Ubuntu 12.04 with puppet-agent 0.9.1 and puppetserver 2.0.0-rc4.

:+1:  when travis says go

Travis loves me

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/998/

@pljenkinsro retest this please

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/1002/


TypeError: 'append' called on an object that does not implement interface FormData

Good day. I have an issue. I created a Dialog and paste into it form with a file upload. But it is not working and Firebug shows error:
TypeError: 'append' called on an object that does not implement interface FormData
My JS code:
        function regnf()
        {
            var data = new FormData($('#s2')[0]);
            $.ajax(
            {
                url : "/include/proc/register.php",
                type: "POST",
                data : data,
                success:function(response)
                {
      window.location.reload;
            }});
        };

Please help me.

add to ajax:({
processData: false,
contentType: false,
},
)


reply(Function): There should be a way to trigger a real error instead of a 500 response

I'm having trouble with Nock's behavior of turning errors into 500 responses. As the docs say:

Note: When using a callback, if you call back with an error as first argument, that error will be sent in the response body, with a 500 HTTP response status code.

Using the reply(Function) form (which I need), there doesn't seem to be a way to make the request truly fail. There will always be a response, it'll just be a 500.
This is making testing harder for me. Whereas without Nock a request would fail, populating err or a Promise's catch handler:
request('http://foo', (err response, body) => { /* err would be populated */ })
axios.get('http://foo').catch(err => { /* catch would be triggered */ })
fetch('http://foo').catch(err => { /* catch would be triggered */ })

with Nock, a fake 500 Internal Server Error response is constructed and so err is null, then() is triggered instead, etc.
I personally don't see why the callback error is used for this purpose considering how easy it is for the user to decide to return a 500 themselves via: callback(null, [500, "Error body"]).

Hi, @exogen! You can use replyWithError(). It will emit error event on the request object. Promise based libs called cath handler.

@n30n0v The problem is that you can't do that dynamically, such as when your reply() is an asynchronous function. e.g.
nock(...).reply((uri, body, callback) => {
  // What happens here if my `reply` handler does something async and
  // needs to issue an error? My only choice is `callback(err)` which generates
  // a fake 500 response.
})

I think if it happened something awful in your async handler, a server is supposed to return correctly (in an HTTP protocol sense) formatted response. Could you please give example?

@n30n0v Let's say I wanted to customize fixture handling, like keeping them in a database, or working like other VCR-like libraries by organizing fixtures by the hash of each request (instead of giving each test its own manually-named fixture like Nock Back). That would look something like:
nock(...).reply((uri, body, callback) => {
  const { host } = this.req.headers
  const requestKey = hash({ uri, body, this.req.headers })
  const fixturePath = `fixtures/${host}/${requestKey}.json`
  fs.readFile(fixturePath, 'utf8', (err, data) => {
    if (err) {
      // If in record mode, hit the network. But otherwise:
      callback(new Error('Fixture not found!'))
    }
  })
})

You can see why a 500 doesn't make sense here. If a fixture isn't found, the test shouldn't think that the server actually responded with a 500 (what if my fixture actually contains a legit 500 response and that's what I'm testing?). Instead of erroring in the correct spot and causing the test to fail, I'd have to use the .then() handler as if the request went through, then parse the response body to see if it's my special "fixture not found" error message.
Anyway, I was able to work around this by ignoring callback completely in this case and calling this.req.emit('error', err) – that makes it work like I expect. But it feels like from an API perspective, that's what callback(err) should do – since if the user wants a 500, they could just do so explicitly with callback(null, [500, err]).

@exogen Thanks for the detailed example!
It seems that this is a particular case and API works as expected. Nevertheless, It might be nice to define API for emitting an error in a request.


Update SQLite to version 3.40.0

This is an automated pull request, updating SQLite to version 3.40.0.

Good news: PR #870 fixes this compilation error: https://github.com/mceachen/better-sqlite3/actions/runs/3484286275

Manually upgraded on master branch


exec /usr/bin/mvn: exec format error

Getting exec format error while running simple hello world test
helloworld.feature
Feature: Hello

  Scenario: Print hello message
    Given print 'Hello from YAKS!'

$ yaks run helloworld.feature --logger root=INFO -n cds
Test 'helloworld' created
[test-helloworld-coh10glondruq9leskp0-7tjld test-1] Monitoring pod test-helloworld-coh10glondruq9leskp0-7tjld
[test-helloworld-coh10glondruq9leskp0-7tjld test-1] **exec /usr/bin/mvn: exec format error**
Test 'helloworld' finished with status: Running
Test results: Total: 0, Passed: 0, Failed: 0, Errors: 0, Skipped: 0

Yes, there seems to be an issue with the multi platform Docker image built for v0.19.0
I am having a look asap and try to fix. Many thanks!

Which version can I use till you provide fix for v0.19.0?

v0.18.0 is working fine for me. Thanks


Need an example of submitting a dask/python script to YARN

I looked all over Knit documentation, but I could not find an example of running a dask/python script on yarn.
Let's say I already have an application that runs with dask.distributed client:
t3.py
import dask.dataframe as dd
from dask.distributed import Client

if __name__ == '__main__':
    client = Client()
    df = dd.read_parquet('s3://path/here')
    print(df.head(3))

How do run this with the YARN scheduler?
P.S. I am aware that this is a dummy question, sorry.

If you were willing to add to the documentation, that would be highly appreciated (although I am aware of other efforts to make a more seamless python/yarn experience).
In https://github.com/dask/knit/issues/123 you have a nice working example of how to use the client for a cluster started in the same process.
To reuse that cluster from other python processes, you can find the address to connect to from cluster.local_cluster.scheduler_address, and use this in your call to Client().
>>> cluster = DaskYARNCluster(env='/home/hadoop/reqs/dvss.zip')
>>> cluster.start(n_workers=3, memory=500, cpus=5, checks=True)
>>> cluster.local_cluster.scheduler_address
"tcp://<IP_ADDRESS>:8786"

in other sessions
>>> client = distributed.Client("tcp://<IP_ADDRESS>:8786")

@martindurant Well, my example is not quite working, so I'm sure I'm doing something wrong. I have this problem: after my application completes, it is being killed, with some scary error messages:
                        url              referrer session_id  \
0  http://a.com/articles/15    http://google.com/        yyy
1  http://a.com/articles/17    http://google.com/        xxx
2   http://a.com/articles/7  http://facebook.com/        yyy

                   ts hour customer
0 2017-09-17 00:09:00    0    a.com
1 2017-09-17 00:21:00    0    a.com
2 2017-09-17 00:00:00    0    a.com
18/04/14 22:46:44 INFO impl.YarnClientImpl: Killed application application_1523740467851_0005
2018-04-14 22:46:45,108 - asyncio - ERROR - Future exception was never retrieved
future: <Future finished exception=CommClosedError('in <closed TCP>: Stream is closed',)>
Traceback (most recent call last):
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/distributed/comm/tcp.py", line 179, in read
    n_frames = yield stream.read_bytes(8)
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
    value = future.result()
tornado.iostream.StreamClosedError: Stream is closed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
    yielded = self.gen.throw(*exc_info)
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/distributed/comm/tcp.py", line 200, in read
    convert_stream_closed_error(self, e)
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/distributed/comm/tcp.py", line 128, in convert_stream_closed_error
    raise CommClosedError("in %s: %s" % (obj, exc))
distributed.comm.core.CommClosedError: in <closed TCP>: Stream is closed
2018-04-14 22:46:45,109 - asyncio - ERROR - Future exception was never retrieved
future: <Future finished exception=CommClosedError('in <closed TCP>: Stream is closed',)>
Traceback (most recent call last):
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/distributed/comm/tcp.py", line 179, in read
    n_frames = yield stream.read_bytes(8)
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
    value = future.result()
tornado.iostream.StreamClosedError: Stream is closed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
    yielded = self.gen.throw(*exc_info)
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/distributed/comm/tcp.py", line 200, in read
    convert_stream_closed_error(self, e)
  File "/home/hadoop/conda/envs/dvss/lib/python3.6/site-packages/distributed/comm/tcp.py", line 128, in convert_stream_closed_error
    raise CommClosedError("in %s: %s" % (obj, exc))
distributed.comm.core.CommClosedError: in <closed TCP>: Stream is closed

You see it prints out those 3 records from my dataframe, and then 💣. Ouch. This is not what I want to see.

And yes, once I get things right, I'd be happy to PR a documentation example!

"KILLED" sounds like an action on behalf of yarn. I'm afraid you will need to look in the resourcemanager logs to see why that happened. Was there any message from the process that launched the dask_yarn cluster?
The comm-closed errors you see above are all in response to having the worker disappear while, apparently, communication was in process.

Well, once my script ends, the cluster exits, right? and this is something that the cluster does when it exits. It kills the application:
https://github.com/dask/knit/blob/24a5e33ab5d6b4235cadf79f7e4244eb9935e9b4/dask_yarn/core.py#L73
and
https://github.com/dask/knit/blob/24a5e33ab5d6b4235cadf79f7e4244eb9935e9b4/dask_yarn/core.py#L173
It looks like I just don't know the proper way to finish this application.

Ah, so you need your "master" script, i.e., the one that starts the cluster, to hang around. A while True: time.sleep(1) loops would do... We don't currently have a way to put the scheduler process into a persistent state detached from the process that launches it.

This is why I need an example. It's not obvious how I should do things.
So, ok, now I have this script that starts a YARN cluster:
start_dask_yarn.py
from time import sleep
import dask_yarn

cluster = dask_yarn.DaskYARNCluster(env='/home/hadoop/reqs/dvss.zip', lang='en_US.UTF-8')
cluster.start(n_workers=3, memory=5*1024, cpus=5)
try:
    while True:
        print('Cluster scheduler: {}.'.format(cluster.scheduler_address))
        sleep(20)
except KeyboardInterrupt:
    print('Cluster is done.')

Now, how do I make my original script to use this cluster?

Presumably this prints out a string of the form "tcp://ip.address:port"? That's the thing that you want to pass to Client() in your other script.

Ok, so the other script becomes just this:
t2.py
import sys
import dask.dataframe as dd
from dask.distributed import Client

if __name__ == '__main__':
    address = sys.argv[1]
    print('Connecting to address: {}.'.format(address))
    client = Client(address=address)
    df = dd.read_parquet('s3://parsely-public/jbennet/daskvsspark/events/100-24/*/*/*/*/*/*.parquet')
    print('-' * 20)
    print(df.head(3))

and I run it providing my scheduler address: python t2.py tcp://<IP_ADDRESS>:35225.
This seems to work. But I still have a ton of questions!

A YARN application is started when I start my DaskYARNCluster, and killed when I stop the cluster. So this is completely different from how things are done in Spark, where one script run would correspond to one YARN application. Is that correct?
There seems to be no way to have an application 'FINISHED' not KILLED?
Does this mean I have to start and stop a cluster  for each run of my script?

A few small comments:

It looks like @j-bennet is using the dask_yarn module above.  Is this still recommended?  Or is the code in knit better today?
@j-bennet please excuse our dust here, YARN support is not the greatest in Dask (it has proven to be the least friendly system for Python development we've encountered) hence its not being included in our setup documentation.
cc @jcrist who is developing the replacement to knit and may be interested in some of these questions.

The knit repo includes the dask_yarn (python) package https://github.com/dask/knit/tree/master/dask_yarn

@mrocklin @jcrist Replacement to knit? What will it be?

It is taking shape at https://github.com/jcrist/skein , a re-imagining of knit from the ground-up. Hopefully all dask-on-yarn users will become happy.

Oh, I see! I think I visited that repo before in my stumbling around, and was turned away by readme:

There is no promised timeline, yet, but there is definitely development unlike, for the most part, here on knit :)


forced expression when params "can be an expression"

currently, this
StringLeft list, _list_, % ch+1
converts to this
list := SubStr(_list_, 1, % ch+1)

are "can be an expression" params always expecting integers?


Kong version 3.2.2-alpine

Hello,
I'm using the new image for kong and as written in the readme to chage the version of the plugin I changed it. It does not work.
The pipeline keeps on failing.
Dockerfile_kong:3
--------------------
   1 |     FROM kong:3.2.2-alpine
   2 |     USER root
   3 | >>> RUN git clone --branch v0.2.0 https://github.com/seifchen/kong-path-allow.git
   4 |     RUN cd kong-path-allow
   5 |     RUN luarocks make *.rockspec
--------------------
ERROR: failed to solve: process "/bin/sh -c git clone --branch v0.2.0 https://github.com/seifchen/kong-path-allow.git" did not complete successfully: exit code: 127

Could you please tell me what can be the problem here.
Best regads,
Ritika

maybe you should check you network ,and show log . I can run

git clone --branch v0.2.0 https://github.com/seifchen/kong-path-allow.git

this command

@ritika1003 did you install git in  kong:3.2.2-alpine, If not make sure git already install or install it .

@seifchen No i did not install git in the docker container. I will install it and try to run the image.

@seifchen It works now! Thank you for your help :)


[BUG]: tables passed in delete / insert / update are not type-checked even if schema is passed in drizzle constructor.

What version of drizzle-orm are you using?
0.30.8
What version of drizzle-kit are you using?
0.20.14
Describe the Bug
(I've filed a bug report but arguably this could be considered as a missing feature).
Unless I'm missing something, the tables passed in insert, delete or update are not type-checked based on the tables (schemas) given in the drizzle constructor, at least when using Postgres (not tested with other DBs).
To reproduce, create two tables, used in two different databases.
import {drizzle} from 'drizzle-orm/node-postgres'
import {pgTable, text} from 'drizzle-orm/pg-core'
import {Client} from 'pg'

const tableA = pgTable('table_a', {columnA: text('text')})
const dbA = drizzle(new Client(), {schema: {tableA}})

const tableB = pgTable('table_b', {columnB: text('text')})
const dbB = drizzle(new Client(), {schema: {tableB}})

// No type-check error but will fail at runtime.
dbB.insert(tableA).values({columnA: 'value'}).execute()

Expected behavior
dbB.insert(tableA).values({columnA: 'value'}).execute() should have a type error, and same for update and delete.
Note
As a workaround for now, I've modified the database typing and exported a new one that have the typings for insert, delete and update scoped to the relevant tables. For instance, for dbA
import {NodePgQueryResultHKT} from 'drizzle-orm/node-postgres'
import {PgDeleteBase, PgInsertBuilder, PgUpdateBuilder} from 'drizzle-orm/pg-core

const tables = {tableA}
type Tables = (typeof tables)[keyof typeof tables]

export type DatabaseA = Omit<typeof dbA, 'delete' | 'insert' | 'update'> & {
  delete: <T extends Tables>(table: T) => PgDeleteBase<T, NodePgQueryResultHKT>
  insert: <T extends Tables>(table: T) => PgInsertBuilder<T, NodePgQueryResultHKT>
  update: <T extends Tables>(table: T) => PgUpdateBuilder<T, NodePgQueryResultHKT>
}

It was not intended to be typed, so this works as expected


please provide way to regenerate cython files

The release tarballs contain generated cython files. But sometimes you want to regenerate them with newer versions of cython e.g. to support newer python versions.
Please provide a way to correctly generate all files. E.g. via a script (that is aware of cython -2 and cython -3) or directly via setup.py like e.g. python-numpy and python-scipy do it (see their cythonize.py).

@juliantaylor I have been refactoring the whole project and now the _geoslib.c file is not part of the repository anymore, i.e. the Cython extension is compiled at build time when calling python setup.py bdist_wheel.
If you are using GNU/Linux, I recently uploaded precompiled binary wheels to PyPI with the latest beta release (1.3.0b1). Soon we will have a stable release.

@juliantaylor We finally have the stable release 1.3.0 on PyPI in case you want to give it a try.


ASB-300 add search box for representation

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

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


Mentioned requirements to compile a C file are unclear/outdated

The page mentions the requirement to install "the C++ build tools workload" but the installer contains no such entry under "Workloads" or elsewhere. It is presently nigh on impossible to determine what the minimum requirements to install just to compile a C file are.

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

ID: e96f0a01-2e3a-6301-bba1-6a50252555b0
Version Independent ID: 290ca773-a214-e81a-2ba3-c647f2b28a56
Content: Walkthrough: Compile a C program on the command line
Content Source: docs/build/walkthrough-compile-a-c-program-on-the-command-line.md
Product: visual-cpp
Technology: cpp-tools
GitHub Login: @corob-msft
Microsoft Alias: corob

@berzi
Thanks for the report, and sorry it's giving you difficulty. Use the Desktop development with C++ workload to install the C, C++, and Assembly tools and libraries for Visual Studio 2022. This is the same workload name used for these tools when you install the full IDE. In older versions of Visual Studio, the workload was named C++ build tools when you downloaded the Build Tools version of the Visual Studio Installer. The documentation team wasn't warned about this change, so we didn't update the docs when the change occurred.


Fix shrink_in_place; add examples, test more, test valgrind, partially test sanitizers

This PR fixes a bug in shrink_in_place, which ideally shrinks an allocation to the size requested, but can shrink it to a slightly larger size (which an _excess variant would return). However, previously, if the size after shrinking was equal or larger than the desired size, the function would return an error, only returning success if the allocation was shrunk to a size smaller than the requested one, which is something that just cannot happen (otherwise that's a bug in jemalloc).
So now it at least has the "right" behavior, but the API is still partially borked, because the error condition with the current API cannot really ever happen, unless the allocator has a bug or it does not support shrinking in place at all (in which case it could always return the error, but it could also always return success...).
This PR adds:

examples in the example's directory

runs the examples under valgrind on Linux with jemallocator as the global allocator
runs the examples under address sanitizer on Linux when jemallocator is not the global allocator but still used (the sanitizers replace the global allocator anyways, so other situations do not make much sense)
compiles the examples with thread and memory sanitizer on linux when jemallocator is not the global allocator but still used

test that the no_std jemallocator builds do not pull any symbols from std
runs jemalloc's tests on more platforms to make sure that jemalloc-sys works correctly

There are some pass-by cleanups/path canonicalization in the build.rs. I was trying to get the windows build bots up and running, and the path canonicalizations where helpfull there, but I've decided to submit Windows support in a different PR because that's not finished yet.

Also, valgrind crashes on OSX, I've submitted a bug to jemalloc upstream (https://github.com/jemalloc/jemalloc/issues/1274), and valgrind upstream (https://bugs.kde.org/show_bug.cgi?id=396367).

This is not ready yet.


Update exchange.md

Added missing ampersand.

I also noticed that on in the general instructions for private API call that the body parameters are listed as  "nonce=123&market=SCC_BTC&side=BUY&price=0.00010000&amount=10"
However, in the Order section the example is
POST Body: market=SCC_BTC&side=BUY&price=0.00010000&amount=10&nonce=123&signature=xxx
I noticed that in the MM bot that "nonce" is at the beginning of the line so I did not make a PR for the examples as I am not yet sure which is correct.
If I may I would like to buy a clue:
This works:
(curl -H "Content-Type: application/x-www-form-urlencoded" -H "X-API-KEY: 289d4ea5f0e31d7cf57f16493ae82aa6d45a5cbd7fd78d038de626f45c203569"
--request GET $ENDPOINT2$EXCHSPOTEP\market=ONION_BTC&limit=100&nonce=$nonce1&signature=$signature3 | jq )
This does not work:
(curl -v -H "Content-Type: application/x-www-form-urlencoded" -H "X-API-KEY: 289d4ea5f0e31d7cf57f16493ae82aa6d45a5cbd7fd78d038de626f45c203569"
--request POST https://stakecube.io/api/v2/exchange/spot/order?market=ONION_BTC&side=SELL&price=0.00000969&amount=100&nonce=$nonce1&signature=$signature3)
{"success":false,"result":[],"error":"required parameter missing","timestamp":1652144303206,"timestampConverted":"2022-05-10 00:58:23","executionTime":0.13354992866516113}
I have tried many things.... nonce at beginning of body, nonce at end : with only ampersand, with escaped ampersand : etc.
I did have a support ticket on discord which I closed thinking that I had solved the problem (same error as this one) by adding the ampersands. But then the exchange/spot/order still did not work. Should I reopen it or can you maybe pass be a clue? :)
Sorry if I should not have written this here. I am a noob at most github features.


diagnostics.py arbitrary types

Can we change diagnostics.py so that it won't crash regardless of what the return type of forward() is?
e.g. if it's a tuple of ints, or a list of lists, and so on.  We don't have to do anything- just return without
accumulating stats or checking the data, this is to ensure it doesn't crash when applied to arbitrary models.

Yes. Currently we just handle a tuple of Tensors or a Tensor. see
https://github.com/k2-fsa/icefall/blob/master/icefall/diagnostics.py#L143-L154
    def accumulate(self, x, class_name: Optional[str] = None):
        """
        Accumulate tensors.
        """
        if class_name is not None:
            self.class_name = class_name
        if isinstance(x, Tuple):
            x = x[0]
        if not isinstance(x, Tensor):
            return
        if x.numel() == 0:  # for empty tensor
            return

But we can extend it to other cases (a tuple of ints, or a list of lists, and so on.).

My PR #1234 stops it crashing.. it's not quite as general as  your fix but at least it's tested on a newer torch version.  (not on current one though),... also resolves eigenvalue-related issue.


feat: 0x51 - MLOAD opcode

SINCE
GROUP

Frontier
Stack Memory Storage and Flow Operations

Index 1 is top of the stack. See PUSH.Stack inputoffset: offset in the memory in bytes.Stack outputvalue: the 32 bytes in memory starting at that offset. If it goes beyond its current size (see MSIZE), writes 0s.SINCE	GROUP
Frontier	Stack Memory Storage and Flow Operations
Index 1 is top of the stack. See [PUSH](https://www.evm.codes/#60).
Stack input
offset: offset in the memory in bytes.
Stack output
value: the 32 bytes in memory starting at that offset. If it goes beyond its current size (see MSIZE), writes 0s.
Error cases
The state changes done by the current context are reverted in those cases:
Not enough gas.
Not enough values on the stack.
Gas
static_gas = 3
dynamic_gas = memory_expansion_cost
The memory expansion cost explanation can be found here.

Can I take ownership of this one:)?


We're Sorry but Something Went Wrong

Just made a new app deploying to Heroku & getting We're sorry but something went wrong
Is spaceship up to date with this repo?

jk


Allow authentication using AAD. Priority is to support ServicePrincipal, but others should also be supported.

This will require reformatting the secrets.yaml file into per-auth type sections. Backwards compatibility with old secrets.yaml files is required.
Good resources for reference:
http://msrestazure.readthedocs.io/en/latest/msrestazure.html#module-msrestazure.azure_active_directory.
http://azure-sdk-for-python.readthedocs.io/en/latest/resourcemanagementbatch.html

Proposals for the body of the secrets.yaml file:
Option 1
Break out each authentication type into it's own section, and for any form of AAD auth use a Resource ID to define the batch account and storage account
pros The simplified resource ID is a simple copy/paste from the portal
cons This requires the user to have previously created the Batch and Storage accounts in the portal
# For instructions on creating a Batch and Storage account, see
# Getting Started (https://github.com/Azure/aztk/blob/master/docs/00-getting-started.md)
# NOTE - YAML requires a space after the colon. Ex: "batchaccountname: mybatchaccount"

# Use Shared Key authentication
sharedKey:
    batch:
        batchaccountname: batch_account_name
        batchaccountkey: batch_account_key
        batchserviceurl: batch_account_url

    storage:
        storageaccountname: storage_account_name
        storageaccountkey: storage_account_key
        storageaccountsuffix: core.windows.net

# Use Service Principal Authentication
servicePrincipal:
    tenantid: my_tenant_id
    clientid: my_client_id
    credential: my_crenential

    batchaccountresourceid: my_batch_account_resource_id
    storageaccountresourceid: my_storage_account_resource_id

# Configuration for private docker repositories. If using public containers you do not need to provide authentification
docker:
    # username:
    # password:
    # endpoint:

default:
    # SSH keys used to create a user and connect to a server.
    # The public key can either be the public key itself (ssh-rsa ...) or the path to the ssh key.
    # ssh_pub_key: ~/.ssh/id_rsa.pub

Option 2
Break out each authentication type into it's own section, and for any form of AAD auth use specific variables for Subscription ID, Resouce Group and Resource Name to define the batch account and storage account
pros If the resources don't exist yet, we can create them for the user
cons Requires a lot more copy/pasting from the portal to the configuration file. Also, limits the storage account and batch account to be in the same subscription and resource group.
note In most cases, my assumption is that users will have already created the batch and storage accounts, so I don't think creating on-the fly in this case is going to be very common
# For instructions on creating a Batch and Storage account, see
# Getting Started (https://github.com/Azure/aztk/blob/master/docs/00-getting-started.md)
# NOTE - YAML requires a space after the colon. Ex: "batchaccountname: mybatchaccount"

# Use Shared Key authentication
sharedKey:
    batch:
        batchaccountname: batch_account_name
        batchaccountkey: batch_account_key
        batchserviceurl: batch_account_url

    storage:
        storageaccountname: storage_account_name
        storageaccountkey: storage_account_key
        storageaccountsuffix: core.windows.net

# Use Service Principal Authentication
servicePrincipal:
    tenantid: my_tenant_id
    clientid: my_client_id
    credential: my_crenential

    subscription: my_subscription
    resourceGroup: my_resource_group
    batchAccountName: my_batch_account_name
    storageAccountName: my_storage_account_name

# Configuration for private docker repositories. If using public containers you do not need to provide authentification
docker:
    # username:
    # password:
    # endpoint:

default:
    # SSH keys used to create a user and connect to a server.
    # The public key can either be the public key itself (ssh-rsa ...) or the path to the ssh key.
    # ssh_pub_key: ~/.ssh/id_rsa.pub

Option 3
Very similar to option 2 but allows the storage and batch accounts to be in different subscriptions and resource groups
pros Offers more flexibility
cons Lots more configuration and can let the users create batch and storage accounts in different regions which is a bad idea
Diff from Option 2
# Use Service Principal Authentication
servicePrincipal:
    tenantid: my_tenant_id
    clientid: my_client_id
    credential: my_crenential

    batchAccountSubscription: my_subscription
    batchAccountResourceGroup: my_resource_group
    batchAccountName: my_batch_account_name
    storageAccountSubscription: my_subscription
    storageAccountResourceGroup: my_resource_group
    storageAccountName: my_batch_account_name
    storageAccountName: my_storage_account_name

Summary
In any case, when using Service Principal we would have to make multiple calls to Azure to get properties and get keys required to create regular BatchClient and StorageClient objects.

my vote is option 1 👍

@jiata that looks good to me too. Maybe worth keeping them split to help keep backwards compat? Either way works for me though
@emlyn you have already started work on this in the VNET branch. What do you think of this proposal?

Any of these seem reasonable to me, probably leaning towards something like option 1.
For backwards compatibility I suppose it would it accept the batch and storage keys either inside sharedKey or at the top level?

@emlyn, once you have the shared principal I believe you can figure out the batch url by using the BatchManagementClient, so it should be programmatically available.
W.r.t the final design for the structure of the secrets file, lets go with option 1, but then use JS's suggestion to collapse them down so that both sharedKey and servicePrincipal have a single 'glob' instead of separate sections for Storage and Batch.
# Use Shared Key authentication
sharedKey:
  batchaccountname: batch_account_name
  batchaccountkey: batch_account_key
  batchserviceurl: batch_account_url
  storageaccountname: storage_account_name
  storageaccountkey: storage_account_key
  storageaccountsuffix: core.windows.net

Finally, for back-compat I think we would either check for batch && storage at the root level OR check for sharedKey.
@emlyn, is this something you care to work on?

@paselem sounds good, I'll have a go at implementing that in the vnet branch.

@paselem I've had a look at the BatchManagementClient, but it seems that it needs the subscription_id, which as far as I can tell is not currently available unless we were to add it to secrets.yaml.
Once I have a BatchManagementClient I can call batch_client.batch_account.get(...), which would give me the account_endpoint (which I assume is the same as the base_url needed for the Batch client), but in addition to the account_name/resource_id, it also needs the resource_group_name, which as far as I can tell is not available either. I suppose I could loop over batch_client.batch_account.list() for an entry with the right name but then we'd have to deal with the possibility of multiple matches from different resource groups.
Any ideas on the best way to proceed?

@emlyn based on the design for option 1 (below)
# Use Service Principal Authentication
servicePrincipal:
    tenantid: my_tenant_id
    clientid: my_client_id
    credential: my_crenential

    batchaccountresourceid: my_batch_account_resource_id
    storageaccountresourceid: my_storage_account_resource_id

when using the service principal we should have everything we need from the resource_id. The resource id is composed of the sub id, resource group name and resource name (i.e. the batch account name).
One example is:
/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/myResourceGroup/providers/Microsoft.Batch/batchAccounts/mybatchaccount

I think it should be trivial to simply parse that string and pull out the pieces we need. This string can be found on the properties page of a batch account or storage account in the portal.
When using sharedKeys, we can simply skip this step and create Batch and Storage clients directly.

@paselem thanks, for some reason I was thinking this was just the account name, but this makes more sense! I don't have the full resource ID string on the properties page (or anywhere else that I can find), but the individual parts are there so it's not hard to construct.

@emlyn you're absolutely right! They are not there for the Batch UI but they are there for the Storage UI. I will make sure they are added to the Batch UI very soon so we can write some useful docs around them.


Update README.md

CN README needs update as well

CN README needs update as well
Will update CN README after finish EN README updating.


train error：AttributeError: 'tuple' object has no attribute 'get'

Traceback (most recent call last):
File "tools/train.py", line 188, in
main()
File "tools/train.py", line 158, in main
model = build_detector(
File "/home/ubuntu/.conda/envs/open-mmlab/lib/python3.8/site-packages/mmdet-2.12.0-py3.8.egg/mmdet/models/builder.py", line 53, in build_detector
assert cfg.get('train_cfg') is None or train_cfg is None,
AttributeError: 'tuple' object has no attribute 'get'

cfg should be a dict, not tuple, please check the codes you changed.

Thank you for your reply, but I haven't changed train_cfg in the code,train_cfg is still dict.

I know you did not changed the train_cfg, but the cfg at line 53 in builder.py is a tuple, maybe you changed the codes in builer.py , leading to the change of the type of cfg. Please check it, it is not a bug in our latest codes.

if train_cfg is not None or test_cfg is not None:
warnings.warn(
'train_cfg and test_cfg is deprecated, '
'please specify them in model', UserWarning)
assert cfg.get('train_cfg') is None or train_cfg is None,
'train_cfg specified in both outer field and model field '
assert cfg.get('test_cfg') is None or test_cfg is None,
'test_cfg specified in both outer field and model field '
return DETECTORS.build(
cfg, default_args=dict(train_cfg=train_cfg, test_cfg=test_cfg))
I don't need to change the code here.  May be not recognize train_cfg due to some other setting problems. I'll take a look tomorrow.Thanks!

I met the same problem, and the reason in my case is that I added a comma after the model dict declaration, like
model = dict(...), data=dict(...)
Just deleting the comma can solve the problem.


Setup basic firewall

Fixes #69

We should also allow the 80 port (and close 443) when http_protocol_prefix != https.

Done

I'mnot sure I understand this comment:
# Firewall must be set-up last so as to not interfere with any other
# provisionings. For example, provisionning of RabbitMQ may needsto access
# its admin web interface.

When we provision a 2nd time, the firewall is in place already.
It's pretty much like if it was installed first.
Why does it work then?

Finally I think you forgot to remove the default "allow everything" iptable rule:

Maybe not.... See #77 : HTTP was closed when http_protocol_prefix == 'https'.

When we provision a 2nd time, the firewall is in place already.
It's pretty much like if it was installed first.
Why does it work then?

True. It does not make any difference.
What I had in mind is the next-to-come DLX thing for webhooks which requires RabbitMQ queues to be setup at provisioning time, both through AMQP on port 5672 and its web API on port 15672.
Now, I am not sure how to handle this interdependency. I guess I will have to flush the firewall rules as a first provisioning step and reset them when everything is setup. What do you think?

Now, I am not sure how to handle this interdependency. I guess I will have to flush the firewall rules as a first provisioning step and reset them when everything is setup. What do you think?

Provisioning is idempotent. If the opened ports are required only upon installation of RabbitMQ, then the following provisioning should not require them because RabbitMQ is already installed.
Did I get this right?

Actually, the provisioning is ran from 'inside' the machine, through SSH. The firewall does not interfere at all.


Week 2 changes

closes #4
closes #7
closes #8
Added benchmarks and testing suite. Refactored module for better threaded performance.

The build errors can be ignored here, we don't currently have a makefile on main so the make scripts are not found


[bug]: do not use this, its bad

Describe the bug
i never saw library badder than that (I also can't write english properly and I'm very bad at programming)
To reproduce
be developer (because I don't know how to be one)
Expected behavior
do not use it (unless you want to write perfectly maintainable code)
Screenshots
go for https://stacked.filledstacks.com/ (to learn the best way to build production Flutter apps)
Additional Context
No response

I got really angry and smashed my keyboard.
I completely lost CTRL.
If you can't figure out how to use Stacked you are welcome to ask questions. But you should rethink the way you act in this space.


Banshee SDMA not working with non-zero tcdm start

when memory.tcdm.start is set to an address different from 0x0, the DMA doesn't perform the proper loads/stores anymore.
This may be due to a wrong address used in binary_store/binary_load or inconsistencies between the tcdm and memory data structures used to hold memory.

Currently, the DMA cannot perform loads/stores on TCDM at all as binary_load and binary_store do not map the TCDM.
Is there something specific related to the position of the TCDM (memory.tcdm.start) that causes further problems I do not see? If yes, please describe a sensitizing case. Otherwise, the above PR should fix the issue.


feat(UI auto-heal)

This simple patch make that if a user writes anything out of where is suppossed to, Spectre's UI is re-drawn.
DEMO
Drawbacks:

It only triggers if the user writes something: If the user just decides to delete the UI in insert mode without writing anything, it won't auto-heal until it writes someting.
This is not easy to fix because Spectre's UI doesn't actually add buffer text. So we cannot compare if that text has changed. Only thing we can do is to check  if the buffer has more than 0 characters.

LGTM for me. Pinging @windwp .


Add Lexer for scdoc

The scdoc markup language is increasingly used by the Wayland
community for writing manpages. Examples are:

https://git.sr.ht/~sircmpwn/scdoc/tree/master/scdoc.5.scd
https://github.com/swaywm/sway/blob/master/sway/sway.1.scd
https://github.com/swaywm/swayidle/blob/master/swayidle.1.scd
https://git.sr.ht/~sircmpwn/aerc/tree/master/doc/aerc-tutorial.7.scd

Repost of: https://bitbucket.org/birkenfeld/pygments-main/pull-requests/828/add-lexer-for-scdoc/diff

Thanks!


Fix #280: Test if op is an offset

Check whether the auto-analyser (or user) has marked an operand as an offset, instead of checking whether the value is mapped.

Awesome, thank you @edeca!


Refactoring set, get and disable usage export bucket samples

Refactoring set, get and disable usage export bucket samples by putting them in separate files. Removal of compute_instances_verify_default_value region tag as we decided not to use it.

Pending TW's review before merging


getfastq --id is currently broken

when just looking for an SRA ID instead of the metadata.tsv, I get this error:

amalgkit getfastq --threads 8 --id SRR7699519 -e<EMAIL_ADDRESS>amalgkit getfastq: start
pigz found. It will be used for compression/decompression in read name formatting.
--id is specified. Downloading SRA metadata from Entrez.
Traceback (most recent call last):
File "/Users/s229181/anaconda/anaconda3/envs/dev/bin/amalgkit", line 254, in
args.handler(args)
File "/Users/s229181/anaconda/anaconda3/envs/dev/bin/amalgkit", line 31, in command_getfastq
getfastq_main(args)
File "/Users/s229181/anaconda/anaconda3/envs/dev/lib/python3.7/site-packages/amalgkit/getfastq.py", line 517, in getfastq_main
metadata = getfastq_metadata(args)
File "/Users/s229181/anaconda/anaconda3/envs/dev/lib/python3.7/site-packages/amalgkit/getfastq.py", line 477, in getfastq_metadata
search_term = getfastq_search_term(sra_id, args.entrez_additional_search_term)
NameError: name 'sra_id' is not defined

Looking through the code, "sra_id" is only assigned by accessing the metadata.tsv, which is mutually exclusive to --id. I think the easiest solution would be as it was before the "metadata update", by creating a new metadata.tsv with just a single entry and have the rest of the code run as it is right now.
Ah, also we need to add PigZ to the dependencies.

That sounds the right solution. Could you fix it?

sure!

I got the same error message when I tried to run getfastq process using bioproject ID in gfe pipeline:
Traceback (most recent call last):
  File "/opt/conda/envs/biotools/bin/amalgkit", line 254, in <module>
    args.handler(args)
  File "/opt/conda/envs/biotools/bin/amalgkit", line 31, in command_getfastq
    getfastq_main(args)
  File "/opt/conda/envs/biotools/lib/python3.7/site-packages/amalgkit/getfastq.py", line 517, in getfastq_main
    metadata = getfastq_metadata(args)
  File "/opt/conda/envs/biotools/lib/python3.7/site-packages/amalgkit/getfastq.py", line 477, in getfastq_metadata
    search_term = getfastq_search_term(sra_id, args.entrez_additional_search_term)
NameError: name 'sra_id' is not defined

@Hego-CCTB did you fix the problem? Could you share the fixed script?

@Hego-CCTB Are you aware of Taka's question?

yes!
I'm looking into it, but failed to make progress so far. My "fix" created a host of other problems, but I hope I can get a working update out soon.

@takaW496 Problem should be fixed now. I've also included a --id_list functionality, which can process multiple SRA runs, while --id is reserved for a single run.
--id_list needs a path to a simple text file, where each ID is in a different row.
--id_list does currently only queue the download of each run, but doesn't download them in parallel (this is what I'm looking into next)
I'll close this for now, but feel free to reopen this issue if you encounter any other problems regarding this.


How to avoid SwiftSyntax annoyance?

Hello,
I'm a happy user of Swift Snapshot Testing, and this afternoon I met my first SPM problem due to a conflicting dependency on http://github.com/apple/swift-syntax from another package.
SPM error

Failed to resolve dependencies Dependencies could not be resolved because 'XXX' depends on 'swift-openapi-generator' 0.3.0..<0.4.0 and 'XXX' depends on 'swift-snapshot-testing' 1.14.1..<2.0.0.
'swift-snapshot-testing' is incompatible with 'swift-openapi-generator' because 'swift-openapi-generator' 0.3.0 depends on 'swift-syntax' 508.0.1..<509.0.0 and no versions of 'swift-openapi-generator' match the requirement 0.3.1..<0.4.0.
'swift-snapshot-testing' >= 1.14.1 practically depends on 'swift-syntax' 509.0.0..<510.0.0 because 'swift-snapshot-testing' 1.14.1 depends on 'swift-syntax' 509.0.0..<510.0.0 and no versions of 'swift-snapshot-testing' match the requirement 1.14.2..<2.0.0.

SwiftSyntax is well-known for not following semver, and just create churn in the package ecosystem. Stephen Celis has started the forum thread Macro Adoption Concerns around SwiftSyntax, so I know you're well aware of the problem.
Yes, the landscape may improve over time. For example, maybe SPM will learn to better deal with packages that only depend on swift-syntax for their own tests.
Meanwhile, the dependency of swift-snapshot-testing on swift-syntax is just a ticking bomb waiting to annoy your users when they least expect it.
I'm opening a symmetric issue in the other repository: https://github.com/apple/swift-openapi-generator/issues/329.

Hi @groue, so the issue in a nutshell is that SnapshotTesting depends on v509 of SwiftSyntax and OpenAPIGenerator depends on v508, making it impossible to depend on both. This is definitely the problem we had in mind when we created that forum post, and when Swift 5.10 is released things are going to get even hairier. But there are a few things that have happened since then that make the situation a little better.
So, a few things come to mind:

First of all, OpenAPIGenerator should really consider supporting v509 as soon as possible. There are a ton of people that are going to start depending on SwiftSyntax v509 due to macros, and so only supporting v508 is going to lead to a lot of pain (as you can see). And as far as we can tell, Apple does suggest simply dropping support for old Swift versions as soon as the new one comes out.

And second, SwiftSyntax has started to provide some tools that allow one to support multiple versions of Swift. They now provide an empty module for each version of Swift (here's v509's module), and that allows you to do #if canImport(SwiftSyntax509) in order to conditionally support v509. In the near future we will also be able to do #if canImport(SwiftSyntax510), and so on.
So, theoretically we can relax our dependency on SwiftSyntax to 508...509, and add a bunch of #if canImport(SwiftSyntax509) all over the place to make the code compatible with both versions. I've even started that work here, but there's a lot more to do. If you feel so inclined you could help out with this work, or we can try finishing it when we have time.

In conclusion, barring any fundamental changes from Apple regarding SwiftSyntax, I do think it is going to take significant work for library authors to support multiple SwiftSyntax versions and keep the ecosystem healthy. Only the most dedicated maintainers will do this work, and it's not easy.

Also this isn't really an issue with the library, per se, so I am going to move this to a discussion.


Change format of gobject, store/transmit vchData instead of hex-encoded string of a string

It really makes no sense to store/pass around hex string of a string... This should shrink data size to half its size as of now.

Hmm, no protobump? Do you plan to first upgrade all nodes and then release a new version with a protobump?

No protobump is needed, it's backwards compatible on p2p level just like #1933
Missed a thing in serialization, fab47d0 should fix it.

I see that it's backwards compatible, but as we keep the protoversion on 70208, the new code/signing will never trigger until we release a version with protoversion >= 70209.
But now that I'm thinking about it it starts to make sense. If we protobump now, old nodes will immediately start to ban new nodes.

re-utACK https://github.com/dashpay/dash/commit/fab47d0d01a6ab077d4a797bfdf90ad00900f055

Yes, I mean, it's implemented in such a way that we talk to old nodes in old format and to new nodes in new format i.e. it always serializes/deserializes correctly on a per node basis, even though it does it differently for different versions.


useAsyncData does not work with pinia storage async actions in generated project

Environment

Operating System: Windows_NT
Node Version:     v20.18.1
Nuxt Version:     3.14.1592
CLI Version:      3.16.0
Nitro Version:    2.10.4
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      default
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>pinia-plugin-persistedstate/nuxt<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>vue-yandex-maps/nuxt
Build Modules:    -

Reproduction
Commercial project, I can't show the project code, but I will describe my problem in detail with a minimal example:
git@github.com:wokalek/issue-nuxt-prerender-asyncdata-store-problem.git
Describe the bug
! The project is completely pre-generated
When navigating to a page from other page (after all dependencies are downloaded), the data from the payload does not display the page in the same way as with a direct jump to page.
Template like this:
<template>

{{ item.tags }}

</template>

At the same time, the page payload is actually loaded at the address, I see this in devtools, for example:
http://localhost:3000/product/bazalit-venti-n/_payload.json?e31404b9-477f-4833-a64b-8683b8d219fe

So it feels like
await useAsyncData(() => catalogStore.getProduct(route.params.slug))

isn't running asynchronously for payload and isn't waiting for its payload to load before it starts rendering the page, which I expect.
Is this normal behavior for Nuxt when generating? Or am I missing something?
Additional context
No response
Logs

Have reproduction repo: git@github.com:wokalek/issue-nuxt-prerender-asyncdata-store-problem.git

Could this be the unexpected behavior?

I dug into the documentation and it looks like Nuxt v3.9 added a useful composable just for managing the initial store load, callOnce.
Rewrote it and it finally worked as expected:
// await useAsyncData(() => catalogStore.getProduct(route.params.slug as string))
await callOnce(() => catalogStore.getProduct(route.params.slug as string))

But I remember that useAsyncData was supposed to do the same thing during generation, maybe something broke in it? Why doesn't it work as it should?

I've tested this with your repro and don't encounter the error you described.
I tried directly accessing page via URL, and clicking the link for navigation, and I'm not encountering the same error as yo

useAsyncData shouldn't be used for side effects like calling pinia actions. Also, it will re-execute when a nullish result came back (in the case of a void fn, undefined), leading to more problems.
callOnce (+ if needed with #30050 when ready) is the correct way to go.

callOnce (+ if needed with https://github.com/nuxt/nuxt/issues/30050 when ready) is the correct way to go.

callIOnce is not the way, because there are other problems when switching between pages.
I managed to achieve a working version using direct calls to Pinia actions and custom useFetch with its own $fetch
This approach

@manniL

useAsyncData shouldn't be used for side effects like calling pinia actions

Maybe it's worth documenting this on the Data Fetching page? Because the approach from my example repository is encountered VERY often...


Consider adding repo-review badge to README

Thanks for creating this repo!
Would you be interested in adding a review badge to the README?

These help the open-source community collect and share UX stories via http://repo-reviews.github.io and thereby increase productivity, sponsorship, and cross-pollination on a global scale.
Happy to provide one in a PR!

Thank you but I don't think there is a need for that.


[P2] Mac chip MPS mode support

Descriptions:
Currently, matrix exponential will fail with M1 chip MPS framework for rotation-based interventions. Need to figure out other ways to handle this so that M1 chip can run pyvene with trainable interventions like DAS as well.

even better, MLX support? :)


VocabBook reset when reinstalling app

Not going to fix as issue will be solved by the Cloud (targeted 0.11.0)


Standard token naming convention

At the moment the library implements the next standard tokens: ERC20, ERC721, ERC1155.
But naming Erc* is related to the Ethereum network. In the case of Polkadot, we need to define our own specifications.
For specification, we can use PSP repository. Like naming, we can use PSP20 and etc. But maybe someone has better ideas about the naming of tokens.
!ink and Rust have unique features so we also need to think about the optimal function and their signature.
For example, we can include decrease_allowance and increase_allowance to Erc20 implementation like standard functions.
This is is blocker because the naming of traits influences the generation process of selectors for functions. So changing naming of traits later will break cross-contract execution of deployed contracts.

We created a proposal to define traits for fungible tokens.
When the proposal will be approved we will adopt the implementation and will create proposals for ERC721 and ERC1155.


Free Artifact stuck / Buy Artifact stuck

As of the latest update it appears purchasing the free artifact get's stuck on the OK window.
Also purchasing the Artifacts for Gold - appears to get stuck on selecting the button to purchasing the artifact.   Screen just stays there, can you see if this is reproducible for you?
Nox - <IP_ADDRESS>
Resolution 1600x900

Та же самая проблема на блю.


cbpy wheels missing Qt dlls

I'm not sure what happened, but at least some of the cbpy wheels generated by the GitHub Actions runners are missing the Qt dlls.
If you have installed cbpy from a wheel and when you try to from cerebus import cbpy you get an error that the module could not be imported because a DLL is not found, then copy Qt6Core.dll (and other missing dlls depending on the version of cbpy you are using) to the same directory as the .pyd: %CONDA_PREFIX%\Lib\site-packages\cerebus.
I'm still working on removing Qt altogether so I'd rather not spend too much time figuring out why these DLLs aren't getting bundled in the wheels.

Duh. This was never a thing. I don't know why I forgot about this.
I updated the Wiki to include extra info: https://github.com/CerebusOSS/CereLink/wiki/cerebus.cbpy#troubleshooting
But, I also made a PR to bundle them anyway, even if only in 1 release.


Remove initial_connect_string hack.

Now that we're switching to the proxy mapper API to trigger use of a proxy, we no longer need this hack.

Known failures: #9542


[0.96.7] Zeus module not properly initialized

Basic Information

Mission version:
0.97.7
Map used:
Takistan, Malden 2035, Alitis
Mods used:
Just Simplex Services
Dedicated or local game:
Local Host
Source of the mission file (URL):

https://steamcommunity.com/sharedfiles/filedetails/?id=878715681&searchtext=kp+liberation
Individual Things
Did you edit anything within the mission files?
No
If yes, what did you edit exactly?
N/A
Short Issue Description
When in-game with no changes made to preferences except limited Zeus disabled, go to Zeus to add a pilot to the choppers at the base, then go to add "Simplex Transport module" to the unit or any other unit, simplex is either greyed out or Just doesn't do anything when clicking on the unit, Simplex still works with older versions of the KP (0.97.6) and outside of KP liberations (just stock maps with Zeus enabled). Tested on another computer the same issue persists.
Expected Behaviour

You get the prompt to add a Service
Steps to Reproduce the Issue

Screenshots, Serverlog or any other helpful Information

Sorry about missing the Template!

Not mission related, as there is no "supports 3rd party script XYZ". So contact the creator of that script. We won't and can't provide support for these things. Beside of the fact that I've never heard of the script you try to use there. First thought is, that you just made a mistake in adding the script.

It's not a script for the game, its a mod:
https://steamcommunity.com/sharedfiles/filedetails/?id=1850026051&searchtext=simplex

We'll look into it concerning initialization of Zeus modules added by mods.

Thanks a lot, Really enjoy your misisons!


ENH: Implemented find_run_stop

Also renamed RunEnd -> RunStop

:+1: from me!

Great. For the record, the reasoning here is that "start and stop" belong together and "beginning and end" belong together. The current behavior (before this PR) mixed them with "start" and "end." See for example Python slice objects, which use start and stop. This PR matches that convention.


Do we want to support iterators for data loading?

 Issue by skrawcz
Monday Feb 07, 2022 at 17:25 GMT
Originally opened as https://github.com/stitchfix/hamilton/issues/68

What?
If we want to chunk over data, a natural way to do that is via an iterator.
Example: Enable "input" functions to be iterators
def my_loading_funct(...) -> Iterator[pd.Series]:
     ...
     yield some_chunk

This is fraught with some edge cases. But could be a more natural way to chunk over large data sets? This perhaps requires a new driver -- as we'd want some next() type semantic logic on the output of execute...
Originally posted by @skrawcz in https://github.com/stitchfix/hamilton/issues/43#issuecomment-1030961335
Things to think through whether this is something useful to have:

Where would we allow this? Only on "input" nodes?
How would we exercise them in a deterministic fashion? i.e. does execute() care? and we iterate over them until they're exhausted? Or does execute() only do one iteration?
How do we coordinate multiple inputs that are iterators? What if they're of different lengths?
How would we ensure people don't create a mess that's hard to debug?
Would this work for the distributed graph adapters?

 Comment by elijahbenizzy
Saturday Oct 29, 2022 at 17:31 GMT

Yeah I'd need to see more of a workflow/motivating example for this TBH. E.G. a graphadapter that chunks up data and iterates in a streaming sense could be high-value as well...

OK, inspired by @jdonaldson's hamilton-like framework, I'm curious what could happen if we use chunking. Going to walk through a few different UIs I've been mulling over that would fit into the way we currently do things.
some use-cases:

Run the whole DAG on a stream of data -- E.G. run it within a kafka stream
Mini-batch training (everything streaming until the end, when we combine it all together to form a model)
Training until resolution (E.G. train until a loss hits a certain value or a number of iterations has been hit)
Running over multi-configurations (another way of doing subdags, actually, but this could be dynamic/runtime generated)
Generating the same data from multiple files and joining them together

requirements/nice-to-have

Superset of Hamilton/what can be run now
Ability to run a node only once, and run a node every time a batch is executed (see #90)
Does not preclude intelligent caching -- E.G. it gets halfway through and dies, we should be able to store the state
. Hamilton does not store everything (as we currently do now) -- ideally we'd just store the outputs in memory

Ideas
Chunking with type annotations
The idea here is that we use typing.Annotated to specify a function "shape
def training_files() -> List[str]:
    return [file_1, file_2, file_3]

def training_batch(training_files: List[str]) -> Chunked[pd.DataFrame]:
    """Releases the dataframe in batches for training."""
    for mini_training_file in training_files:
        yield pd.read_csv(mini_training_file)

def bad_data_filtered(training_batch: pd.DataFrame) -> pd.DataFrame:
    """Map operation that takes in a dataframe and outputs a dataframe. This is run each time the training_batch function is completed. We know that to be the case, as it is a pure map function."""
    return training_batch.filter(_filter_fn(training_batch))

def X(training_batch: pd.DataFrame) -> pd.DataFrame:
    return training_batch[FEATURE_COLUMNS]

def Y(training_batch: pd.DataFrame) -> pd.Series:
    return training_batch[TARGET_COLUMNS]

def model(X: Chunked[pd.DataFrame], Y: Chunked[pd.Series]) -> Model:
    """Aggregate operation. This is run one time per each yield from before, but the final model is returned"""
    model = Model()
    for x, y in zip(X,Y):
        model.minibatch_train(x,y)

Say we have three batches -- what's the order of operations?

training_files is executed once
the subdag consisting of bad_data_filtered -> X,Y is executed four times (one for each input)
the subdag consisting of model is executed once -- looping over the inputs

So, the rules are:

Generator fns Anything with Chunked[...] as the return type is treated as a generator
Map fns Anything without Chunked as the return type or the input type is...
a. Called once per yield if a Chunked is upstream
b. Called once if no Chunked is upstream
Aggregator fns Anything with Chunked as the input type but Chunked not as the output type is run once using the upstream generator
custom maps Anything with Chunked as both is a little weird -- its equivalent to (1.a), but has the potential to compress/extend the iteration. TBD if this is supported... E.G. batching over batches.

There's some interesting implications/extensions.
Hydrating from cache
In this case, model isn't saved (or rather, it is, but it can't be used). You could imagine something like this:
def model(X: Chunked[pd.DataFrame], Y: Chunked[pd.Series], model: Model=None) -> Model:
    """Aggregate operation. This is run using the generator from before, but the final model is returned"""
    model = Model() if model is None else model
    for x, y in zip(X,Y):
        model.minibatch_train(x,y)

In this case, it accepts a previous model from the DAG run, or you can seed it from a certain result. Note, however, that
this would have to come with a truncation of the upstream data. So, what this implies is that you could rerun from where you left off, so long as you add the ability to self-hydrate.
Parallelization
Any _map_ function could easily be parallelized, which could provide natural node fusion (fuse all the nodes in the map operation). This is just plain-old map-reduce.
Logging functions
We could potentially break the aggregators into two and have one map it. There's likely a much cleaner way to write this, but...
def model_training(X: Chunked[pd.DataFrame], Y: Chunked[pd.Series]) -> Tuple[Model, TrainingMetrics]:
    """Aggregate operation broken up. Note that the model is just returned on the last yield."""
    model = Model() if model is None else model
    for x, y in zip(X,Y):
        metrics = model.minibatch_train(x,y)
        yield [model, metrics]

# Just returns the ID of where it was logged
# This is a side-effecty function and should likely be a materialized result
def logger(model_training: Chunked[Tuple[Model, TrainingMetrics]]) -> str:
    run_instance = generate_run_intance_from_logger()
    for _, metrics in model_training:
        run_instance.log(metrics)
    return run_instance.id

def model(model_training: Chunked[Tuple[Model, TrainingMetrics]]) -> Model:
    *_, (final_model, __) = model_training
    return final_model

Note that this implementation likely involves intelligent caching, as two outputs depend on it.
Nested Chunking
Yeah, this is too messy to allow for now, so I'm going to go ahead and say its banned. Could be implemented if we allow the Chunk->Chunk shape of a function.

OK, latest API proposal -- feel free to react/comment. Planning to scope/implement shortly. Note these are just adaptations of the above.
Two primary use-cases we want to handle:

Map over an arbitrary number of files, process, then join (either in parallel or in series)
Minibatch training -- loading a bunch of data, doing feature engineering, updating the model's state (likely in series, possibly in parallel)

API
We are using type-hints to handle this -- they will be loose wrappers over generators. Three generic types, inspired (in part) by classic map-reduce:
Sequential, E.G.
def files_to_process(dir: str) -> Sequential[str]:
    """Anything downstream of this that depends on `files_to_process` as an `str`
    will run in sequence, until a Collect function."""
    for f in list_dir(dir):
        if f.endswith('.csv'):
            yield f

Parallel (likely not in v0), E.G.
def files_to_process(dir: str) -> Parallel[str]:
    """Anything downstream of this that depends on `files_to_process` as an `str`
    can run in parallel, until a Collect function. Note that this means that this entire generator might be run greedily, and the
    results are dished out"""
    for f in list_dir(dir):
        if f.endswith('.csv'):
            yield f

Collect, E.G.
# setting up basic map reduce example
def file_loaded(files_to_process: str) -> str:
    with open(files_to_process, 'r') as f:
        return f.read()

def file_counted(file_loaded: str) -> dict:
    return Counter(tokenize(file_loaded))

def word_counts(file_counted: Collect[Counter]) -> dict:
    """Joins all the word counts"""
    full_counter = Counter()
    for counter in file_counted:
        for word, counter in counter.items():
            full_counter[word] += count
    return full_counter

The rules are as follows:

These are all valid edges:

Sequential[T_1] -> T_1
Parallel[T_1] -> T_1
Parallel[T_1] -> Collect[T_1] (degenerate case)
Sequential[T_1] -> Collect[T_1] (degenerate case)
Sequential[T_1] -> [T_1] -> ... [T_n] -> Collect[T_n] (rerun a whole group of nodes with different inputs)
Parallel[T_1] -> [T_1] -> ... [T_n] -> Collect[T_n] (rerun a whole group of nodes with different inputs)

Nothing "mapped" by Parallel or Sequential can be left dangling (it must be "reduced" with Collect)
Multiple nodes can subscribe to a generator (E.G. two functions can yield) -- they will get the same result, and it will be treated like a spliterator.
diamond patterns will follow from (3) -- effectively a join within a subdag

Edge cases

See above for multiple listeners/diamond patterns
No commitments on nested generators yet -- TBD on complexity
Joining two generators (multiple Collect types on different ones) should probably not be allowed for simplicity sake. Rather, the operation over the input types should probably be pushed upstream to the generator.

Implementation
TBD for now -- will scope out and report. First implementation will likely break some of the edge cases above. Some requirements though:

We should have a path for caching mid-sequential (E.G. idempotent DAGs)
We should have a path for debugging "subdags"
We should reduce the memory used so we don't store anything we don't need -- otherwise it'll be messy (this requires changing core Hamilton)
We should know/track that different subdags are that -- both in the viz (dotted lines/groups), as well as in some metadata that's reported afterwards.

More edge cases:

Something outside a Sequential/Collect group depends on something inside it (this is actually not an edge case, this is dangling group)
Two collects on the same Sequential -- this should probably work, but we can ban it for now

We have some of this with Parallelizable and Collect. So closing for now as partially implemented.


How to warp?

Hi,
Given the calculated flow, how to warp an image A to image B? Thanks!

Hi,
I haven't written code for that operation, but you can look at other optical flow repos that offer these functions.
For backward warping, you can look at the WarpingLayer at https://github.com/visinf/irr/blob/master/models/pwc_modules.py.
For forward warping, you could adapt the function forward_interpolate from https://github.com/princeton-vl/RAFT/blob/master/core/utils/utils.py to work with images or check the soft-splatting operation at https://github.com/sniklaus/softmax-splatting.
Best,

I was just looking for a warp function that warp image A to image B with the given motion vectors, no need gradient calculation.
Thank you for the resource!


Fix golangci-lint version

What this PR does / why we need it

Update golangci-lint version to 1.51.0 which is supported by go 1.18
Update the workflow lint to go 1.18 and remove lint cache

Which issue(s) this PR fixes

Fixes #
Describe testing done for PR

Release note

Additional information
Special notes for your reviewer

Also since we are fixing linters, can you also remove the deprecated linters like in
https://github.com/vmware-tanzu/tanzu-plugin-runtime/pull/105?


Convert to HTTPS-only plugin

This converts the upstream heroku_syslog_http input plugin into a
new standalone heroku_http plugin. This is a first attempt at cleaning
up the code and making it more special purpose.

Remove in_heroku_syslog.rb
Rename in_heroku_syslog_http.rb to in_heroku_http.rb
Rename logplex.rb to parser_logplex.rb
Remove tag from configuration parameters
Remove king from logplex parser
Update tests
Run through rubocop to clean up syntax

Signed-off-by: Chris Gianelloni<EMAIL_ADDRESS>

BTW, I know this doesn't include documentation. I plan on doing that in a separate request, once this has been approved and stabilized.


Programming Languages and Gwion.

The more programming languages this ide has, the more it will appeal to iPad users. So, I recommend focussing the next release on new programming languages. This is a great one to add considering its new and gaining popularity.
https://gwion.github.io/Gwion/
Here is the source code: https://github.com/Gwion/Gwion
Please add it to Code App.
Maybe make a command for it too.

Gwion dev here.
I can provide help and hints on how to build gwion

Thanks for the suggestion! I'll definitely take a look.


[CWS] make sure we call ResolvePackage only once

What does this PR do?
This PR makes sure we call ResolvePackage only once, and not once for package name, version, and source version. This is especially important when inserting events in activity dumps where we resolve those 3 fields and ended up resolving the same package 3 times.
Motivation
Describe how to test/QA your changes
Possible Drawbacks / Trade-offs
Additional Notes

/merge


[Ruby] Initial Autofix Rubocop work

🤔 What's changed?
 Also a few other small limited Autofix cops.
I have also fixed 2 individual areas where the jsonschema was adding redundant lines/code smells
⚡ What's your motivation?
Make the codebase rubocop compliant
🏷 What kind of change is this?

:bank: Refactoring/debt/DX (improvement to code design, tooling, etc. without changing behaviour)

♻ Anything particular you want feedback on?

📋 Checklist:

[x] I agree to respect and uphold the Cucumber Community Code of Conduct
[ ] I've changed the behaviour of the code

[ ] I have added/updated tests to cover my changes.

[ ] My change requires a change to the documentation.

[ ] I have updated the documentation accordingly.

[ ] Users should know about my change

[ ] I have added an entry to the "Unreleased" section of the CHANGELOG, linking to this pull request.

This text was originally generated from a template, then edited by hand. You can modify the template here.

NB: @chybz - Something was up here with a run that failed on cmake cmate update
It might be nothing, but maybe something to check / monitor: https://github.com/cucumber/messages/actions/runs/8817284910/job/24203303631?pr=217
It does look like it was just a flaky connection timeout (But the other 3 then all got auto cancelled too)

@luke-hill yeee thanks for the report. I fixed the exact same issue in gherkin end just forgot to fix it here also.


UG: address vetting comments

Address vetting comments
Italicize UI component names in Add command and feature summary list
Add Clear command

https://silvernitro.github.io/tp/UserGuide.html

Codecov Report

Merging #216 (b9daa4f) into master (f2a1d2a) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #216   +/-   ##
=========================================
  Coverage     81.68%   81.68%
  Complexity      650      650
=========================================
  Files            96       96
  Lines          1780     1780
  Branches        185      185
=========================================
  Hits           1454     1454
  Misses          255      255
  Partials         71       71

Continue to review full report at Codecov.

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


Added Codecov Feature

Related to #19.
What's Changed?
I have added an after_success step to "Python 3.6" stage of Travis. As to why Python 3.6, it will be tested last and if it fails, the coverage will not be generated and sent to Codecov.
I have added a shields badge (with the same flat square style) to readme.
How to Apply It?

Warning
All these steps had better be done before merging this PR, just in case.

First, @AWConant needs to create a Codecov account with the same username, preferably with Github login to Codecov which will autocreate and autosync repositories.
Then, @AWConant will need to add the repository to codecov. @AWConant might not see "Add Project" button, if it is the case, it is in "Profile" page, which is this when @AWConant creates a new account with the same name.
When he adds the repo to Codecov, he will see an environment variable which is called CODECOV_TOKEN. He should copy the content of this token.
Then, @AWConant will go to Travis page of the project. Click "More Options" and then settings as in the image below:

In the "Environment Variables" section, @AWConant will fill the form below:

Name will be CODECOV_TOKEN.
Value will be the string that @AWConant has copied on Codecov project page.
Display value in build log is better off since @AWConant will not want to share this secret key.

Then, add it. My settings on forked repo seems like below:

Then, merge this PR.
The badge is already added and will appear on front page.

I also have some things to say how coverage works just in case. This comment will be edited.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@596db2a). Click here to learn what that means.
The diff coverage is n/a.

@@          Coverage Diff           @@
##             master   #26   +/-   ##
======================================
  Coverage          ?   85%
======================================
  Files             ?     6
  Lines             ?   320
  Branches          ?     0
======================================
  Hits              ?   272
  Misses            ?    48
  Partials          ?     0

Continue to review full report at Codecov.

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

@AWConant Can you look at this?