stumbled upon a bug in vite-plugin-ssr's source code.

Description
No response
Error Message + Error Stack
Error<EMAIL_ADDRESS>You stumbled upon a bug in vite-plugin-ssr's source code. Reach out at https://github.com/brillout/vite-plugin-ssr/issues/new or https://discord.com/invite/qTq92FQzKb and include this error stack (the error stack is usually enough to fix the problem). A maintainer
will fix the bug (usually under 24 hours). Don't hesitate to reach out as it makes vite-plugin-ssr more robust.
    at assertConfig (C:\Techniath\sa-garage-door\node_modules\vite-plugin-ssr\dist\cjs\utils\getOutDirs.js:92:29)
    at determineOutDir (C:\Techniath\sa-garage-door\node_modules\vite-plugin-ssr\dist\cjs\utils\getOutDirs.js:34:9)
    at Object.config (C:\Techniath\sa-garage-door\node_modules\vite-plugin-ssr\dist\cjs\node\plugin\plugins\buildConfig.js:22:57)
    at resolveConfig (C:\Techniath\sa-garage-door\node_modules\vite\dist\node\chunks\dep-27bc1ab8.js:61175:33)
    at async doBuild (C:\Techniath\sa-garage-door\node_modules\vite\dist\node\chunks\dep-27bc1ab8.js:39023:20)
    at async build (C:\Techniath\sa-garage-door\node_modules\vite\dist\node\chunks\dep-27bc1ab8.js:39011:16)
    at async triggerFullBuild (C:\Techniath\sa-garage-door\node_modules\vite-plugin-ssr\dist\cjs\node\plugin\plugins\autoFullBuild.js:50:5)
    at async Object.writeBundle (C:\Techniath\sa-garage-door\node_modules\vite-plugin-ssr\dist\cjs\node\plugin\plugins\autoFullBuild.js:24:17)
    at async Promise.all (index 0)
    at async handleGenerateWrite (C:\Techniath\sa-garage-door\node_modules\rollup\dist\shared\rollup.js:23589:9)
    at async doBuild (C:\Techniath\sa-garage-door\node_modules\vite\dist\node\chunks\dep-27bc1ab8.js:39185:20)
    at async build (C:\Techniath\sa-garage-door\node_modules\vite\dist\node\chunks\dep-27bc1ab8.js:39011:16)
    at async CAC.<anonymous> (C:\Techniath\sa-garage-door\node_modules\vite\dist\node\cli.js:738:9)
[!] Error: unfinished hook action(s) on exit:
(vite-plugin-ssr:autoFullBuild) writeBundle

ERROR: "build:vite:client" exited with 1.
ERROR: "build:vite" exited with 1.

Please ignore, I was running incorrect build command. I have another issue. I will open the ticket for that


Build postgres image with goreleaser

@tdmanv I guess this is already fixed as a part of https://github.com/kanisterio/kanister/pull/251

It was indeed!


tempsense: manual place of header insts results in overlapping tap cells

Header cells are large enough that manual placement with the customPlace_east procedure makes them overlap with the tap cells in the design, failing placement checks (and thus, the flow).
(header cell highlighted)

(overlapping tap cell highlighted)

This happens when manual placement is done before tapcell is called and also after.

We should have multiple versions of these header cells (different sizing, and different layouts). That would increase DSE options and probably improve results.
Another point is that we could use differential inverters in the subthreshold ROs. Or other topologies.

Related: https://github.com/The-OpenROAD-Project/OpenROAD/issues/2210

Closed by #111


Build fails with complaint that get-instrinsic is not declared as a dependency

Hey there!
I see that your latest tag (v1.0.1) which was changed recently, is now producing an error:
ERR!         get-symbol-description tried to access get-intrinsic, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.
ERR!         Required package: get-intrinsic
ERR!         Required by: get-symbol-description@npm:1.0.1 (via /builds/sparksuite-family/sparksuite/fake-project/.yarn/cache/get-symbol-description-npm-1.0.1-be02e509f1-3feb5130ef.zip/node_modules/get-symbol-description/)

What's the fix for this, please?
Many thanks!

whoops, thanks. will publish a fix shortly.

v1.0.2 published.

Thank you very much!  Will give it a whirl.

Worked like a charm.  Thank you!


TODO: change names of env files to reflect the smk files

We should probably have a consistent naming scheme for the env yaml files, one per smakemake module, or at least have them related somehow if rules within a module need different environments, like in the example of CONCOCT.

addressed with PR #44


Migration guide from Steam API to Nakama

This issue is meant to track interest from other developers in a guide showing how to migrate from the Steam API to Nakama. This could include differences in what endpoints are called and when, what the returned data looks like, best practices, what features are offerred/not offered, and so on.

I'd give this a vote.


Make the Cmake files a Cmake library

Whenever I want to use this project, I have to copy a bunch of boilerplate Cmake code to different places, which is rather inconvenient and error-prone. It would be nice if the code can become a Cmake library to solve this issue of copying.
By library I mean something similar to ixm:
https://ixm.one/
This is all I need to install ixm:
include(FetchContent)
FetchContent_Declare(ixm URL https://get.ixm.one)
FetchContent_MakeAvailable(ixm)

I have started making the Cmake library reusable:
https://github.com/aminya/cmakelib
The Index.cmake file can be included, and then the top-level CmakeLists.txt would be much simpler.
@lefticus I would like to transfer that repository to this organization so we can work on it together.


Deliver sync video

So here's a first high level review

adapt to the fact that a single trailer is supported, not one per language
see my other comments
ensure that the changes under spaceship are required. If they are not, remove them, if they are, split the patch into 2, one for spaceship which we will try to get integrated ASAP.
documentation about the expected layout needs to be updated
nitpick: I see that the apple documentation calls preview_image as poster image instead. We might want to revisit our code.

We also need to update the README !
This part:
###### Upload screenshots, metadata and your app to the App Store using a single command

`deliver` can upload ipa or pkg files, app screenshots and more to iTunes Connect from the command line.

This part:
# Features


Update MD file on new branch 2017-11-08_03-27-43

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/content1.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


refactor(rendering)!: migrate chunk vertex attribute changes

This migrates chunkMesh to take advantage of this attribute scheme. I also migrated the code to take advantage of GLSL 330.  There isn't really any significant performance changes from what I can tell. one nice thing about this change is that renderdoc is able to properly render frames from the game with debug information about incoming vertices and different state of the rendering peipline. should make it easier to debug our render pipeline.
PR: https://github.com/Terasology/CoreRendering/pull/59

looks like we don't really take good advantage of the depth pass well. most of the texture is unused from what I can tell.

so this should be a first pass on this logic. we probably want to tweak this more.

here is how I get this to work under renderdoc
I've just been building the project in intellij and executing ps aux | grep .Terasology and copying the classpath into RenderDoc

/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Dvisualvm.id=189314906091785 -Xms256m -Xmx1536m -javaagent:/home/michaelpollind/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/211.7142.45/lib/idea_rt.jar=38783:/home/michaelpollind/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/211.7142.45/bin -Dfile.encoding=UTF-8 -classpath /tmp/classpath973167907.jar org.terasology.engine.Terasology -homedir -noCrashReport

here is how I get this to work under renderdoc
I've just been building the project in intellij and executing ps aux | grep .Terasology and copying the classpath into RenderDoc

/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Dvisualvm.id=189314906091785 -Xms256m -Xmx1536m -javaagent:/home/michaelpollind/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/211.7142.45/lib/idea_rt.jar=38783:/home/michaelpollind/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/211.7142.45/bin -Dfile.encoding=UTF-8 -classpath /tmp/classpath973167907.jar org.terasology.engine.Terasology -homedir -noCrashReport


Cleaning of project in VS does not clean completely

Describe the bug
I was having some XAML issues, when I cleaned the solution, the problem persisted. When I ran git clean -xfd the problem disappeared. So independent of the issue I was looking at, clearly cleaning the solution does not work properly.
I have verified that even after running clean twice the obj folder is far from empty:
> tree /F
obj
│   BrandMatrix.Modern2.csproj.nuget.dgspec.json
│   BrandMatrix.Modern2.csproj.nuget.g.props
│   BrandMatrix.Modern2.csproj.nuget.g.targets
│   project.assets.json
│
└───x64
    └───Debug
        └───net5.0-windows10.0.19041.0
            │   .NETCoreApp,Version=v5.0.AssemblyAttributes.cs
            │   apphost.exe
            │   BrandMatrix.Modern2.assets.cache
            │   BrandMatrix.Modern2.csproj.FileListAbsolute.txt
            │
            ├───DocumentationGeneration
            ├───embed
            │       embed.resfiles
            │       embed.resfiles.intermediate
            │
            ├───Generated Files
            │       cswinrt.rsp
            │       WinRTEventHelpers.cs
            │
            ├───intermediatexaml
            │       BrandMatrix.Modern2.dll
            │       BrandMatrix.Modern2.pdb
            │
            ├───Licenses
            ├───ref
            └───View
                    FlyInStyles.g.cs
                    FlyInStyles.g.i.cs

Expected behavior
Manually cleaning the solution should delete all build outputs.
Version Info
Visual Studio 16.10.3
NuGet package version:
WinUI 3 - Windows App SDK 0.8: 0.8.0

Windows app type:

UWP
Win32

Yes

Windows 10 version
Saw the problem?

Insider Build (xxxxx)

21H1 (19043)
Yes

October 2020 Update (19042)

May 2020 Update (19041)

November 2019 Update (18363)

May 2019 Update (18362)

October 2018 Update (17763)

Device form factor
Saw the problem?

Desktop
Yes

Xbox

Surface Hub

IoT

Additional context
Binary clean build log (.binlog):
_Debug_x64_Build_2021-07-08T14_23_14.1019256+02_00.zip

I've seen this issue with many versions of VS while working in Winui2 as well.

It does seem like we could be doing a better job of recording intermediate files that get generated during the build!

Keep alive (re #8638)


LUIS Intent

The document suggests that you use TriggerActions to match LUIS intents. However, if you do thi,s then even if you are in a dialog, if an intent match happens then you will be sent off to a different dialog. Also LUIS will be called with every interaction, even if you are in a dialog.
Instead you should use an IntentDialog with a LUIS recogniser, Otherwise issues can arise:
In the last hack I ran both of the teams using node followed this documentation and both had issues. One team for example had two intents in Luis "Book a holiday" and "Book a course". If the user was pointed to the "Book a course" dialog they would be asked a questions:

How old are you. Next they would be asked:
Which Country are you coming from. The user could enter any country. But if they entered "Russia" then an exception would be thrown.

We traced the issue back to the triggerMethod in this documentation. What was happening was that even though the user was in a dialog, LUIS was being called every time a user responded. If an intent is matched it will try and route you to a correct dialog. In the instance above, LUIS had incorrectly tagged "Russia" as an intent for "Book a Holiday" so it then tries to forward the user on  to the Book a course dialog (This fails also because you are already in a dialog).
Of the 2 node teams at our hack both had this same bug. We switched both of them over to using a LUIS recogniser and it solved the issue.
Is it ok for me to go a head and make a pull request containing documentation on how to do LUIS with a recogniser.

@thebeebs This is good feedback. Please submit a PR and I'll ask our LUIS expert to review. Thanks very much for your contribution!


CSIP3

CSIP3: Is @csip:OTHERTYPE necessary, since the datatype of @TYPE is string?
Section: CSIP3

@csip:CONTENTINFORMATIONTYPE is having controlled vocabulary which means CSIP5 is necessary.


bug(stream): incorrect Row equal comparison in case null value exist.

Currently, the equal comparison for Row is auto derived. However, since we are using None to represent the null value, an equal comparison between two identical rows with null values will produce True. Here null value (unknow) should be treated as false.
#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)]
pub struct Row(pub Vec<Datum>);

pub type Datum = Option<ScalarImpl>;

cc. @TennyZhuang

should implement your own eq function if you want to do this, never change the eq impl of Row. Otherwise there might be problems with Hash.

In a nutshell, SQL's eq should be different from our internal Eq.

Nope. I'm talking about a general HashMap object. For example,
x: HashMap<Row, Row>
Now we have x.insert(empty_row), but we cannot call x.get(empty_row) to get a record, and even call x.remove(empty_row) to delete a record. That's not acceptable for a hashmap object.

Nope. I'm talking about a general HashMap object. For example,
x: HashMap<Row, Row>
Now we have x.insert(empty_row), but we cannot call x.get(empty_row) to get a record, and even call x.remove(empty_row) to delete a record. That's not acceptable for a hashmap object.

Got it. In this case I will not change the impl for Row. Instead I will use trait HashKey as the key in the hash map. i.e. HashMap<SerializedKey, Row> or HashMap<FixedKey, Row>.


Webjob names are inconsistent when used to start/stop and list webjobs

Describe the bug
Running az webapp webjob continuous list provides a list of webjobs with names that cannot be used to start/stop the webjob directly. It looks like the names provided is in the format of {appservicename}/{webjobname} whereas start/stop only accepts the webjob name
Command Name
az webapp webjob continuous stop
az webapp webjob continuous start
To Reproduce:

az webapp webjob continuous list --name custom-appservice --resource-group CustomResourceGroupName
az webapp webjob continuous stop --name custom-appservice --resource-group CustomResourceGroupName --webjob-name custom-appservice/worker
az webapp webjob continuous start --name custom-appservice --resource-group CustomResourceGroupName --webjob-name custom-appservice/worker

Expected Behavior
Listing a list of webjobs using az webapp webjob continuous list will provide a list with names that can be used or az webapp webjob continuous start/stop accepts names provided by the list.
Environment Summary
Windows-10-10.0.19041-SP0
Python 3.6.8
Installer: MSI

azure-cli 2.20.0 *

Additional Context

route to appropriate team

tagging with Functions since webjobs is functions related


chore: Fix build with NPM 5

npm pack package now treats package as a npm published package
instead of a local directory name. Disambiguate by changing it to ./package

Approved in https://github.com/NativeScript/ios-runtime/pull/833


Feat: add keypair generation command

Hello there,
I'd like to remove the most annoying part of the bundle installation: leverage openssl extension to generate the key pair in a one-liner 🙂
If you like this one, with the -n option, we could update the flex recipe (unfamiliar with this, but I assume that's doable) so that public / private keys are generated on the fly during composer install.
Thoughts?
Ben

Hey,
Don't worry about the failing build, it will go away with PHP 5.6 support in #816.
I'm going to think about the best way to leverage this with flex, but I'm 👍 on the idea.
Thanks for the PR.

Thanks @chalasr 👍

Thanks @chalasr 👍

It took time, but here we go, this is in now. Thank you very much @bpolaszek.

No worries / no hurries, thank you for taking the time to review this 🙂

Thanks for the feature!

So this command will still use openssl to generate keypair?


440 update GitHub actions

What this PR does / why we need it: Updates Github Action triggers for Chromatic and test builds
Which issue(s) this PR closes:
Closes #440
Special notes for your reviewer:
Suggestions on how to test this:
Does this PR introduce a user interface change? If mockups are available, please link/include them here:
Is there a release notes update needed for this change?:
Additional documentation:

coverage: 97.774%. remained the same
when pulling ccb54138c4c08be728c9d76f622435117daa5911 on 319-update-github-actions
into 6bc2261756a466f857cf5507d0c19e03800a9eff on develop.

Closing this to trigger the PR reopen event

Re-opening to test that github actions will run


Sam/pg graphql nix darwin

What kind of change does this PR introduce?
pg_graphql could not build on aarch64-darwin
This PR fixes that problem + maintaining builds on x86_64-linux and aarch64-linux

This PR was not based on the desired branch. Closing will resubmit


Generate Torque mapping function: See drawing

image

this is what i have so far, does this look right
float torqueThing(float torque, float angle, float speed) {
	return torque - abs(cos(angle) * 0.01 * speed);
}


Fix account type FK migration, only create missign account types

Fix for https://github.com/CartoDB/cartodb/issues/13777 migration
Makes sure not to create FREE account type if it exists (via default account types)

FYI @alrocar


Updated Float Information

Floats are removed from the flow of content which can be verified in your source listed.

Thanks for catching that!

No problem, I will go through more of the information as I get more time.


Email OTP won't receive after providing wrong TOTP and come back

Describe the issue:
Email OTP won't receive after providing the wrong TOTP and coming back to the multi-option page.
How to reproduce:

Login to the Console
Configure a login sequence for an application with Username and Password, Email OTP and TOTP as second factor options
Try to login to the application and select the TOTP as the desired option.
Provide wrong TOTP and come back to the multi-option page
Try email otp option now
You won't get the email otp

Expected behavior:
Even after failure attempt from another authenticator, still needs to get the email otp.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [IS 7.0.0]
OS: [Mac]
Database: [H2]
Userstore: [JDBC]

Closing since this is completed.


Deleted media that included in upload field hasMany, showing undefined id in admin panel

Describe the Bug
When an item media deleted from collection, that is already linked to upload field with an option hasMany: true, causing error: Cannot read properties of undefined (reading 'id').
@paulpopus
Link to the code that reproduces this issue
https://github.com/henrytrianta/payload-reproduce-has-many-issue
Reproduction Steps

Create an item in collection posts
Upload multiple images to post
Go to Media and delete one of the image
Go back to post that have the images that is already linked in but deleted
There is an error saying: Cannot read properties of undefined (reading 'id').

Which area(s) are affected? (Select all that apply)
area: core, Not sure
Environment Info
Binaries:
  Node: 22.9.0
  npm: 10.8.3
  Yarn: 1.22.22
  pnpm: 9.11.0
Relevant Packages:
  payload: 3.0.0
  next: 15.0.0
  @payloadcms/db-mongodb: 3.0.0
  @payloadcms/email-nodemailer: 3.0.0
  @payloadcms/graphql: 3.0.0
  @payloadcms/next/utilities: 3.0.0
  @payloadcms/payload-cloud: 3.0.0
  @payloadcms/richtext-lexical: 3.0.0
  @payloadcms/translations: 3.0.0
  @payloadcms/ui/shared: 3.0.0
  react: 19.0.0-rc-65a56d0e-20241020
  react-dom: 19.0.0-rc-65a56d0e-20241020
Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 24.1.0: Thu Oct 10 21:02:45 PDT 2024; root:xnu-11215.41.3~2/RELEASE_ARM64_T8112
  Available memory (MB): 8192
  Available CPU cores: 8

i am also facing the same issue

Yep, I've reproduced your issue. Many ways to handle this honestly, I pursued the one that made the most sense to me from an editors pov. PR is here.

Still relevant as of 3.8.0 it seems.


Remove circular dependency between griddle and gridRowContainer

We're using a webpack/browserify-style bundler internally (to be open-sourced at some point) that only supports es6-style requires at the top of the file, so a dynamic require like used here to resolve a circular dependency doesn't work. I changed the code to have griddle inject the class instead.
cc @kevinhughes27

Thank you!


Fix route53

Add IsTruncated to False in template list_hosted_zones_response in route53. Because it always has it.

add private zone in templates. Because it should have. It is always to False because it doesn't support for private zones.

Comment's params is optional in create_hosted_zones. It is fix to support and templates adapted to it.

add responses for methods don't have implemented in route53

thanks!


Add Ayush Mahajan to Contributors list

Closing this as it has been stalled for a long time.
@ay2306, please try going through the tutorial again if you're interested.


Copy SSPDown runbook to a correct runbook file name

Currently, SSPDown alert has a runbook URL with the name SSPOperatorDown (http://kubevirt.io/monitoring/runbooks/SSPOperatorDown.html).
This PR copies this wrong named runbook to a new correct runbook, and links the correct one from the wrong one.

/lgtm

@sradco @assafad sanity was failing because you forgot to reindex the runbooks. Fixed in #167


Chocolatey GUI first run window positioning is strange

I'm on Windows 7. When I run ChocolateyGUI for the first time after installing it, its window assumes the size of my screen. It is ignoring the fact that I have my taskbar always visible on screen (I keep it on the right instead of the bottom). Normally, maximized windows will only take up the remaining space or less. (ChocolateyGUI does so when it is maximized - but it doesn't open in a true maximized state).
Non-maximized (restored) programs that are started for the first time usually present a small window that is fully visible on screen in a so-called "default" position (letting Windows decide where to place it - resulting in a stacked look if multiple windows were opened). ChocolateyGUI seems to do this, thus placing the window offset from the top and left by some distance, but since the window itself is sized to match the screen size, the right and bottom parts of the ChocolateyGUI extend beyond the screen bounds. The user is then left to move and resize the window to fix the problem.
This bug report is related to feature request #275.

@ADTC I have just added a Pull Request to persist the window size and position.
If you have some time, would you be able to take that PR for a spin to see if it corrects this issue?
Thanks

@gep13 I'm not sure if remembering user's chosen size and position would help with the size and position on the first run (before the user has ever gotten a chance to choose it).
I will let you know if and when I get to try it. Is there a build? I'll need a binary installer.

@ADTC there are instructions on the readme of this repo that explain how to get the pre-release bits.


Attempted to change my token address to correct token address but its giving me a duplicate token error.

After merging my fork of the code i realized that i put the wrong token address and after changing it and attempting to do another pull request it is telling me there is a duplicate token which is already my token (CFP-ColdFusion Protocol)

are you talking about https://github.com/solana-labs/token-list/pull/16843 ?
because it is indeed already in there
$ grep 3TVUHQgnmW1xqS5fTuDoNDay95DTRRbizbo962UN1KzX solana.tokenlist.json -B3 -A10
    },
    {
      "chainId": 101,
      "address": "3TVUHQgnmW1xqS5fTuDoNDay95DTRRbizbo962UN1KzX",
      "symbol": "CFP",
      "name": "ColdFusion Protocol",
      "decimals": 0,
      "logoURI": "https://raw.githubusercontent.com/DanteLogan/cfp-token/main/newlogo.png",
      "tags": [
        "social-token",
        "utility-token",
        "community-token"
      ]
    },

Yes i am unfortunately I used the wrong token address and i thougj doing over a pull request with the correct address would change it. Is it possible for me to change the address?

sorry i don't understand, is 3TVUHQgnmW1xqS5fTuDoNDay95DTRRbizbo962UN1KzX the wrong address or the right address?

That is the wrong address, the correct address is
CY7meunShZiLEdD9RgXYoMampEj6DZbD87EMLNKrBzAe

your diff does NOT change the address to be that address though... look at what it does: https://github.com/solana-labs/token-list/pull/16843/files
just edit the file to change 3TVUHQgnmW1xqS5fTuDoNDay95DTRRbizbo962UN1KzX to CY7meunShZiLEdD9RgXYoMampEj6DZbD87EMLNKrBzAe and then commit that

O i see so all i need to do is change the file name in the assests folder and then change the address in the json file?

yeah

So thats exactly what i did actually as i am now checking it over, but its saying its a duplicate token, so now im confused

So i did it over and now this is the problem im getting:
found modified asset file assets/mainnet/CY7meunShZiLEdD9RgXYoMampEj6DZbD87EMLNKrBzAe/newlogo.png - only new assets are allowed

please link a PR

So i ended up just creating a new name and adding the correct address as a new token as time was a constraint for me


Need documentation for python 3.9

I need some documentation on how to combine the docker file for python 3.9 to contain my custom library + requirements.txt for installing all the files.
I am using the library below, please provide any suggestion.
https://docs.python.org/3/library/venv.html

Hey @SeamusY thanks for reaching out - please refer to the AWS documentation on Creating a Python image from an AWS base image.
For python3.9 you can use a Dockerfile similar to the below:
FROM public.ecr.aws/lambda/python:3.9

# Copy function code
COPY app.py ${LAMBDA_TASK_ROOT}

# Install the function's dependencies using file requirements.txt
# from your project folder.
COPY requirements.txt  .
RUN  pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"

# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "app.handler" ]

I did however the bootstrap is causing issues, ill copy the error of the logs but it has a “Sanity_check” trigger problem in combined with my libraries.
Yours Faithfully,
SeamusY

On 20 Jan 2022, at 02:48, Carl Zogheib @.***> wrote:

Closed #35.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.

Secondly it doesn’t answer the issue of the venv, which is what i wanted to request as i am adding libraries. Unless you recommend not to follow such standards?
Yours Faithfully,
SeamusY

On 20 Jan 2022, at 02:58, Seamus Yeo @.***> wrote:
I did however the bootstrap is causing issues, ill copy the error of the logs but it has a “Sanity_check” trigger problem in combined with my libraries.
Yours Faithfully,
SeamusY

On 20 Jan 2022, at 02:48, Carl Zogheib @.***> wrote:

Closed #35.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.

@SeamusY could you please share your Dockerfile and the error messages you're seeing?

Docker:
# FROM public.ecr.aws/serverless/extensions/lambda-insights:12 AS lambda-insights
FROM public.ecr.aws/lambda/python:3.9

WORKDIR /var/runtime/
COPY bootstrap bootstrap
RUN chmod 755 bootstrap

ENV LAMBDA_TASK_ROOT=/var/task
ENV VIRTUAL_ENV=/opt/venv

RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

COPY requirements.txt .
COPY scan.py ${LAMBDA_TASK_ROOT}
ADD pyimagesearch ${LAMBDA_TASK_ROOT}/pyimagesearch

RUN pip install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"

WORKDIR /var/task/
RUN chmod 755 ${LAMBDA_TASK_ROOT}/scan.py

CMD [ "/var/task/scan.lambda_handler" ]

Error (Only happens during run time):
curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}'
{"errorMessage": "Empty module name", "errorType": "ValueError", "requestId": "", "stackTrace": ["  File \"/var/lang/lib/python3.9/importlib/__init__.py\", line 127, in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n", "  File \"<frozen importlib._bootstrap>\", line 1027, in _gcd_import\n", "  File \"<frozen importlib._bootstrap>\", line 961, in _sanity_check\n"]}%

I'd also like to add a comment to clarify the scope of these docker images that apparently don't behave the same as the one you could easily configure/spin up from the aws console. For example: query string parameters are not supported. I couldn't find any related documentation so far.
if you do attempt to pass parameters by query string, you get a nasty error:
Traceback (most recent call last):able to unmarshal input: Expecting value: line 1 column 1 (char 0)

Example:
http://[localhost]/2015-03-31/functions/function/invocations?param1=value1&paramN=valueN
whereas, in a traditional python based lambda, this is possible by capturing them via the event['queryStringParameters'] prop.
I wish there was a more clear documentation about what's exposed somewhere in here: https://gallery.ecr.aws/lambda/python


Add support for Electrodynamics/Nuclear Science

https://www.curseforge.com/minecraft/mc-mods/electrodynamics
https://www.curseforge.com/minecraft/mc-mods/nuclear-science
Title says all

Support how? What sort of things do those mods add that could be supported in Systeams?

Closing for lack of information. If anyone has more context as to what in those mods needs support, I will reopen this.


dask.array.to_zarr() does not parse for chunks kwarg

I was trying to specify chunk size for the output zarr when writing from a dask array:
# cc_img is a dask array
cc_img.to_zarr(ccd_zarr_path,
               component=f"0/{current_pyr_lvl}",
               overwrite=True,
               compressor=compressor,
               chunks=(1,1,1,256,256)
               )

cc_img's chunks were (1,1,3,256,256)
I started getting a hard error, that zarr.create gets multiple instances of chunks keyword.
This is easily fixeable by changing expression chunks = [c[0] for c in arr.chunks] to chunks = [c[0] for c in arr.chunks] if 'chunks' not in kwargs.keys() else kwargs.pop('chunks') on line 3714.
Overall, da.to_zarr() needs a way to resolve this, as right now it implies the chunks' shape from an input array

I am afraid that this particular solution might actually break something outside of my narrow usecase.

I share that concern. In the PR I currently have this open checklist item:

Investigate unintended effects. What happens if chunks is incorrect? Can we "chunk arrays along any dimension"?

An obvious workaround, is to first rechunk the original dask array, which does not of course use any memory of CPU, but presents the right attributes to zarr.


useVirtualFileSystem breaks typechecking

Creating a Project with useVirtualFileSystem: true the getType() seems to be broken or atleast working differently than not using that configuration. See the example :
repro code in my playground
just in case I'm pasting the code:
import Project, { TypeGuards } from 'ts-simple-ast';

const project1 = new Project({
  useVirtualFileSystem: true
})
const sourceFile = project1.createSourceFile('src/index.ts', `hello([[1,2]])`)
const name1 = sourceFile.getDescendants().find(TypeGuards.isCallExpression).getArguments().map(p => p.getType().getText()).join(', ')
console.log('name1: '+name1 )

const project2 = new Project({})
const sourceFile2 = project2.createSourceFile('src/index2.ts', `hello([[1,2]])`)
const name2 = sourceFile2.getDescendants().find(TypeGuards.isCallExpression).getArguments().map(p => p.getType().getText()).join(', ')
console.log('name2: '+name2 )

and the output is
name1: {}
name2: number[][]

Does it work when you include the lib.d.ts files in the virtual file system? https://dsherret.github.io/ts-simple-ast/setup/file-system#virtual-file-system

Yes I've also noticed that when reading the compiler diagnostics - it's clear now, thanks and sorry for the trouble and missing that docs.

@cancerberoSgx it's no trouble! It's a bonus to have this information in the issue tracker too because then people can find the solution easier when they run into the problem.


Workflow fails with EACCES: permission denied, open '/home/runner/work/../...

I have a GitHub workflow that utilizes two actions<EMAIL_ADDRESS>and cloudflare/pages-action@v1. However, these actions are not functioning as expected.
name: Deploy

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      deployments: write
    name: Deploy SIYA
    env:
      SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
      DATABASE_URL: ${{ secrets.DATABASE_URL }}

    steps:
      - uses: actions/checkout@v2

      - name: Restore cache
        id: restore-cache
        uses: actions/cache@v2
        with:
          path: node_modules
          key: ${{ runner.os }}-restore-cache-${{ hashFiles('package-lock.json') }}
          restore-keys: |
            ${{ runner.os }}-restore-cache-

      - name: Install dependencies
        id: install-dependencies
        if: steps.restore-cache.outputs.cache-hit != 'true'
        run: |
          npm run setup

      - name: Deploy Slack bot
        id: deploy-slack-bot
        uses<EMAIL_ADDRESS>        with:
          wranglerVersion: '3.0.0'
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
          workingDirectory: packages/slack-bot
          command: deploy
          secrets: |
            DATABASE_URL
            SLACK_CLIENT_SECRET
            SLACK_SIGNING_SECRET
            SENTRY_DSN
        env:
          SLACK_CLIENT_SECRET: ${{ secrets.SLACK_CLIENT_SECRET }}
          SLACK_SIGNING_SECRET: ${{ secrets.SLACK_SIGNING_SECRET }}

      - name: Cache Siya site
        id: cache-siya-site
        uses: actions/cache@v2
        with:
          path: packages/siya-site/build
          key: ${{ runner.os }}-cache-siya-site-${{ hashFiles('packages/siya-site/src/**') }}-${{ hashFiles('packages/siya-site/public/**') }}
          restore-keys: |
            ${{ runner.os }}-cache-siya-site-

      - name: Build Siya site
        id: build-siya-site
        if: steps.cache-siya-site.outputs.cache-hit != 'true'
        run: |
          cd packages/siya-site
          npm run build
          chmod 777 /home/runner/work/siya/siya/node_modules/

      - name: Deploy Siya site
        id: deploy-site
        uses: cloudflare/pages-action@v1
        with:
          wranglerVersion: '3'
          projectName: siya-site
          branch: main
          directory: packages/siya-site/build
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
          githubToken: ${{ secrets.GITHUB_TOKEN }}

The workflow above encounters an error message stating "EACCES: permission denied, open '/home/runner/work/siya/siya/node_modules/.cache/wrangler/pages.json'."
Here is the error message screenshot:

An attempt was made to resolve the issue by using the command chmod -R 777 /home/runner/work/siya/siya/node_modules/.cache, but it resulted in an error message stating "operation not allowed."
Here is the screenshot of the error message:

Although it deploy the static asset to pages, but fails the workflow. If someone could assist in understanding the problem and provide a fix or workaround, it would be greatly appreciated.

I'm surprised to see that this issue is a year old. I'm also getting the same error with pages-action@v1, but only when wranglerVersion is 3. The workflow runs fine if I don't set wranglerVersion.
Run cloudflare/pages-action@v1
npm warn exec The following package was not found and will be installed<EMAIL_ADDRESS>npm warn deprecated<EMAIL_ADDRESS>This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.
npm warn deprecated<EMAIL_ADDRESS>Please use @jridgewell/sourcemap-codec instead
▲ [WARNING] `wrangler pages publish` is deprecated and will be removed in the next major version.
Please use `wrangler pages deploy` instead, which accepts exactly the same arguments.
▲ [WARNING] Warning: Your working directory is a git repo and has uncommitted changes
To silence this warning, pass in --commit-dirty=true
✘ [ERROR] EACCES: permission denied, mkdir '/home/runner/work/myproject2x/myproject2x/docs/site/.wrangler/tmp'
If you think this is a bug then please create an issue at https://github.com/cloudflare/workers-sdk/issues/new/choose
? Would you like to report this error to Cloudflare?
🤖 Using fallback value in non-interactive context: no
🪵  Logs were written to "/home/runner/.config/.wrangler/logs/wrangler-2024-07-19_14-25-45_272.log"
npm notice
npm notice New minor version of npm available! 10.7.0 -> 10.8.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.2
npm notice To update run: npm install -g<EMAIL_ADDRESS>npm notice
EXIT WHEN NOT EXPECTED
SHELLAC COMMAND FAILED!
Executing: npx wrangler@3 pages publish "." --project-name="myproject-internal-docs" --branch="" in /home/runner/work/myproject2x/myproject2x/docs/site
node:internal/process/promises:289
			triggerUncaughtException(err, true /* fromPromise */);
			^
[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "#<Object>".] {
code: 'ERR_UNHANDLED_REJECTION'
}
Node.js v20.13.1
STDOUT:
If you think this is a bug then please create an issue at https://github.com/cloudflare/workers-sdk/issues/new/choose
? Would you like to report this error to Cloudflare?
🤖 Using fallback value in non-interactive context: no
STDERR:
npm warn exec The following package was not found and will be installed<EMAIL_ADDRESS>npm warn deprecated<EMAIL_ADDRESS>This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.
npm warn deprecated<EMAIL_ADDRESS>Please use @jridgewell/sourcemap-codec instead
▲ [WARNING] `wrangler pages publish` is deprecated and will be removed in the next major version.
Please use `wrangler pages deploy` instead, which accepts exactly the same arguments.
▲ [WARNING] Warning: Your working directory is a git repo and has uncommitted changes
To silence this warning, pass in --commit-dirty=true
✘ [ERROR] EACCES: permission denied, mkdir '/home/runner/work/myproject2x/myproject2x/docs/site/.wrangler/tmp'
🪵  Logs were written to "/home/runner/.config/.wrangler/logs/wrangler-2024-07-19_14-25-45_272.log"
npm notice
npm notice New minor version of npm available! 10.7.0 -> 10.8.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.2
npm notice To update run: npm install -g<EMAIL_ADDRESS>npm notice

My step options are straightforward.
- name: Publish to Cloudflare Pages
uses: cloudflare/pages-action@v1
with:
  wranglerVersion: '3'
  accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID}}
  apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN}}
  projectName: myproject-internal-docs
  workingDirectory: ./docs/site
  directory: .

I just happened to stumble across a solution to my particular issue. No clue the root cause though.
The steps before I invoke pages-action include docker.
- name: Build mkdocs container image
  working-directory: ./docs
  run: docker build -t mkdocs .

- name: Build docs
  run: docker run --rm -v ./docs:/docs mkdocs build

If I simply replace docker with podman the EACCES errors go away and my workflow finishes successfully!
Now, if someone could make time to release pages-action@v2 I can silence the last remaining warning.
[WARNING] `wrangler pages publish` is deprecated and will be removed in the next major version.
Please use `wrangler pages deploy` instead, which accepts exactly the same arguments.


paulxstretch: update patch checksum

Looks like the patch has changed again? Right now I’m getting sha256sum '4dd7ce8eaba1f90c514c9689b63729db8ecc482f6fba087cef9a960792ce3a3b' for the patch file. Can you tell whether the current patch version is legit?


Duplicate common keys are shown when using union of TypedDict

Environment data

Language Server version: 2024.6.100
OS and version: Ubuntu
Python version (& distribution if applicable, e.g. Anaconda): 3.10

Code Snippet

from typing import TypedDict

class A(TypedDict):
    type_: int
    common: int

class B(TypedDict):
    type_: str
    common: int

def func(arg: A | B): pass

func({"type_": 1, "common": 1})

I recently noticed TypedDict keys are duplicated on hover:

While it makes sense for type_ as it differs on A and B, I'm wondering if it should be duplicated for common keys?

Thanks for the issue. Sounds like a reasonable request, although it seems to only be necessary for TypeDicts.


Dataset

Hi, thank you for your nice work! Could you provide part of the dataset to facilitate testing?

@lyqun Dataset can be share?

Hi, we currently have no plans to make the data public since there are restrictions on the use of the data due to agreements with funding agencies. The preprocessing scripts are provided in ./data/knee_cbct/ and you can also run experiments on public CT datasets.

Hello, thank you for your beautiful work. When I used the public data set NSCLC to test the effect, I processed the data according to the steps you used to process the data and trained with the default parameters, but the contrast of the reconstructed image from the training result was very poor, which was far from the effect in the paper. Could you tell me where my problem was? When I used the public data set NSCLC to test the effect, the data was processed according to the steps you used to process the data and the default parameters were trained, but the contrast of the reconstructed image was poor, and it was far from the effect in the paper. Could you tell me where my problem was

Hello, thank you for your beautiful work. When I used the public data set NSCLC to test the effect, I processed the data according to the steps you used to process the data and trained with the default parameters, but the contrast of the reconstructed image from the training result was very poor, which was far from the effect in the paper. Could you tell me where my problem was?

Thanks for your comments.
It seems that the method does not perform well on chest data. For your reference, we have conducted experiments on LUNA16, and PSNR/SSIM is 26.67/86.09 with 10 projection views.

Hello, thank you for your beautiful work. When I used the public data set NSCLC to test the effect, I processed the data according to the steps you used to process the data and trained with the default parameters, but the contrast of the reconstructed image from the training result was very poor, which was far from the effect in the paper. Could you tell me where my problem was?
##################
May I ask if you have encountered this error during your reasoning?

Namespace(name='dif-net', epoch=400, dst_list='knee_cbct', split='test', combine='mlp', num_views=3, view_offset=0, out_res=256, eval_npoint=100000, visualize=False)
mixed_dataset: ['knee_cbct']
输出dst_name: knee_cbct
CBCT_dataset, name: knee_cbct, split: test, len: 1.
load ckpt from /mnt/d/谷歌下载/DIF-Net-main/DIF-Net-main/scripts/logs/dif-net/ep_400.pth
DIF_Net, mid_ch: 128, combine: mlp
Traceback (most recent call last):
File "/mnt/d/谷歌下载/DIF-Net-main/DIF-Net-main/code/evaluate.py", line 110, in
model.load_state_dict(ckpt)
File "/home/yuanpeng/conda/envs/python310Tigre/lib/python3.10/site-packages/torch/nn/modules/module.py", line 2152, in load_state_dict
raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for DIF_Net:
size mismatch for view_mixer.layer.0.weight: copying a param with shape torch.Size([5, 10, 1, 1]) from checkpoint, the shape in current model is torch.Size([1, 3, 1, 1]).
size mismatch for view_mixer.layer.0.bias: copying a param with shape torch.Size([5]) from checkpoint, the shape in current model is torch.Size([1]).
size mismatch for view_mixer.layer.2.weight: copying a param with shape torch.Size([1, 5, 1, 1]) from checkpoint, the shape in current model is torch.Size([1, 1, 1, 1]).

Did you modify some parameters (e.g., channels, number of layers) of the model? This error means that the parameters of some layers are not matched with the loaded checkpoint.

No, I set it up exactly as in your paper. I re-tested it later. The training and testing are all the same checkpoint. However, with 24g of video memory, 10 views still cannot be accommodated, and only 4 views can be accommodated at most. In the case of 256256256 size
袁鹏
@.***

------------------ 原始邮件 ------------------
发件人:                                                                                "xmed-lab/DIF-Net"                                                                                @.>;
发送时间: 2024年1月15日(星期一) 中午1:12
@.>;
<EMAIL_ADDRESS>主题: Re: [xmed-lab/DIF-Net] Dataset (Issue #1)
Did you modify some parameters (e.g., channels, number of layers) of the model? This error means that the parameters of some layers are not matched with the loaded checkpoint.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>


SC-13 # serverless command translates project to Serverless structure

Added

SC-13: bm server serverless --out <targetdir> is a new command

undocumented, does not appear in --help

translates the project in the current working directory to the target output directory

uses a one-size-fits-all wrapper script and strict conventions to facilitate conversion

Code Review Notes

probably worth reviewing these one commit at a time

known incomplete work to be tackled in future:

[ ] custom URLs

[ ] thorough test coverage (improved significantly in #6)

[ ] friendlier instructions and error messages

[ ] CORS

[ ] HTTP response headers

[ ] HTTP status codes / errors

[x] alternative module.exports conventions for HTTP methods (see #6)

[ ] native Node.js modules (compile for Linux)

[ ] project permissions managements

[ ] cloud-hosted proxy endpoint (with above permissions)

@mymattcarroll I've fixed up the DRY and sync issues: https://github.com/blinkmobile/server-cli/blob/SC-13/lib/serverless.js

@mymattcarroll okay, really really got them all this time :)

LGTM 👍


when I want to run testing_webcam_livenessdetection.py It throws "Error, check if models and trained dataset models exists!"

first I create a virtual environment using python 3.6.8 in CentOS 7
then I activate the virtual environment and  installed the requirements using the requirements.txt file and for  installing dlib I installed cmake like this:
pip install cmake
and then clone the repo
but when I want to run this file  testing_webcam_livenessdetection.py like this:
python testing_webcam_livenessdetection.py
this line from the testing_webcam_livenessdetection.py file throws an exception =
face_encoder = FaceEncoder(model=model_recognizer, path=INPUT_DIR_MODEL_ENCODING, path_training=INPUT_DIR_MODEL_TRAINING, training=False)
and says Error, check if models and trained dataset models exists!

Hi i am having same issue how did you fix it?

Hi, you have to create some dataset with the specified format.
If you want liveness  module only you can easily extract it.
If you need help let me know.

Hi, you have to create some dataset with the specified format.
If you want liveness module only you can easily extract it.
If you need help let me know.

Yes i added some of my pictures and run train file but it gaves me that error

Hi, you have to create some dataset with the specified format.
If you want liveness module only you can easily extract it.
If you need help let me know.

Yes i added some of my pictures and run train file but it gaves me that error

I create my dataset like this:
dataset/person1/1.jpg
dataset/person2/2.jpg
and run the file:
python testing_webcam_livenessdetection.py --detector 5 --encoder 3  --liveness 0 --webcam 0 --resolution 0
and it worked!

dataset/Fahri/1.jpeg
dataset/Fahri/2.jpeg
ans goes to 6.jpeg. it gives me
[Errno 2] No such file or directory: 'models/training/facenet_re.pickle'
Error, check if models and trained dataset models exists!
```error. i am on linux the windows cant install dlib. i installed cmake with installer but i am guessing something wrong

dataset/Fahri/1.jpeg
dataset/Fahri/2.jpeg
ans goes to 6.jpeg. it gives me
[Errno 2] No such file or directory: 'models/training/facenet_re.pickle'
Error, check if models and trained dataset models exists!
```error. i am on linux the windows cant install dlib. i installed cmake with installer but i am guessing something wrong

As I remember you should first run a script that trains the model and create that file for you
Refer to readme of the project how to train the model


Cannot run piperider

Describe the bug
Trying to follow the quick start guide to install and begin to use piperider with dbt using vs code. I could do all the steps until run. So init and diagnose worked fine but run gave me an error.
To Reproduce
Steps to reproduce the behaviour:

Setup environment:
Execute command: piperider run
See error: Error: Profiler Exception: TypeError('SQLCompiler.init() got multiple values for argument 'cache_key'')

Expected behaviour
I expected it to be able to run
Screenshots

Desktop (please complete the following information):

OS: macOS v.12.6
Processor: 2,6 GHz 6-Core Intel Core i7
dbt version: 1.3.0
Python Version: 3.10.8
Version: piperider version 0.17.1

Thanks for your report. May i know the database/datawarehouse you connect to?

I found the issue by google
https://github.com/googleapis/python-bigquery-sqlalchemy/issues/83
If you installed sqlalchemy 1.4, you have to make sure that pybigquery >= 0.8
$ pip list | grep 'pybigquery\|sqlalchemy'
pybigquery                    0.10.2
SQLAlchemy                    1.4.45

Change to use https://github.com/googleapis/python-bigquery-sqlalchemy since v0.22.0


Keyup triggered on non-configured keys

Hey! Thanks for putting this extension together. I've been testing it out some today and really like the overall experience.
I encountered a bug where changing applications or tabs and coming back to the Meet causes the keyup event to trigger for other keys. For example, I configured my hot key to the option key (⌥ on a Mac), which maps to Alt for javascript event codes. When I switch to another application from Chrome, and then come back, I get muted.
From adding some console.log statements, and trying to figure out what's going on, I think the problem is that matchKeyup in src/js/hotkey.js is matching on non-configured keys. From the above example, I logged that this.keys.altKey is true, but it seems like the keyup event from the command key (⌘ on a Mac; maps to the MetaKey) has event.altKey set to false, which causes matchKeyup to return true.

This is fantastic, thanks for the pull! I'm pretty swamped at work this week, but I'll check it out this weekend. 🙌🏼

Sweet! I'll check back this weekend then :)

Pinging this just in case this drifted off

Hi there, sorry about the delay. After testing this out I remembered why I set it up this way in the first place. The reason is if you try a key combination like "shift-D" for instance, you press shift and D and are unmuted. If you release either shift OR D you are muted again.
With your pull it changes to only muting when you let go of the D.
I found another solution #8 by tracking whether a full keypress has happened. It should fix the issue of triggering keyups too easily. Try it out and if it works for you I'll merge it. Thanks again!

Just tested it out and it looks like https://github.com/MoonriseCo/google-meet-push-to-talk/pull/8 works! I'll close out my PR and leave some minor comments there. Thanks for fixing this! :)


Feat/lesq 126/slide deck styling

I want to see the slide deck with the new styling
Acceptance Criteria:

[x]  “Slide deck” title
[x]  Button to download
[x]  Styled frame around the google slides component

Issue(s)
Fixes #
How to test

Go to https://deploy-preview-1773--oak-web-application.netlify.thenational.academy/beta/teachers/programmes/combined-science-secondary-ks4-higher/units/cells-biology-3p8njnj/lessons/prokaryotic-and-eukaryotic-cells-b9qqye

Screenshots
How it used to look (delete if n/a):
{screenshots}
How it should now look:
{screenshots}
Checklist

[ ] Added or updated tests where appropriate
[ ] Manually tested across browsers / devices
[ ] Considered impact on accessibility
[ ] Design sign-off
[ ] Approved by product owner

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


Unable to dismiss second alert

Short description of the problem:
Unable to dismiss an alert that has been displayed from a handler of another alert.
What behavior are you expecting?
Second alert can be dismissed as usual
Steps to reproduce:

Copy&paste example into any I2 project, adapt this.nav reference as needed; add imports if needed; run
Click OK
Click OK

public TEST = () => {
  this.nav.present(Alert.create({
    title: 'Prompt 1',
    message: "First",
    buttons: [{
      text : 'OK',
      handler : () => {
        console.log("First OK");
        this.nav.present(Alert.create({
          title: 'Prompt 2',
          message: "Second",
          buttons: [{
            text : 'OK',
            handler : () => {
              console.log("Second OK");
            }
          }]
        }));
      }
    }]
  }));
};

I tried dismissing the alert manually (myAlert.dismiss()), putting the second alert inside a setTimeout.
Ionic 2
Plunker that shows an example of the issue
http://plnkr.co/edit/kC2EtfmONmJ9UxPVXkJE?p=preview
Run ionic info from terminal/cmd prompt: (paste output below)
Your system information:
Cordova CLI: 6.3.0
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.10
Ionic CLI Version: 2.0.0-beta.35
Ionic App Lib Version: 2.0.0-beta.19
OS:
Node Version: v6.2.0

Example of dismissing the alert manually (same effect, second alert cannot be dismissed):
public TEST = () => {
  let alert1 : Alert = Alert.create({
    title: 'Prompt 1',
    message: "First",
    buttons: [{
      text : 'OK',
      handler : () => {
        console.log("First OK");
        alert1.dismiss(); // DISMISSING MANUALLY
        let alert2 : Alert = Alert.create({
          title: 'Prompt 2',
          message: "Second",
          buttons: [{
            text : 'OK',
            handler : () => {
              console.log("Second OK");
              alert2.dismiss(); // DISMISSING MANUALLY
            }
          }]
        });
        this.nav.present(alert2);
      }
    }]
  });
  this.nav.present(alert1);
};

Apparently the right way to do it is:
public TEST = () => {
  let alert1 : Alert = Alert.create({
    title: 'Prompt 1',
    message: "First",
    buttons: [{
      text : 'OK',
      handler : () => {
        console.log("First OK");
        alert1.dismiss().then(() => { // wait for the previous transition to finish or the following alert will malfunction
          let alert2 : Alert = Alert.create({
            title   : 'Prompt 2',
            message : "Second",
            buttons : [{
              text    : 'OK',
              handler : () => {
                console.log("Second OK");
                alert2.dismiss(); // DISMISSING MANUALLY
              }
            }]
          });
          this.nav.present(alert2);
        });
      }
    }]
  });
  this.nav.present(alert1);
};

Perhaps it would be possible to put a sanity check in the code to make it more obvious to the programmer that the API is likely to malfunction.

As you can see here: #7543, the Ionic team won't add an explicit warning to the code, as it wouldn't be consistent with the rest of the framework.


Implement invite changes

https://github.com/discord/discord-api-docs/pull/3659

We dont have to implemnet that because current implementation allows null channel object


feat/binder status

Improvements to UI feedback from the thebe events mechanism, mainly to provide better feedback during longer binder connections and when using jupyterlite.

ok the binder message about a bad default ref will go once https://github.com/executablebooks/myst-theme/pull/137 comes in and we are on the latest thebe 👍

Will test out! UI looks good from the screenshots!


Mention support for ACL

Problem
I was looking for a package to maintain Redis database with support for new Redis ACL feature. By looking at readme and API documentation of your package I thought it is not included. Only testing it out and checking source code made me stay with this package.
Solution
I suggest adding these informations to make others life easier :)

Point out ACL support in features section of readme,
Add username field to documentation of connect options.

When documenting the username field for connection options, I'd recommend pointing out that the user needs access to run the INFO command at the moment, otherwise ioredis will not connect successfully (see https://github.com/luin/ioredis/issues/1211)


[mwc-dialog] mwc-select inside of mwc-dialog fires closed event on option selection

Describe the bug
Using a select inside of a dialog fires the close event on option selection
To Reproduce

Open a dialog which contains a select
Select an option
Observe closed event

Expected behavior
Using the select does not fire the dialog closed event
Screenshots
https://webcomponents.dev/edit/cCn3GwaiPsYRNQxCj7d7
Browser Version (please complete the following information):

OS: Windows
Browser: Chrome
Version: 80

I have run into this. At the moment, I'm binding to the closed event on any selects that are inside a dialog and calling stopPropagation().

This is coming from <mwc-menu-surface>, whose closed event is composed and propagating up. This is needed so that select can listen for menu's closed event, but a better solution may be needed, such as forwarded the event instead of letting it bubble up indefinitely through shadow roots.

I ended up running a check: if (e.target.tagName === "MWC-DIALOG"). Not the biggest issue, but should probably be documented as a workaround. Thanks for the help!

@asyncLiz @e111077 i ran into this today too. should it really be a bubbling event?
you can see that an mwc-menu listens directly on its surface, which i imagine most surface-consuming elements will do too:
https://github.com/material-components/material-components-web-components/blob/5dd85d0c6700033fdc0da40d2424e9e8c46b0141/packages/menu/mwc-menu-base.ts#L155
so it really doesn't need to bubble, does it? unless im missing something
for anyone encountering this meanwhile, you can check if event.currentTarget is the dialog you expect it to be (or since you're unlikely to ever have a dialog in a dialog, just check event.currentTarget.localName === 'mwc-dialog')

Fixed in M3


[Feature Request]: User Data Property Map support

Purpose
This feature allows accessing extension-specific data that Aseprite extensions store.
Aseprite Spec Reference
These files detail UserData structures and Property Maps:

https://github.com/aseprite/aseprite/blob/main/docs/ase-file-specs.md#user-data-chunk-0x2020
https://github.com/aseprite/aseprite/blob/main/src/doc/user_data.h

Bit 2 (0x04, ASE_USER_DATA_FLAG_HAS_PROPERTIES) of the UserData flags indicates the presence of this data structure. This is not supported in AsepriteDotNet currently.
Property Map Use
In order to create files that have this data stored with them, a Lua script must add them as an extension within Aseprite. Here's a simple script for use with Aseprite to add it to the currently loaded sprite:
local spr = app.sprite
-- strings are stored as like others in the format (length, then utf8 bytes)
spr.properties.a = "howdy"
-- arrays are stored as "vector" type
spr.properties.b = { "more complex data can be stored in here", 123, 456, 3.14 }
-- tables are treated as nested property maps
spr.properties.c = { a=1, b="hello", c={ 5, 10, 15, 20 } }
-- single values are stored as the smallest type that will fit them
-- this gets stored as a signed byte
spr.properties.d = 1

After running this script in Aseprite, the file can be saved and we will see the data structure stored as a Property Map.
Performance and Compatibility
Most files (particularly ones saved without any extension data at all) will not have this data, so once the check for the aforementioned bit in UserData is zero, no further Property Map processing is necessary. Performance is unlikely to be even measurably different with this feature in place.
Should more flags be added to the UserData structure in the future, partial support for this feature will still be required in order to know how many bytes large the Property Map structure is anyway.
Proposed API integration
These are an extension of UserData, but I'm curious what others' thoughts are about whether they should be integrated into UserData, or if they should be processed separately on demand (as in, with their own Processor), and if they should also be loaded when using the "load tags only" functionality. Comments welcome.
I have implemented this in a branch to illustrate how this might work, which may serve as the pull request later to address this feature request:

https://github.com/SaxxonPike/AsepriteDotNet/tree/user-data-property-maps

Motivation
Extensions using the Lua API can store additional structured data inside UserData. This allows extensions to store extension-specific data alongside the existing Text and Color which are accessible directly in the standard UI. In fact, any UserData structure can have Property Maps associated with them. Without this feature, only the Tags field serves the function as a general metadata field.

Thanks @SaxxonPike for opening this (can of worms) up 😆.
This was never implemented be because it’s not part of the standard UI interface in Aseprite, so without using Lua extensions, the average user wouldn’t even know they existed.
However, I’ve always said that if it was (1) added to the UI in Aseprite or (2) someone requested the feature, then it wouldn’t added at that point.
So you’re the first to mention and request it, so it’s in the table now haha.
Im not near a computer right now to check your implementation but I’ll give it a look through later this evening and comment some more about it then.

@AristurtleDev It's no surprise, it probably isn't a very requested or considered feature! As a programmer and scripter myself, I found some interest in attaching more complex data to parts of sprites. This would open up a lot more tooling within Aseprite and application integrations for me personally.
I found this repository to be well maintained and with very good test coverage, so the implementation I linked likewise should have full coverage of the new feature. If you think that this is a good way to go, I'll formally put in the PR.

@AristurtleDev I also wouldn't mind this addition. ^_^


Determine how we view the results from all sites

Necessary for validating that results are in.
Anyone should be able to view it in VistA.
Figure it out and then update the diagram.
The diagram currently considers using XML. Cache comes with XML classes already defined; it's just a matter of creating instances and utilizing those. Cache puts results in a local database. Will need middleware to access the remote results.
Kevin: Lots of options to consider.

This approach has been scrapped.


[Core] Highlight search results

As far as I can currently see highlighting the search result is currently not supported.
Are there any plans for adding this feature in the (near) future?

Not yet on the issue tracker. As for all features a research would first be required so adding here the help wanted Label. The research should be focus on all currently implemented search engines and check if they support such features and link here there documentation about it.
Currently supported search engiens are:

Elasticsearch
Opensearch
Meilisearch
Algolia
Loupe
Solr
RediSearch
Typesense

Based on the result of the research it can then be decided if its possible to implement such features in the abstraction and already should us get an idea how we can achieve this. Based on that we can then design a common interface for such feature. If you already did some research around it let us know.

Done a quick search for the start:

Elasticsearch
Opensearch
Meilisearch
Algolia
Loupe
Solr
RediSearch
Typesense

@mario-fehr Thx for the research 👍

Depending on a quick look we maybe could go with something like:
$searchBuilder
    ->addIndex('blog')
    ->addFilter(new Condition\SearchCondition('Test'))
    ->withHighlight(
        fields: ['title', 'description'],
        preTag: '',
        postTag: '',
    )

What is also interesting how we handle the highlighting in the Result object. Currently the result has directly the documents. There are two options we put it into a special key something like:
{
    "title": "Text Title",
    "description": "Some Test Description",
    "_highlight": {
        "title": "Test Title",
        "description": "Some Test description"
    }
}

Or of we split it into 2 seperate objects which would require a ResultItem object:
{
    "document": {
        "title": "Text Title",
        "description": "Some Test Description",
    },
    "highlight": {
        "title": "Test Title",
        "description": "Some Test description"
    }
}

foreach ($result as $item) {
    $item->document;
    $item->highlight;
}

Loupe currently seems not yet support pre and postTag configuration but tried to implemnt that here: https://github.com/loupe-php/loupe/pull/70

https://github.com/loupe-php/loupe/pull/70 is already merged an will be part of the next feature release so we can start implementing it here. If somebody want to help implementing it let me know.

@alexander-schranz Is there a preference which result variant should be used? The _highlight or the ResultItem object one?

@mario-fehr I would go with the _highlight without seperate object to keep the bc break currently low.
For new features we create for each adapter an own Pull request to keep things reviewable. And as first implementation It would be good to create the feature first for the seal-memory-adapter.
The following tests can be copied and adopted for a WithHighlighting test: https://github.com/schranz-search/schranz-search/blob/14897d590825cf3b047cf5ef452c19a0a562b459/packages/seal/src/Testing/AbstractSearcherTestCase.php#L111-L161

Created the main feature branch which can be used as target for all who want to help implement this feature: https://github.com/schranz-search/schranz-search/pull/349


Let DropdownMenuItem follow button disabled logic

Use case
Hi,
I am building a form, where a DropdownButtonFormFieldhas a disabled DropDownMenuItem.
In fact it's not possible to disable the item directly, some turnaround technique must be used:

Set disabled item text color  grey
Set onTap action => null

Doing this, the item shows disabled, and tapping does nothing.
An example:
String selectedValue;

...

          DropdownButtonFormField(
            decoration: InputDecoration(
                icon: const Icon(Icons.category),
                labelText: 'Disabled dropdown menu'),
            items: ['a', 'b', 'c'].map((value) {
              // normal options
              if (value != 'c') {
                return DropdownMenuItem<String>(
                  value: value,
                  child: new Text(value,
                      style: new TextStyle(color: Colors.black)),
                );
              // disabled item
              } else {
                return DropdownMenuItem<String>(
                  child: Text(value, style: TextStyle(color: Colors.grey)),
                  onTap: () => null,
                );
              }
            }).toList(),
            value: selectedValue,
            onChanged: (String newValue) {
              setState(() {
                selectedValue = newValue;
              });
            },
          ),

Proposal
By writing this code, I saw that each DropDownMenuItem, has an onTap function.
Why not uniform this component with any other button, and make it disabled when onTap () => null  ??
What do you think about it?

I think what needs to be done is that if a DropDownMenuItem is disabled, it cannot be selected.
Currently, even with onTap being null, the item is still selected. I remember I created a ticket 2 years ago. No update since.

#75609 and #75487 contain a very similar proposal, except the suggestion there is to add a new constructor argument indicating whether the item is enabled / interactive. There is also an open Pull Request #76968 that implements it, adding the enabled argument to DropdownMenuItem.
I think what's implemented in the PR is more realistic than your proposal since DropdownMenuItem doesn't need onTap to work and be interactive (specifying only value is enough, DropdownButton handles the rest). So there is for sure plenty of code where DropdownMenuItem has onTap with the default value of null but was always intended to be enabled / interactive. So your proposal would constitute a breaking change, and would also make life harder for people who don't need to specify onTap on individual items but still want an interactive menu.

Well the most important objective here is to obtain an item visualized as disabled (grayed, not clickable), in consequence of some property / value.
Having a "disabled" property (false by default) like it's reported by @ludwiktrammer  in PR #76968 to me makes more sense, as the DropdownMenuItemis more similar to a checkbox/radio, than a Button.
So yes... :-) ...And sorry, probably I didn't search well for other open issues about this topic.


Wrong behavior of ScrollContainer in EditorPlugin

Godot version:

Godot 3.2.3.stable
OS/device including version:

MacOSX 10.15.7 (19H2)
Issue description:

I'm trying to make editor plugin. I've made some ScrollContainer with some test data. In editor UI this scroll container have very little height, less then one item in it's VBoxContainer. And I have no ideas what is wrong with it.
The UI in editor.

Scroll container.

Resulting editor plugin interface.

Steps to reproduce:
Minimal reproduction project:

It's not the whole project, just zipped folder with editor plugin.
addons.zip

I think it's the Panel node that breaks things. There needs to be a container, try switching it for PanelContainer.

I think main screen UIs like you are making are added under a container. So unlike viewing in the edited scene, you need to tell that container to expand your root control. Otherwise, it will shrink to its minimum size.
Try setting the vertical size flag of your root control to expand.

Ah yes, agree with Zylann. My root node is also size_flags_vertical = 3, so it must be required.

I think the container of main screen controls could simply be one that expands its child. No need to introduce extra types for such a specific case

Thanks @pycbouh and @Zylann !
I changed MainUI's Size Flags to Fill + Expand and it works as expected!


[MM-29853] Migrate string-refs to functional ones: this.refs.fileInput

Summary
Update this.refs.fileInput to this.fileInputRef react ref function
Ticket Link
github issue ->Fixes https://github.com/mattermost/mattermost-server/issues/16036
jira -> https://mattermost.atlassian.net/browse/MM-29853
Related Pull Requests
n/a
Screenshots
n/a

Hello @lestgabo,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich @emilyacook

/update-branch

Error trying to update the PR.
Please do it manually.

@lestgabo Have you renamed or deleted the branch for this? We've tried to update the branch to the latest master, but it seems to be failing because the branch moved.

@hmhealey aahh sorry, i redid my fork to be https://github.com/lestgabo/mattermost-webapp-1
I didnt realize this one would pose problems as all the CI checks were green before I deleted my fork.
I already deleted my mattermost folder and it would take me some time to set it up again just to redo this. I made a mess of the commits on this PR by not rebasing and not updating the fork. This was my bad!
Please go ahead and close this PR without merging.

No worries. We can copy the commits to a new branch and resubmit them. You'll still be credited on them 😄


Pin SOAPpy to version 0.12.22

This fixes the build on Trusty, which was broken by 5be8d13.

Demo
master: https://ocd.appscale.com:8080/job/Create-Eucalyptus-Image/6498/
branch: https://ocd.appscale.com:8080/job/Create-Eucalyptus-Image/6503/


Change number of views for large numbers eq 1000 -> 1k

Description
issue
if views go up very much its hard to actually view how much view it actually has instead we can use 1k, 2k, 3k, 1m
from

to

it is a bit more cleaner and coincise
Screenshots
No response
Additional information
No response

@schmelto I am working on this.

@vasucp1207 please only work on 1 issue at a time, this one is currently assigned to you https://github.com/EddieHubCommunity/LinkFree/issues/2132

Hey, @eddiejaoude but I completed this one.


Added note about react-onclickoutside dependency

that effects what react you can use.

Codecov Report

Merging #907 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #907   +/-   ##
=======================================
  Coverage   85.47%   85.47%
=======================================
  Files          12       12
  Lines         647      647
  Branches      120      120
=======================================
  Hits          553      553
  Misses          7        7
  Partials       87       87

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 cd2a7f3...8f91399. Read the comment docs.


The get_optimizer_attribute returns an error

When used according to the documentation:
ipopt = JuMP.optimizer_with_attributes(Ipopt.Optimizer, "print_level"=>0)
lin_solve = ma27
base = solve(BasePrice, v2016R(),  optimizer = ipopt, linear_solver = lin_solve)

I get the error:
ERROR: RawParameter with name linear_solver is not set.
Stacktrace:
[...]
  [8] get_optimizer_attribute
    @ ~/.julia/packages/JuMP/PKxEW/src/optimizer_interface.jl:152 [inlined]
  [9]
    @ DICE ~/.julia/dev/DICE/src/2016R.jl:315

This seems related to the fact that somehow (change of JuMP API?) solve and the inner function selectLinearSolver fails to add a linear_solver option, and hence the get call returns an error.
If I indeed use directly:
ipopt = JuMP.optimizer_with_attributes(Ipopt.Optimizer, "print_level"=>0, "linear_solver" => "ma27")`
base = solve(...)

then it works.

Hi! Thanks for the issue. You're probably right - there has been a lot of movement in jump over the past years and this project has been dormant for a long time. Glad you are getting some use out of it. I'd be happy to integrate your fix if you'd like to open a PR for it?

I have tried to follow the chain of issues, but it's a bit complicated.
If I understood it correctly, there seems to be an issue in JuMP that obliged you to make a manual fix when the linear solver is MUMS,n and this led you to make a sort of workaround and make MA97 the defualt.
The result is a bit complicated, not least because there are now two places where to specific the linear solver, the JuMP.optimizer_with_attributes function and the "custom" DICE.solveone... perhaps before looking to adapt theselectLinearSolver` would it be possible to check if the original issue is still there with the latest versions of MULPS/Ipopt and the new non-linear API of JuMP ?
Is there a way you can test this quickly ?
I believe if the issue is solved, letting the user choose the linear solver would be a much neater solution...


Hesitant to try Charge due to missing blog themes/features/examples/tutorials

Hi,
Thanks a lot for making and sharing Charge. I find it elegant and beautiful.

I went on StaticGen and looked at every JavaScript-based one. I could not find a single one that I thought was simple, well-documented, had the features I needed, was actively maintained, and was designed and worked the way I wanted.

Spot on. I turned to a Nikola, a Python SSG. But I miss JSX, so it would be fun to try to rewrite my website in Charge.
However, it looks like I would have to write a fair bit of code to replicate the features of my existing bootblog4 site — e.g. tagging, post lists and RSS. I can’t find much in the way of guidance to set this up. So, I’m hesitant to give Charge a try.
This is not a complaint or anything like that. I just wanted to offer a perspective from someone who almost started using Charge — in case it’s useful.

Hey, thanks! I appreciate the feedback!
When I started building Charge I had the intention of converting all my sites (which previously used Middleman) to it, including my blog. So I slowly added generic features until I was able to convert most of my sites, but the blog turned out to be the last and the hardest.
The problem is that a blog is really more of a set of patterns and conventions around how a static site should work and display content. And it gets even more complicated because everyone has a slightly different idea of how a blog should work. So you invariably wind up building a tool with a lot of configuration (posts go in this folder, URL paths look like this, etc). Which is what most people want from the tool they’re using for their blog, but in the case of Charge is sort of antithetical—the whole point of Charge is it’s no-configuration.
I thought about it for a bit and came up with some generic features that I thought would make it possible to build a blog. I even converted my blog to use Charge for a hot second. It has all the usual suspects—an index page, permalink pages, an archive page, pagination, a sitemap, RSS, and even a JSON feed.
But I switched it to Gatsby a short time later. It’s not that Gatsby has some special features for blogging or anything like that. Gatsby actually takes a similar approach to Charge and gives you an abstraction that allows you to build any type of site you want, including a blog. But it does have some general features that I wanted to take advantage of. Like its image handling. The gatsby-image package is really something—I wish there was a generic version that could be used in other frameworks. Also the ability to cache remote images/files is really nice. It made integrating images from Unsplash a breeze. And a few other small things. That said, I don’t want to make Gatsby seems like the perfect solution. It is extremely flaky and buggy. When things don’t work I have no idea why, and often running the same command again and/or clearing the cache fixes it, and sometimes not 🤷🏼♂ It’s also extremely complex. I don’t think building sites with it is fun or easy. It just made sense for me in this particular case.
So to come back around, can you use Charge for a blog? Yes. But whether or not you would want to really depends on what your blog is like and what sort of development experience you’re looking for. I plan to add some notes to the docs about this but I’m not sure I’ve quite figured out the right way to explain it yet.
I hope that helps!

Thanks for the insightful answer. You’ve clearly experimented with and thought a lot about this, so I don’t know how much I have to add. The only thing would be if you have considered themes or plugins — it could be a way to keep Charge itself simple whilst allowing for more advanced use-cases like a blog.

I plan to add some notes to the docs about this but I’m not sure I’ve quite figured out the right way to explain it yet.

Yeah, I think this is a good idea — it would save users some time. How about something like this below “How is Charge different from GatsbyJS?” on https://charge.js.org/?

What Charge is not
Charge is not a full-featured blog generator like Jekyll. You certainly can make a blog with Charge, but it doesn’t come with features like pagination, tagging and RSS feeds. For an in-depth discussion on using Charge to make a blog, see issue #806.

I've taking an interest in Charge after having played with a bunch of other static site generators and this one seems, at least at surface level, to be really nice. Yes, it's missing some features of others but I think that is something that could be added via a smartly developed plugin system. Who knows?


gnomeExtensions: refactor update script

Description of changes
The update-extensions.py script downloads extension information once for each
shell version, although one extension version might be used for multiple shell
versions. To reduce the amount of downloads we first select the appropriate
extension version per shell version as done before, then download the
corresponding information once for each selected extension version, and finally
map each shell version to the downloaded information of the selected extension
version.
Pinging @piegamesde because they seem to have written the code.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

CC  @rhoriguchi as de-facto maintainer, please take a look.

Out of curiosity, do you have some numbers how many downloads this saves?

I just noticed a lot of duplicate versions printed while I was updating that extensions.json locally, and since each download took about a second for me it was a bit infuriating, so I changed it.
I didn't have any numbers to answer your question @piegamesde , so I wrote this handy script which uses the extensions.json as input and counts duplicates in shell_version_map by the version field:
https://gist.github.com/tu-maurice/3d84f3f64981f4a2ce8f2007873710ea
It shows this for my updated local version of the extensions.json
1833 downloads of which 899 were unwarrented.
So my answer is: about half.

CC @rhoriguchi as de-facto maintainer, please take a look.
Out of curiosity, do you have some numbers how many downloads this saves?

I can't give you a download number, but it takes around 10-20 minutes to update.

I think the question was for me :)


I think it need to write a HTML demo

I think it need to write a HTML demo, because not everyone know how to run nodejs, and they not easy to see the demo.

Please use Stack Overflow tag d3.js or the d3-js Google group to ask for help. These issues are for feature requests and bug reports only. Thank you!


add support for continue statement

This implements the support for TS's continue statement. Normally, tstl would throw an exception whenever the continue statement is used, saying that Lua does not support the statement.
However, while Lua indeed does not support the continue statement, it is still perfectly possible to implement the functionality of a continue statement by changing how loops get transpiled.
Here's a simple example:
The following TS
for (let i = 1; i <= 100; i++) {
  if (i < 25) {
    continue;
  }

  print(i);
}

Gets transpiled to
local i = 1
while(i<=100) do
    local ____continue = false
    repeat
        if i<25 then
            ____continue = true
            break
        end
        print(i)
        ____continue = true
    until true
    i=i+1
    if not ____continue then break end
end

As can be seen from the example above, the functionality of a continue statement gets achieved via a clever usage of the repeat until true block, which acts a simple do end block, but allows for a possibility of stopping the execution of the block via a break statement. The ____continue local allows for differentiation between a break statement for the repeat until true and the parent loop. If a break statement was used without setting the ____continue local to true, then it will have an effect of a normal break (break from repeat until true and break from the parent loop). However, if a break statement was used after setting the ____continue local to true, then it will act with accordance to how the effect of the continue statement should be, which is: stop executing the current cycle, and jump to the next one (break repeat until true, but do not break the parent loop). The ____continue = true gets automatically added at the end of the body of the parent loop.
So, the continue statement simply gets transpiled to:
____continue = true
break

With this implementation, you can nest multiple loops inside of each other, and the ____continue locals of the nested loops will not interfere with each other, thanks to how scoping works in Lua.
The following loops were used for testing:
declare function print(...messages: any[]): void;

for (let i = 1; i <= 100; i++) {
  if (i < 25) {
    continue;
  }
  print(i);

  for (let x = 1; x <= 10; x++) {
    if (x < 5) {
      continue;
    }
    print(x)
  }
}

let d = 10
while (d > 0) {
  d--;
  if (d > 5) {
    let o = 4;
    while (o > 0) {
      o--;
      if (o > 2) {
        continue;
      }
      print(o);
    }
    continue;
  }
  if (d == 2) {
    continue;
  }
  print(d);
}

let e = 10
do {
  e--;
  if (e > 5) {
    let o = 4;
    do {
      o--;
      if (o > 2) {
        continue;
      }
      print(o);
    } while (o > 0)
    continue;
  }
  if (e == 2) {
    continue;
  }
  print(e);
} while (e > 0)

for (let i of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) {
  if (i < 3) {
    continue;
  }

  for (let i of [5, 6, 7, 8]) {
    if (i !== 6) {
      continue
    }
    print(i)
  }

  if (i > 8) {
    continue;
  }

  print(i);
}

for (let i in {
  a: 1,
  b: 2,
  c: 3,
  d: 4
}) {
 if (i == 'a') {
   continue;
 }

 if (i == 'b') {
   continue;
 }

 print(i);
}

The transpiled code:
-- Generated by TypescriptToLua v0.2.1
-- https://github.com/Perryvw/TypescriptToLua
require("typescript_lualib")
local i = 1
while(i<=100) do
    local ____continue = false
    repeat
        if i<25 then
            ____continue = true
            break
        end
        print(i)
        local x = 1
        while(x<=10) do
            local ____continue = false
            repeat
                if x<5 then
                    ____continue = true
                    break
                end
                print(x)
                ____continue = true
            until true
            x=x+1
            if not ____continue then break end
        end
        ____continue = true
    until true
    i=i+1
    if not ____continue then break end
end
local d = 10

while d>0 do
    local ____continue = false
    repeat
        d=d-1
        if d>5 then
            local o = 4

            while o>0 do
                local ____continue = false
                repeat
                    o=o-1
                    if o>2 then
                        ____continue = true
                        break
                    end
                    print(o)
                    ____continue = true
                until true
                if not ____continue then break end
            end
            ____continue = true
            break
        end
        if d==2 then
            ____continue = true
            break
        end
        print(d)
        ____continue = true
    until true
    if not ____continue then break end
end
local e = 10

repeat
    local ____continue = false
    repeat
        e=e-1
        if e>5 then
            local o = 4

            repeat
                local ____continue = false
                repeat
                    o=o-1
                    if o>2 then
                        ____continue = true
                        break
                    end
                    print(o)
                    ____continue = true
                until true
                if not ____continue then break end
            until not (o>0)
            ____continue = true
            break
        end
        if e==2 then
            ____continue = true
            break
        end
        print(e)
        ____continue = true
    until true
    if not ____continue then break end
until not (e>0)
for _, i in ipairs({1,2,3,4,5,6,7,8,9,10}) do
    local ____continue = false
    repeat
        if i<3 then
            ____continue = true
            break
        end
        for _, i in ipairs({5,6,7,8}) do
            local ____continue = false
            repeat
                if i~=6 then
                    ____continue = true
                    break
                end
                print(i)
                ____continue = true
            until true
            if not ____continue then break end
        end
        if i>8 then
            ____continue = true
            break
        end
        print(i)
        ____continue = true
    until true
    if not ____continue then break end
end
for i, _ in pairs({a = 1,b = 2,c = 3,d = 4}) do
    local ____continue = false
    repeat
        if i=="a" then
            ____continue = true
            break
        end
        if i=="b" then
            ____continue = true
            break
        end
        print(i)
        ____continue = true
    until true
    if not ____continue then break end
end

The outcomes match.
I don't really know if there's a certain way that the pull requests should be made, or if there's some kind of standard for the workflow. If I've done something wrong with the presentation, then please don't hesitate to correct me. :)

Thanks for the PR, I don't think continue is good style and shouldn't be used at all. But we should probably support it anyway.
Also I think it would be much cleaner to use Lua 5.2s goto statement. I think the output would look a bit nicer that way.
http://lua-users.org/wiki/GotoStatement
And please add at least some translation tests and if you want some functional tests.

I have been searching for this kind of project for a while, since I have some old games that I would love to mod, but they support only Lua 5.1; that was the reason for me going with this solution. I could implement the goto solution for cases when Lua 5.2 or 5.3 is used, but I would also love to support Lua 5.1. So would you mind if I added the support for both?
And you're right, I should probably add more tests with this feature.

We dropped support for Lua versions below 5.3 a while ago because we wanted to implement all Lua features first, without having to think of backwards-compatibility all the time.
But we already have a system to transpile differently for different version, we use that for bit operations for example, so if you want to add 5.1 support please go ahead. (Unless @Perryvw has an issue with that.)
While your at it you can also look at some other features that won't work in 5.1 (e.g bit ops, can't think of more right now) and throw exceptions if those are used when the 5.1 flag is set.
Another thing make sure you don't add additional overhead if no goto is used in a loop and use goto in versions <5.1

Alright then, I think that it would be wise for me to go with the goto implementation for this PR, and implement the 5.1 compatibility in a different batch with a different PR.
On a side note, is there a list of the Lua features that are already implemented and features that are still being worked on? If I remember correctly, things such as typeof keyword don't work properly yet.

Sounds good 👍
We have a list of things that down work, but I don't think everything is listed there: https://github.com/Perryvw/TypescriptToLua/wiki/Limitations

And tell me if I got this right: the plan is to get rid of all the limitations, correct?

I would say the nicest way to do this is maintain one 'main' transpiler class and have a different extension class for other versions that override required methods. We can then simply select between them from compiler.ts

Alright, got it. Thank you.

Ok, I've done everything that was requested:

Since Lua 5.1 support is not considered (for now), I redone the continue functionality via the Lua 5.2's goto statements.
Removed additional overhead if continue statement is not used inside of the loop.
Created a function transpileLoop which heavily decreases code reusage.
Added translation tests to the correct places.

Thanks for the update! I like the functional tests you added, this seems like a good test coverage.
I am not such a fan of the way this is implemented however. After discussing with @lolleko we came to a couple points:

You can just add a label __continue{n} at the end of each loop. Generate the n by keeping a stack of loop names. When you start transpiling a loop push and increment genVarCounter, transpile continue as goto __continue{m} where m is the loop number at the top of the stack. Pop from the stack when you're done transpiling that loop.
The structure we had before with transpileFor and transpileForOf etc was fine, what I meant with transpileLoopBody was purely refactoring the body, as indicated in the following image: https://i.imgur.com/FlsYmch.png
I think the removal of the old structure is a step in the wrong direction and should probably be reverted.
If you do the goto/label method you can get rid of hasContinue completely, we generally try to avoid getChildren(), and just labels will probably not have any performance impact anyway.

My bad, for some reason I completely missed the Body part from your initial message. Changes will follow shortly.

Question, should I be using the genVarCounter variable for keeping track of the stack? Or should I create a new variable designed to be used with loops only? Your message suggested that I should use genVarCounter, but if I do, it will interfere with switch/case statements.

I suggest creating a new stack to keep track of the numbers of nested loops for when you need to write a goto in one of them. You can simply populate the stack by using genVarCounter. If  any time you start using a new genVarCounter value you simply increment it, it should not interfere with switch/case statements.

Requested changes are now implemented.