missing continuation in multi line string

Ok, this is not contest material as it's an IndentationError but well, users would certainly appreciate a more useful error message.
>>> def f():
...     s = "a"\
...         "b"
...         "c"

Traceback (most recent call last):
  File "<friendly-console:32>", line 4
    "c"
   ^
IndentationError: unexpected indent

I understand ... and, at the same time, I am not sure of what to do in this case.
In my opinion, using a final \ as a continuation character is something that should never been introduced in Python, as it is too error prone with no visual clue when it gives rise to any kind of SyntaxError; for example,  when adding a single space after the final \.
In the example you give, I could (should?) identify that it is not an IndentationError since the previous line had the same level of indentation and it was not one that was meant to begin a new code block.
That being said, IndentationError are subclasses of SyntaxError and should constitute valid entries for the contest.

I understand ... and, at the same time, I am not sure of what to do in this case.
In my opinion, using a final \ as a continuation character is something that should never been introduced in Python, as it is too error prone with no visual clue when it gives rise to any kind of SyntaxError; for example,  when adding a single space after the final \.
In the example you give, I could (should?) identify that it is not an IndentationError since the previous line had the same level of indentation and it was not one that was meant to begin a new code block.
That being said, IndentationError are subclasses of SyntaxError and should constitute valid entries for the contest.

In general I think a string not stored in a variable and not part of a module or function docstring is a huge code smell. Not incorrect but... So I suppose bad indentation + string not stored + not a docstring could be detected.

In general I think a string not stored in a variable and not part of a module or function docstring is a huge code smell. Not incorrect but... So I suppose bad indentation + string not stored + not a docstring could be detected.

When working using an REPL, I agree that the "string not stored" could possibly be used.
However, in general, a user will run a program from an editor (https://aroberge.github.io/friendly-traceback-docs/docs/html/editor.html) in which case any SyntaxError and subclasses will prevent code execution.  So, no identification of variables stored (or not), no identification of docstring, etc.  The only remaining clue is examining the source itself, knowing only that Python cannot parse it passed a certain point.

When working using an REPL, I agree that the "string not stored" could possibly be used.
However, in general, a user will run a program from an editor (https://aroberge.github.io/friendly-traceback-docs/docs/html/editor.html) in which case any SyntaxError and subclasses will prevent code execution.  So, no identification of variables stored (or not), no identification of docstring, etc.  The only remaining clue is examining the source itself, knowing only that Python cannot parse it passed a certain point.

What to you think of the following explanation?

What to you think of the following explanation?

The last part is perfect IMO. However, I am not entirely convinced the phrase "The above information is based on what Python told us." helps. I would personally just omit that phrase.

The last part is perfect IMO. However, I am not entirely convinced the phrase "The above information is based on what Python told us." helps. I would personally just omit that phrase.

Ok, it makes sense.
In this case, perhaps I should also remove from the old explanation "and does not match the indentation of the previous line".  So, the default explanation would read:
The line identified above is more indented than expected.

(which could be translated into French, etc.). The addition in this case would then become:
However, line 3, which is identified ....

Ok, it makes sense.
In this case, perhaps I should also remove from the old explanation "and does not match the indentation of the previous line".  So, the default explanation would read:
The line identified above is more indented than expected.

(which could be translated into French, etc.). The addition in this case would then become:
However, line 3, which is identified ....

That seems great to me.

That seems great to me.

Closing issue after adding test case.

Closing issue after adding test case.


feature: Allow dot-notated keys on useAsTitle when rendering relationship options

Description
This fix/feature allows collections that uses dot-notation in the useAsTitle fields to be correctly rendered in the options when they are used in a Relationship
Example Collection config:
export const screens: CollectionConfig = {
  slug: "screens",
  admin: {
    useAsTitle: "metadata.screenID",
    disableDuplicate: true,
  },
// ......

[x] I have read and understand the CONTRIBUTING.md document in this repository

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

Checklist:

[ ] I have added tests that prove my fix is effective or that my feature works
[x] Existing test suite passes locally with my changes

Hey there - this is great! Question - did you poke around to determine if this breaks anything elsewhere that we rely on useAsTitle? I know there are a bunch of spots that may be impacted. I'd try and search the Payload /src/admin folder for all instances of useAsTitle and then spot-check each one.
But after that's done / confirmed, we will pull this down locally to test ourselves, and happily merge!

Hi, yes, I tested and it works great, not breaking anything out there.
I'm writing some unit tests to validate this, got busy in my schedule but hopefully I'm able to finish this week.
I'll also double check manually every usage, but the fix was written in a way to not break in whatever way useAsTitle is used

It shouldn't be a big issue if all current unit tests + the additional ones passes right? Then I could open a new PR in the future to address those other issues

@angelobartolome thank you for your work here! I took a pass at this after seeing #2333 and #2334 which appear to be the same issue. PR https://github.com/payloadcms/payload/pull/2350 establishes a more permanent pattern to ensure that all instances of useAsTitle are standardized across the board, check it out!

sounds perfect. thanks @jacobsfletch !


Added/fixed Animation Typing hints

In light of some of the issues i raise in https://github.com/ManimCommunity/manim/issues/1212, I have started a process of going through all mypy errors and trying to fix them.
This PR adds some Type Annotations to animations.py and a few to rate_functions.
This PR is not complete and I ask you only to comment as to whether or not I'm on the right track.
Changelog / Overview
I have added and changed Typing hints in animations.py to get rid of all but one error shown by the type checker mypy.

Motivation
See Issue 1212. I think we should have everything correctly typed, and no typing errors shown by mypy
Explanation for Changes
Most of the errors fixed concerned the fact that some animations (notably Wait) do not have a mobject and thus the correct type is Optional[mobject] and not just mobject. The other errors concerned the type signature of rate functions... although this will need some more work in future to update all rate functions to have the correct signature.
Testing Status
Ok this is a weird one. I must admit that I could not get tests to run locally and so I opened this PR specifically to have CI run the tests.
sorry. I promise I'll fix my local system to be able to run tests myself.
Further Comments
Try running mypy ./manim/animation/animation.py before and after this PR to see the difference.
Checklist

[ ] I have read the Contributing Guidelines
[x] I have written a descriptive PR title (see top of PR template for examples)
[x] I have written a changelog entry for the PR or deem it unnecessary
[ ] My new functions/classes either have a docstring or are private
[ ] My new functions/classes have tests added and (optional) examples in the docs
[ ] My new documentation builds, looks correctly formatted, and adds no additional build warnings

Reviewer Checklist

[ ] The PR title is descriptive enough
[ ] The PR is labeled correctly
[ ] The changelog entry is completed if necessary
[ ] Newly added functions/classes either have a docstring or are private
[ ] Newly added functions/classes have tests added and (optional) examples in the docs
[ ] Newly added documentation builds, looks correctly formatted, and adds no additional build warnings

"Ok this is a weird one. I must admit that I could not get tests to run locally and so I opened this PR specifically to have CI run the tests." Yeahhhh.. not just you, I just ran into the same problem with the PR I opened today. I can't get pytest to work either, and it's entirely unclear about how to get the one formatting check to run locally..

Also, I'm concerned about how this might end up conflicting with #1222 as I'm unsure what typings should look like with those kind of changes

I've decided to close this for now. I'll make a more comprehensive PR in a few days.


Update Makefile to prevent recursion into charts

Description
The current Makefile fails in some repos with dependencies inside dependencies. For example:
dep_name=kyvernoPlugin && \
new_version=`docker run --rm -u $(id -u) -v ${PWD}:/workdir mikefarah/yq:4.29.2 .version helm/kyverno/charts/$dep_name/Chart.yaml` && \
docker run --rm -u $(id -u) -v ${PWD}:/workdir mikefarah/yq:4.29.2 -i e "with(.dependencies[]; select(.name == \"$dep_name\") | .version = \"$new_version\")" helm/kyverno/Chart.yaml
Error: open helm/kyverno/charts/kyvernoPlugin/Chart.yaml: no such file or directory
make[1]: Leaving directory '/home/runner/work/kyverno-app/kyverno-app'
make[1]: *** [Makefile.gen.app.mk:36: helm/kyverno/charts/policy-reporter/charts/kyvernoPlugin] Error 1
make: *** [Makefile.gen.app.mk:30: update-chart] Error 2
Error: Process completed with exit code 2.

In this case the repo has a chart inside helm/kyverno/charts/policy-reporter/charts/kyvernoPlugin where it fails because then it tries to look for it inside helm/kyverno/charts/kyvernoPlugin/Chart.yaml.
I think we should prevent from looking inside helm/$APP/charts/$SUB_CHART/charts/, so this PR changes that.

@mcharriere since you have been working on this, what do you think?
I tested this against Kyverno and it works:
https://github.com/giantswarm/kyverno-app/actions/runs/4124876893/jobs/7124702413


Script error?

I have an HP G1 chromebox, I7-4600U, tried to run the script and this is what I got back...
firmware-utils.sh: line 1: html: No such file or directory
firmware-utils.sh: line 2: syntax error near unexpected token <' 'irmware-utils.sh: line 2: 404 Not Found
I'll look at the script and compare it to previous versions but wait a while to hear back before I try anything.

there's nothing wrong with the script, your error indicates the file wasn't downloaded correctly


Drop Handler : Droping any files or folders into Folder or Mounted Drive is not hitting drop event

I used following Associations
[COMServerAssociation(AssociationType.AllFiles)]
[COMServerAssociation(AssociationType.Directory)]
[COMServerAssociation(AssociationType.Drive)] and Droping Files or Folders is not working when I drop into empty folder or on folder or drive
Is there any fix for this issue?

Not sure if it's the same, but I assume so. I want to extend the ContextMenu when draging items with right mouse button into a directory/drive.

Hey SivaprasadTamatam,
what exactly are you trying to do?
Do you want to click on (and drag) a file with left mouse button and drop it into a folder or mounted drive?
-> Does "into a folder" mean in the explorer background? Or directly on a folder?
And do you then expect there to be a context menu of some sort?
Or do you click on (and drag) the file with the right mouse button instead?
I think you can't easily override the "move or copy" behaviour of the shell. When you drop a file on a folder, it is moved/copied. If you do it with the right mouse button instead, you will get a context menu (there you could place your method)

@Countryen , Thanks for the response.
Test.zip
I am just looking for and trying to implement following video(drag and drop a file) that's it.

@Countryen , I want capture the drop files list with its source and destination from the extension code. That's it. Thanks once again for your quick response.

I don't think that is possible with (simple) Shell Extensions. Do you have any example where it works that way? I think you can't act on moving/copying files.
Option A: Use a DragDropHanlder and move the file with Right Mouse Button to use the Context Menu
Option B: Use a CopyHookHandler (but afaik this is only possible for folders),
https://docs.microsoft.com/en-us/windows/desktop/shell/how-to-create-copy-hook-handlers
Option C: You can possibly have your own "Folder Views" where you can do such a thing. A Windows example is the Assembly Cache Viewer for the GAC (Global Assembly Cache) at %SystemRoot%\assembly
https://en.wikipedia.org/wiki/Global_Assembly_Cache
https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-3.5/34149zk3(v=vs.90)

@Countryen , Thanks for the options, let me try and let you the update 👍

@SivaprasadTamatam I think that you need to use the following:
https://github.com/dwmkerr/sharpshell/blob/master/docs/com-server-associations.md#directory-background
i.e.
[COMServerAssociation(AssociationType.DirectoryBackground)]

This was added to master just recently. Try installing SharpShell 2.4 and seeing if this works.


Add backfill study function

This PR adds a helper function that allows a user to easily download data from a whole study.
One question: Is there a reason that BACKFILL_WINDOW is set to be 5? It seems like that slows down the process of downloading data a good amount.
In my experience, we should be able to have a default value of BACKFILL_WINDOW that is at least 100 or so.

@tokeetim would you like me to do some review here to speed the process along?

@biblicabeebli Yes, please! Thank you!

Crap I just finished the modernizing/cleanup/python-3.8-fixes refactor I was working on and then looked at this. I totally forgot this pull existed.
@clementzach the refactor for the sync file was just to move it to a file called sync (should maintain import compatibility) from the /sync/__init__.py.  I could probably pull in your code additions in manually but that then it wouldn't be attributed to you.  Would you like me to do that (because it's been..... a while....) or would you like to handle the merge/rebase?
I'm still new to this codebase, I will start using it, I don't know why a longer window would speed up/slow down requests.  One change I did make internally that may affect speed was to up an internal chunking value.  Otherwise, I intend to try and get into this code a little more for speed and, eventually, a v2 download endpoint that pulls actually-compressed data.
(it was once compressed! ... but there was a server-destroying memory not-exactly-a-leak-but-kinda-a-leak and I had to turn it off...)


perf(core): use prebundle to reduce dependencies

Summary
Use prebundle to reduce dependencies of @rspack/core (12 deps -> 6 deps)

How it works:

Use prebundle to bundle dependencies and output to the compiled folder.
Use tsc-alias to alias the import path to the compiled folder.

resolve https://github.com/web-infra-dev/rspack/issues/5097
Checklist

[ ] Tests updated (or not required).
[ ] Documentation updated (or not required).

!canary

How is this better? Now I have duplicate code in my node modules, ehhh

Bundle dependency is a very practical optimization method, and we can see that projects like Next.js and Vite have adopted it.

Next.js bundles dependencies and output to the compiled folder, just like Rspack does. see https://github.com/vercel/next.js/tree/canary/packages/next/src/compiled

Vite bundles most of dependencies and outputs them as chunks, see: https://github.com/vitejs/vite/blob/main/packages/vite/rollup.config.ts#L65-L73

There are many benefits of bundle dependencies, including faster dependency installation and prevention of supply chain attacks caused by upgrades of indirect dependencies.
Regarding your concerns, while there may be duplicate code in node_modules, in most cases the code you need to download is less than before, because the bundling process removes unnecessary files.

According to my calculations, this PR has reduced the install size by 800kB, and we can further optimize it.


Error with model:show and enum column

Laravel Version: 9.21.0
PHP Version: 8.1.6
Database Driver & Version: MySQL 5.7.34

Description:
I have doctrine/dbal installed and I get this error:
❯ php artisan model:show Member

In AbstractPlatform.php line 396:

  Unknown database type enum requested, Doctrine\DBAL\Platforms\MySQL57Platform may not support it.

I then read that I might need to map enum to a string so in my AppServiceProvider I added this:
DB::getDoctrineSchemaManager()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');

That did not fix it but now getting a different error:
❯ php artisan model:show Member

In ForwardsCalls.php line 71:

  Call to undefined method Illuminate\Database\Eloquent\Builder::getRelated()

Hi @ejunker,
I'm not sure if the second error is related to the first. When using an enum column I am able to show the model successfully after registering the enum mapping.
Could you please provide more information about your Member model? If you're unable to provide the full class, it would be great to at least know:

What class it extends.
What types of relations it has (e.g. hasMany).
Whether any public methods contain calls to a relation method (e.g. $this->hasMany()) without just directly returning that method.

I've come up with a solution that should prevent the error you're seeing, however without knowing more about the relation, it might just hide the relation completely.

@ejunker The error should be prevented with #43301, but I'd still like to know more about your model in case there's anything else we should be doing.

@jessarcher this is a strange one. It turns out that a commented out line of code was the problem
    public function companyJobs()
    {
        //return $this->hasMany('App\Models\Job', 'parentID', 'memberIdOfParent');
        return Job::where('parentID', $this->memberIdOfParent);
    }

Since the commented out line contains hasMany it incorrectly thought it was a relationship.

@ejunker Thanks! Makes sense. My PR will address that scenario because it ensures that a Relation instance is returned from the method.


Create and access WorkUnits and TaskStates through the StateStore int…

…erface to remove dependency on having a shared file system.

@chavdar please take a look.

Can you please add a short description of what the changes are that can guide me through doing the review?

WorkUnits are presently serialized using SerializationUtils.serializeState() which writes using an Hadoop FS object. TaskState is written using an FsStateStore.  Changes are to store both of these state types using StateStores that can be backed by a non-filesystem storage.
StateStores store data with a key of (root, storeName, tableName). The root may be a path prefix in file system and ZK state stores.  For DB state store it is a DB table. storeName is the next level of the hierarchy. tableName is the last level and what is traditionally the file name, such as work_unit_name.wu is used for this field.
WorkUnits are stored at appWorkdir/_workunits/<job_id>/<work_unit_id>.wu.
MultiWorkUnits are stored at  appWorkdir/_workunits/<job_id>/<work_unit_id>.mwu
TaskStates are stored at  appWorkdir/_taskstates/<job_id>/<task_id>.tst
The path used in the test GobblinHelixTaskTest was changed to conform to the format above.
Three StateStores are instantiated through GobblinClusterUtils.StateStores for storing and accessing these states.  The StateStore type comes from the configuration key 'state.store.type'.
The configuration of 'state.store.root.dir' and 'state.store.db.table' are set before creating each StateStore to configure the proper root directory and root table.
The ParallelRunner is used to serialize and deserialize in parallel. A method that accepts a Callable was added to allow submitting the StateStore serialization and deserialization tasks. This generic interface was required due to avoid a build dependency issue.
StateStore changes:
Changed the ZK state put calls to create with data atomically when the znode does not exist.
Added a getStateNames() method for listing. This is required by the TaskStateCollectorService to find data to read.
Added factory method to StateStore and refactored some code shared between the DatasetStateStore factory and StateStore factory.

@ibuenros please take a look.


feat(sync): implement DataStreamBuilder for classes

This change is

#1829  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @noamsp-starkware and the rest of your teammates on  Graphite


Update sbt-scalafmt to 2.3.1

Updates org.scalameta:sbt-scalafmt from 2.3.0 to 2.3.1.
Release Notes/Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "sbt-scalafmt" } ]

labels: sbt-plugin-update, semver-patch

Codecov Report

Merging #364 into master will decrease coverage by 0.13%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #364      +/-   ##
==========================================
- Coverage   95.54%   95.41%   -0.14%
==========================================
  Files          15       15
  Lines         764      764
  Branches       45       42       -3
==========================================
- Hits          730      729       -1
- Misses         34       35       +1

Impacted Files
Coverage Δ

core/src/main/scala/io/iteratee/Enumeratee.scala
99.57% <0%> (-0.43%)
:arrow_down:

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 8286625...290e250. Read the comment docs.


Fix compilation errors

I love this crate — thanks for making it!
I noticed that compilation is broken with the latest nightlies.  This PR fixes these, and changes norun to no_run (this attribute name must've changed as well).  I'm not 100% on the semantic correctness here, so if something different should be done let me know.
error[E0609]: no field `filter` on type `&mut TestOpts`
   --> src/runner.rs:258:34
    |
258 |     if opts.filter_exact && opts.filter.as_ref().map_or(false, |s| s == real_test_name) {
    |                                  ^^^^^^ help: a field with a similar name exists: `filters`

error[E0609]: no field `filter` on type `&mut TestOpts`
   --> src/runner.rs:260:14
    |
260 |         opts.filter = Some(format!("{}::", real_test_name));
    |              ^^^^^^ help: a field with a similar name exists: `filters`

Oops, just saw #30, which looks way more comprehensive.  I'm going to close this one.


Add Llama 3

Add config files for Llama 3 8B.

Hi @gaotianyu1350 and @howard-yen,
Apologies if I tagged the wrong people.
I recently read your paper and believe that with the release of Llama 3, including its configuration could be beneficial.
Thank you!


[Bug] Github workflows run on forked repos

Thanks for participating in the TVM community! We use https://discuss.tvm.ai for any general usage questions and discussions. The issue tracker is used for actionable items such as feature proposals discussion, roadmaps, and bug tracking.  You are always welcomed to post on the forum first :smile_cat:
Issues that are inactive for a period of time may get closed. We adopt this policy so that we won't lose track of actionable issues that may fall at the bottom of the pile. Feel free to reopen a new one if you feel there is an additional problem that needs attention when an old one gets closed.
Expected behavior
The forked repo should not trigger Github action workflows.
Actual behavior
The scheduled workflows, ping reviewer and update last-success branch, are triggered every day on my forked repo. This results in two annoying facts: 1) a last-success branch has been created on my forked repo, and 2) I might receive an email about execution failures.
Environment
N/A
Steps to reproduce
Any forked repo with up-to-date main branch should experience this. Here is mine: https://github.com/comaniac/tvm/actions
What I did in other repos is to add a guard to make sure certain workflows (e.g., all scheduled ones) only execute on the upstream repo. Something like:
  job_test:
    if: github.repository == 'my-account/repo-name' # e.g., apache/tvm
    runs-on: ubuntu-latest
    steps:

cc @driazati @areusch

Thanks for bringing this up along with a fix, while there is a repo-specific setting to run upstream workflows on forks, a lot of people seem to have this enabled. Seeing that the fix is pretty trivial we should definitely do it: #10468


Improve shorthand method into WFV_Errors

error() method on WFV_Form
achieve behaviour similar to the input() shorthand

resolved after introducing Mutator and Accessor traits
merged to master https://github.com/macder/wp-form-validation/pull/44 0.8.0


UI bug - voting power

share of voting power doesn't show up in numbers but it's NaN%

Fixed in 56d4aefc330e49fb55ed146bc2e491ce545e6330


Update content for IIT Study groups

Since the app was removed from Google play, the content on the website should be updated: https://manparvesh.com/projects/iitg-study-groups

more info should be added to all project pages, so closing this one. using #41


Add a new folder "Playback speed caluculator" [Gssoc'23]

I would like to add a new file as a contributor of GSSOC'23

Go Ahead @Adhivp


SecRule For ARGS_NAMES and Host

I want to allow request arguements "request.ui_dispatch_app and request.ui_dispatch_view" from "test.local.com" From other domain this should not allow and arguements other than these 2 like "request.something" from any domain including "test.local.com" should not allow in modsecurity. How to achieve this ?

Hi @mailtoyogeshpatel are you using Apache, nginx, IIS, or other options? If it is Apache, depending on the rule you can have it set inside the VirtualHost scope of your Apache configuration.


[BUG] Bipropellant fuel - fuel calculation

Version of Advanced Rocketry
latest
Have you verified this is an issue in the latest unstable build

[ ] Y

Version of LibVulpes
0.4.2-75
Version of Minecraft
1.12
Does this occur without other mods installed

[x] Y

If Y, what is the MINIMUM set of mods required.

Description of the problem
When use a Bipropellant fuel, it seems to be when AR is calculating fuel (in Bi-fuel) as a part of all capacity(fuel+oxidizer). But Monitoring station(and other) gets "fuel part" and can start rocket BEFORE it will fully fueled.
So rocket turns back.

I'm a little confused by what you mean... could you try and explain it more clearly?

Mono rocket has only 1 tank: fuel.
Bi has two tanks: fuel+oxi.
Rocket monitoring station gets:
getFuel(FuelType fuelType) {return (int) (stats.getFuelCapacity(fuelType)...
So if oxi tanks is not fulled, RM thinks all ok and starts rocket.
But there is not oxi, so rocket turns back.
the problem is:
TANK=FUEL+OXI
And sometimes there is checks getCapacity(FUEL) and sometimes getCapacity(TANK).


Webtorrent output display not showing up on stream start.

Make sure that webtorrent output gets redirected to prompt after stream starts as it gives visual assurance to users whether the download started or not.

I would like to work on this issue.

Sure. Assigning this to you.

@notafk-rajat Hi, I forgot to notice but the template files you did in the previous PR are visible in the repo. Please move them to .workflows folder in this PR.

Okay I'll do it.

Hey @qascade ,  So I was going through readme.md to setup yast on my local environment. I got stuck at step 6 for a while so I had to do go run main.go to run the program. So we might need to check into that too.

yast does not support windows for now. That's why you are unable to set up its config files. I would need to install a linux environment. yast has also not been tested on wsl.

Would you like to work on bringing support for windows before working on this?? It's an intermediate issue and will teach you file management using Go. We can create two separate issues for the support of WSL and Windows.

Sure I would love to learn something new while trying to fix this issue. That is the main reason I want to do open-source, learn on the go! (no referring to golang).
I have WSL installed I'll try on it and let you know what I observe there.

Also, I think it would be better to exclude the moving of template files to workflow from this issue.

I asked someone else to move the templates, so you don't need to do that anymore. Anyways, thanks for your continued interest in my project. If you have any questions or blockers do let me know.

@notafk-rajat As almost all of the support issues are resolved, you can start looking back into this issue.

Well, I too have the same issue, I don't get the output on stream start (as I said previously in #51  and #53 ), because the WSL
and windows cannot support yast currently.
So I'm not sure what to do here.

Ok, the only solution for you is to get linux environment. You try getting a VM. But if that is not feasible for you, I'm afraid you won't be able to contribute to yast.

I tried VM once but it was kinda laggy that's why I switched over to WSL. I'll try VM again and let you know. But it'll take a while maybe the day after tomorrow cause I have exams going on.

In the meantime can you explain the issue in a bit more detail? Like on starting the stream the output screen is not popping up? The media player window?

Use webtorrent-cli separately and run the stream command by hardcoding magnet. You will see an output on screen but that is not happening when the same command is executed in golang. Basically we need to explicitly pipe the cmd go-routine's output to os.stdout

Hmm great explanation, but I'll need to dumb it down a little for myself now. Cause the words like 'hardcoding magnet' went above my head. I know about how there are magnet links to download torrents.

Hardcoding means just explicitely copy pasting.

See the code where WebTorrent CLI command is getting executed
. The function name is StartStream() if I remember correctly.

Hey @qascade, you can remove me from this issue. I don't think I'll be able to work on yast unless I dual boot my system with Linux.


tab separated value as field separator

If you only pass in Get TSV, angular escapes the "\t" and doesnt give you the tab character. This correctly lets you use \t as a valid separator.

Hi, thanks for this pull request.
I think this could be generalize to handle every escaped '' characters.
In addition please provide some test cases

Hmm... you're right. Which do you want from https://msdn.microsoft.com/en-us/library/ie/2yfce773(v=vs.94).aspx ?
If you want "all" of them I was thinking of adding...
\t, \b, \v, \f, \r, ",  and '.

What about '\' ?

If they input \ into field-sep="" then Angular will escape it to a normal backslash, which would be what they probably wanted to begin with, so I don't think it needs that.

Yes you're right, cool.

Closing in favor of #94


Add SingleMainWindow=true to Sparrow.desktop

This prevents desktop environments from displaying "New Window" as one of the right click actions in the side bar and application list when Sparrow is already running.
Closes #1436.

I've noticed that this flag doesn't seem to do anything in Ubuntu 20.04 and Debian 11.3 - the New Window menu command appears regardless, but doesn't do anything - as is the case presently. Newer versions of these distros do seem to have support, although sometimes a restart is necessary.
 Thanks!


[Vue warn]: injection "swiper" not found. With useSwiper()

Check that this is really a bug

[X] I confirm

Reproduction link
https://stackblitz.com/edit/vitejs-vite-d4cq6o?file=src/App.vue
Bug description
I want to control the slide with a new button
so i use this hook useSwiper from
https://swiperjs.com/vue#use-swiper
the vue tip warn injection "swiper" not found.

What am I doing wrong?
<script>
// Import Swiper Vue.js components
import { Swiper, SwiperSlide, useSwiper } from 'swiper/vue';

// Import Swiper styles
import 'swiper/css';
import './style.css';

export default {
  components: {
    Swiper,
    SwiperSlide,
  },
  setup() {
    const swiper = useSwiper();
    return {
      swiper,
    };
  },
};
</script>
<template>
  <button @click="swiper.slideNext()">Slide to the next slide</button>
  <swiper class="mySwiper">
    <swiper-slide>Slide 1</swiper-slide>
    <swiper-slide>Slide 2</swiper-slide>
    <swiper-slide>Slide 3</swiper-slide>
    <swiper-slide>Slide 4</swiper-slide>
  </swiper>
</template>

<style></style>

Expected Behavior
No response
Actual Behavior
No response
Swiper version
8.1.6
Platform/Target and Browser Versions
macOS Edge 101
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[ ] I'm willing to open a PR

https://swiperjs.com/vue#use-swiper

Swiper Vue provides useSwiper hook to easliy get the Swiper instance in components inside of Swiper


Docs: Fix MudFormComponent For Summary

Description

The MudFormComponent For summary is incorrect. It says that only string values are supported for validation, but this is no longer the case.
How Has This Been Tested?

N/A
Types of changes

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

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

@henon Extremely minor docs tweak. :)


Remove docker restart policy until the docker api stabilizes

closes #1505

Is it time to look into the restart policy again with docker 1.9.x out?  Add a new unless-stopped restart policy (#15348) was added in 1.9.0

If you want to replicate this by using the official docker-options plugin and letting us know if it worked, that would be A+.

Sure, I will try that out as soon as I get a chance, it will probably be a day or two.

cool :)

OK, I was able to test out the docker-option --restart=unless-stopped.  Based on the testing that I have performed this behaves as I would desire.
Below is a summary of my testing:
I have a test-app deployed with DOKKU_SCALE=2
    dokku docker-options:add test-app deploy --restart=unless-stopped
    sudo reboot

After setting the restart option following any reboot I would see the following behavior:

The initial docker ps shows 4 containers up.
After a couple of minutes it shows only the 2 expected containers up.

docker inspect showed for both containers:
"RestartPolicy": {
            "Name": "unless-stopped",
            "MaximumRetryCount": 0
        }

After causing the app to crash (process.exit(1)) each container twice:
docker inspect showed for both containers:
"RestartCount": 2

Then sudo reboot

See reboot behavior description above.

Execute dokku ps:restart test-app 3 Times in quick succession:

docker ps Shows 8 containers up for 1-2 minutes
Then back down to expected 2

Then sudo reboot

See reboot behavior description above.

Then dokku ps:stop test-app

docker ps shows no containers running

Then sudo reboot

This time only two containers come up.
This is the same as doing a ps:stop and reboot with an app that does not have the restart policy.

Push new version of the test-app

Behaves the same as the reboot behavior description above.
docker inspect shows that the RestartPolicy is retained for both containers.

Test crash the test-app

the containers are still restarted

Then sudo reboot

Same reboot behavior described above

What happens on memory-constrained systems? Can you try this on a box with 512mb ram and 512mb swap?

Might I suggest bringing this conversation to a new issue?

:+1:


Prepare an ivf dumper for tests

Fixes #976

Coverage decreased (-0.007%) to 80.463% when pulling 55649a5f3ca75c7820d478240786096db21bcf7a on rust-av:ivf-subcrate into 0f56dfea39440d2eac4c267cf8e41976c03608ba on xiph:master.


Build docs with Documenter.jl.

Codecov Report

Merging #62 (9b41cdd) into master (5d2acf8) will increase coverage by 0.25%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #62      +/-   ##
==========================================
+ Coverage   91.23%   91.48%   +0.25%
==========================================
  Files           7        7
  Lines        2190     2256      +66
==========================================
+ Hits         1998     2064      +66
  Misses        192      192

Impacted Files
Coverage Δ

src/Helpers.jl
95.52% <0.00%> (+0.06%)
:arrow_up:

src/MPIBackend.jl
92.89% <0.00%> (+0.11%)
:arrow_up:

src/Interfaces.jl
90.85% <0.00%> (+0.25%)
:arrow_up:

src/PTimers.jl
96.70% <0.00%> (+0.31%)
:arrow_up:

src/IndexSets.jl
93.67% <0.00%> (+0.34%)
:arrow_up:

src/SparseUtils.jl
83.92% <0.00%> (+0.49%)
:arrow_up:

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 5d2acf8...9b41cdd. Read the comment docs.

Sure! Did you add the SSH key for Documenter?

Ups! not yet. I'll do it.

I think you also might have to enable gh pages in the repo settings and point it to the gh-pages branch


Upgraded to Beam version 2.53.0. Removed workaround related to the bu…

Upgraded to Beam version 2.53.0. Removed workaround related to the bugs fixed in that version. Removed an obsolete test. Added printing the total number of produced records to the simulator in Pub/Sub mode.

This look sgood to me, Sergei.


Request more clarity as to where to find stack traces

File: engine/admin/index.md, CC @mstanleyjones
The document does a great job of detailing how to generate a stack trace, but I had trouble finding where the stack traces were placed.
Recommendations:

Add LinuxKitOS/MobyOS to the list of OSes here (uses /var/log/docker.log in this case)
Add an example of what to look for in /var/log/docker.log (I'm using MobyOS).
E.g.

Another gotcha to consider is that for MobyOS, a tool like nsenter is needed to gain access to the path where the stack traces are output (i.e. /var/run/docker/).  This also complicates transferring the log files back to a client system if for example ssh was used.
It'd be great if the documentation included steps or recommendations for copying the stack traces to an external system, as it's likely they're going to be used for some kind of support.

@briantd can you provide those steps or point me to who can?


Ensure ZK server failure in the middle of lock creation is handled

Accumulo use ephemeral sequential nodes in ZK for locks.  Need to ensure the lock code handles a ZK server failing in the middle of a call to create an ephemeral sequential node.
https://github.com/apache/curator/blob/apache-curator-4.0.1/curator-framework/src/main/java/org/apache/curator/framework/api/CreateBuilderMain.java#L57

The attached link suggests the use of .withProtection() while creating the ephemeral sequential nodes. From what I can tell, this is an apache curator function which is not used in the creation of ephemeral sequential nodes which happens in ZooReaderWriter.java. I'm not sure of an alternative or a solution at this point. I know this is an old issue so I just wanted to share my initial thoughts/findings in case someone else has some insight into this.

@DomGarguilo I think the idea was to see how Curator solves the issue, to see if we can adopt a similar strategy in the relevant code in Accumulo. We have previously attempted (a very long time ago) to use Curator directly, but it was a much bigger effort that was ultimately abandoned.

This "type: of issue was also discussed in https://github.com/apache/accumulo/issues/1086.

It seems that something like the .withProtection() in curator could be implemented to help with this issue. From what I understand, .withProtection() prefixes the name of the node being created with a GUID/UUID which, if creation fails, is searched for on the parent path and returned if found. In accumulo if node creation fails, depending on why it fails, the creation is either retried or an exception is thrown. My thinking is that during this retry, before an attempt is made to create a new node, the name of the initial node prefixed with the UUID is searched for and returned if found. At the moment I'm still looking into how this might be implemented and determining if this a viable solution.

To add this functionality it seems either a boolean value could be accepted by ZooReaderWriter.putEphemeralSequential()  to denote whether "protection" would be used during creation, or an additional method could be created, something like putProtectedEphemeralSequential() to achieve the same effect. I think it would depend on whether any other variant of node may need to be created with this sort of protection as well as other implications of creating a new method or adding a new input value to the existing method. Still trying to work out the second piece as well: how search/recovery of a node from its UUID-prefixed path might work and where that logic should be implemented.

Curator is a more general framework and is probably why they allow for the additional flexibility, but where we are creating / using locks, I believe that we would always want to have the stronger guarantee.  In addition to the curator code, the zookeeper recipe documentation also lays out how this can be achieved.  (https://zookeeper.apache.org/doc/r3.5.8/recipes.html#sc_recipes_Locks)
For Accumulo, I believe the pattern we currently expect for lock names is lock-[sequential id] - if this were modified to be lock-[uuid]-[sequential id] then the basic recipe would work.
This is roughly the same sequence outlined by the zookeeper recipe, modified with our current naming convention. This assumes we only create one "lock type" in a path - so for example a table lock would be something like /accumulo/[instance-id]/table_locks/[table_id]/ any node named lock-* under that path is only for locking that table (a unique id / path) - other locks would use a different path / root.
With this convention:
Create a sequential, ephemeral lock node: lock-[uuid] and allow zookeeper to assign the sequential id. The generated name would be of the form lock-[uuid]-######## with the # assigned by zookeeper.
Call getChildren (no watch) on the path where the lock node was created to get the node names.
Filter on lock-*
Sort using only the sequential id, and find the node with the lowest sequential number.
The node with the lowest sequential id "has the lock"

If the uuid of the node with the lowest sequential id is the uuid that the process assigned, then that process has the lock.
If the lowest sequential id has a different uuid, then someone else has the lock.

I had started implementing this approach before 1.10 was released, but we determined that it would be more that a "bug-fix" and would not included in that release. So, I put it aside to work other issues. I'll need to check to see what additional modifications are required for 2.1.  There were other related issues regarding using the session id that I believe that the can also be removed with using this approach for locks.

 Something like: lock-uuid1-1, lock-uuid2-1, lock-uuid3-1, etc.? Without the UUID, we get things that look like: lock-1, lock-2, lock-3, etc. Isn't that what we want?

@ctubbsii the sequence number is based on the parent node, not the node name.  From the (zookeeper programming guide)
When creating a znode you can also request that ZooKeeper append a monotonically increasing counter to the end of path. This counter is unique to the parent znode.
I'm having env issues, but I'll post an example when I get those sorted.

@ctubbsii the sequence number is based on the parent node, not the node name.  From the (zookeeper programming guide)
When creating a znode you can also request that ZooKeeper append a monotonically increasing counter to the end of path. This counter is unique to the parent znode.
I'm having env issues, but I'll post an example when I get those sorted.

The advantage of using the uuid in the name vs. putting it in as a value is that the node names and sequence can be determined by calling getChildren() and then parsing the name.  If the uuid was only in the value, then you would need to call getChildren to get the node names, and then each client would need to call getData to read the uuid on at least the node with the lowest sequence id. If a client needed to know its place in the sequence, that client would need to keep calling getData until if found its uuid (if existed at all).
To confirm that the sequence id is based on the parent node I manually generated some nodes.  The parent path is /lock_test/myLocks/ and the sequential, ephemeral nodes are named lock-9999-, lock-1234-, lock-9876- (and in this order) - the 9999 node should have the lowest sequential id.  Looking in zookeeper, the nodes created are:
[zk: localhost:2181(CONNECTED) 5] ls /lock_test/myLocks [lock-1234-0000000001, lock-9876-0000000002, lock-9999-0000000000]
The nodes were created using:
` zk.create(
root + "/myLocks/lock-9999-",
null,
ZooDefs.Ids.OPEN_ACL_UNSAFE,
CreateMode.EPHEMERAL_SEQUENTIAL);
zk.create(
    root + "/myLocks/lock-1234-",
    null,
    ZooDefs.Ids.OPEN_ACL_UNSAFE,
    CreateMode.EPHEMERAL_SEQUENTIAL);

zk.create(
    root + "/myLocks/lock-9876-",
    null,
    ZooDefs.Ids.OPEN_ACL_UNSAFE,
    CreateMode.EPHEMERAL_SEQUENTIAL);

`
After the test exits, but with the zookeeper instance still running - the sequential ids continue to increase, but the order remains as expected. On the second run, the created nodes are:
[zk: localhost:2181(CONNECTED) 7] ls /lock_test/myLocks [lock-1234-0000000004, lock-9876-0000000005, lock-9999-0000000003]

@EdColeman That all makes sense. I didn't realize the sequence was based on the parent node. Thanks for the explanation.

@EdColeman That all makes sense. I didn't realize the sequence was based on the parent node. Thanks for the explanation.

I had started implementing this approach before 1.10 was released, but we determined that it would be more that a "bug-fix" and would not included in that release. So, I put it aside to work other issues.

@EdColeman, how far did you get with the implementation? If you are not currently working on this, I could give it a shot. Do you have any existing code or suggestions?

I had started implementing this approach before 1.10 was released, but we determined that it would be more that a "bug-fix" and would not included in that release. So, I put it aside to work other issues.

@EdColeman, how far did you get with the implementation? If you are not currently working on this, I could give it a shot. Do you have any existing code or suggestions?

My current thinking is to append the UUID to the path passed to create() within ZooReaderWriter.putEphemeralSequential which should achieve the format discussed earlier: lock-[uuid]-########. I'm not too sure where the best place to implement the portion which recovers the created node via getChildren() when this error occurs or how exactly to detect when this error occurs.

My current thinking is to append the UUID to the path passed to create() within ZooReaderWriter.putEphemeralSequential which should achieve the format discussed earlier: lock-[uuid]-########. I'm not too sure where the best place to implement the portion which recovers the created node via getChildren() when this error occurs or how exactly to detect when this error occurs.

It seems there could be two ways this issue could be handled. In the zookeeper recipes which was linked earlier, it does not explicitly say what should happen to a node once its path is recovered. It seems like the path to the recovered node could either be returned, or the node itself could be deleted and node creation restarted. In curator, it seems that when a node in this situation is found, it is scheduled to be deleted and an error is thrown (heres the code). I'm not sure which would work best however if the node is deleted with an exception thrown, this might work well within the retry loop that is used to create nodes in accumulo.

It seems there could be two ways this issue could be handled. In the zookeeper recipes which was linked earlier, it does not explicitly say what should happen to a node once its path is recovered. It seems like the path to the recovered node could either be returned, or the node itself could be deleted and node creation restarted. In curator, it seems that when a node in this situation is found, it is scheduled to be deleted and an error is thrown (heres the code). I'm not sure which would work best however if the node is deleted with an exception thrown, this might work well within the retry loop that is used to create nodes in accumulo.


banner not appearing (android)

My banner is not appearing on android when I set the unit id in the config option

Same here.

Downgrading to ^0.16.2 (package json) and rerunning npm, clean install of app resolves the issue for me @jeanDenison @rafaelblink

https://github.com/ratson/cordova-plugin-admob-free/issues/334#issuecomment-467242330


Add _image_url variable and function get_image_path to get URL of product image

Hi,
thank you for providing Python wrappers to the Picnic API!
I have added some simple functionality to get product image URLs. Please review it and consider adding it to upstream if you find it useful.
Best regards,
Patrick

Hi!
Thanks for your contribution. From your code it seems to me that you are not familiar with some pythonic concepts (e.g. default values, type hinting and string formatting). I also am missing a test for your implementation. The coming 3 weeks I am very busy, but I can take a look at this myself then or can help you if you want :)

Python definitely isn't my go-to language so I'm happy to get hints for improvement. Of course, I dont want to bother you too much with it.
Regarding default values and type hinting I kind of see what you mean and how to improve. When it comes to testing, I'll need to think about it a little bit. Maybe I wil have time to work on it next weekend.

So that others do not also have to invest time.
The URL for the images has changed.
https://storefront-prod.{contury}.picnicinternational.com/static/images/{imageID}/medium.png


Added Maintainers for xPSDesiredStateConfiguration and PSDscResources

Pull Request (PR) description
This PR adds @mhendric and @PlagueHO as maintainers for xPSDesiredStateConfiguration and PSDscResources.
@kwirkykat - could you review and merge this one when you have time?
This Pull Request (PR) fixes the following issues

Fixes #479

Task list

[x] This PR changes documentation
[ ] This PR changes DscResource.Template

[ ] Updated documentation as necessary in the TEMPLATE_README.md.
[ ] An descriptive entry has been added to the change log
in the TEMPLATE_README.md.

[ ] This PR changes Tests.Template

[ ] The template version number has been increased appropriately.
[ ] An descriptive entry has been added to the CHANGELOG.md under the
Tests.Template folder.

This change is

Nope! Bad Stale bot :grin:


Upgrade cadence to v0.24.6

https://github.com/onflow/cadence/releases/tag/v0.24.6

For contributor use:

[x] Targeted PR against master branch
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the standards mentioned here.
[x] Updated relevant documentation
[x] Re-reviewed Files changed in the Github PR explorer
[x] Added appropriate labels

Codecov Report

Merging #303 (e7afab3) into master (e4bdba3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #303   +/-   ##
=======================================
  Coverage   65.87%   65.87%
=======================================
  Files          21       21
  Lines        1946     1946
=======================================
  Hits         1282     1282
  Misses        543      543
  Partials      121      121

Flag
Coverage Δ

unittests
65.87% <ø> (ø)

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

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 e4bdba3...e7afab3. Read the comment docs.


Add enable dark mode handler

This needs a ticket on Trac. The same request has been made a few times so probably do need to add some option here.
* A setting seems overkill.

* An attribute on `AdminSite` would be sufficient. (Use a custom site to set it.)

* But maybe just putting the vars in a separate style sheet, and letting folks override that as normal is the best way to go. thinking

Needs docs and tests.

Hi @carltongibson
You're right a setting is an overkill and an attribute class is enough.
I'm a noob on django contributions, I've seen some enhance request to disable dark schema in an easy way around the channels and forum, is there a way to tie this PR to some existing ticket?
I will add tests and documentation, do I have to set the PR in draft status?


Porting over BioAmp EXG Pill example EEG code

Added the following firmwares:

Fixed Sampling for obtaining samples from ADC at a fixed rate
EEG Filter - A band-pass filter for 0.5 Hz to 29.5 Hz EMG signals
Documentation with description and filter images

@RajGupta17 Thanks for your contribution, merging this now.


[stable/owncloud] Fix 'storageClass' macros

Signed-off-by: Alejandro Moreno<EMAIL_ADDRESS>What this PR does / why we need it:
At #16425 we introduced a new macro that allows us to use a global.storageClass parameter to overwrite any other storageClassName used on other parameters.
Despite new PVCs and Statefulsets generated are syntactically correct (PVC manifests generate exactly the same PVC in the K8s cluster), we introduce a backwards incompatibility since Helm includes some "sanity checks" to ensure immutable objects do not change their specs during an upgrade (see the error below):
Error: UPGRADE FAILED: PersistentVolumeClaim "xxxxx" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims

This error is a consequence of the change below introduced in the PR (when no storagleClass is provided):
kind: PersistentVolumeClaim
...
    requests:
      storage: "8Gi"
+   storageClassName:

Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/retest

/lgtm


Remove deprected builtins in MODULE_BUILTINS

_builtins.py defines MODEULE_BUILTINS.
The following elements are not found in import builtins; dir(builtins):
{
    "StandardError",
    "WindowsError",
    "_",
    "__annotations__",
    "__builtins__",
    "__cached__",
    "__file__",
    "__path__",
    "apply",
    "basestring",
    "buffer",
    "cmp",
    "coerce",
    "execfile",
    "exit",
    "file",
    "intern",
    "long",
    "quit",
    "raw_input",
    "reduce",
    "reload",
    "unichr",
    "unicode",
    "xrange",
}

My question is: Do we need these elements?
For example:

StandardError originates from Python 2 and has long been deprecated (https://portingguide.readthedocs.io/en/latest/exceptions.html)
WindowsError is OS specific and should only be included if the OS is windows.
IMO the dunder look fine.
from the lower case functions I personally only now exit and quit.

So my question is, do we need these elements?
Can we determine MODULE_BUILTINS dynamically?

I originally intended to add testing for this in #85; however, it's more challenging than I original though. How do we determine if a builtin is deprecated or platform dependent? I couldn't find a simple way to determine this dynamically (i.e. at runtime). What's even more complicated is that not all builtins are present in the builtins module. For example, the dunders in the above list are often conditionally defined, as I mentioned in #85.

WindowsError is OS specific and should only be included if the OS is windows.

This is a no go. The platform you run ssort on should be completely independent of the platforms you can run your application on. For instance, a developer may personally develop on Linux, and therefore run ssort on Linux, but have their application target both Linux and Windows. This is a perfectly valid use case which we must anticipate.

Can we determine MODULE_BUILTINS dynamically?

As mentioned above, this would be difficult, if not impossible because of platform dependent builtins.

What would be the downside to simply removing the list of builtins and ignoring unresolved dependencies?
My feeling is that it was something that I introduced when I was trying to get ssort to do much more aggressive grouping.  With the rules as they were then, a typo that resulted in a lookup failure would often result in a significant reshuffling.  With the rules as they are now, I think the only case where an undesired reshuffling could happen is if we wanted to introduce a cycle.
On the plus side, unresolved dependency errors are endlessly infuriating during development as they block other auto-formatters from running.

Using a function like this (test_builtins.py)
def test_no_additional_builtins():
    additional = MODULE_BUILTINS
    additional -= _get_builtins()
    additional -= _get_init_builtins()
    additional -= _get_main_builtins()
    additional -= _get_module_builtins()
    assert not additional

we can determine a list of builtins that are defined in MODULE_BUILTINS but not in "builtin" to python.
This is a complete list of additional elements. Note that all dunder methods are indeed builtins:
{
    'StandardError',
    'WindowsError',
    '_',
    'apply',
    'basestring',
    'buffer',
    'cmp',
    'coerce',
    'execfile',
    'file',
    'intern',
    'long',
    'raw_input',
    'reduce',
    'reload',
    'unichr',
    'unicode',
    'xrange'
 }

Basically all of these are relics of Python 2 and no longer in use:

StandardError:  https://portingguide.readthedocs.io/en/latest/exceptions.html#the-removed-standarderror
WindowsError: https://docs.python.org/2/library/exceptions.html#exceptions.WindowsError
apply: https://portingguide.readthedocs.io/en/latest/builtins.html#removed-apply
basestring: https://portingguide.readthedocs.io/en/latest/strings.html#type-checking
buffer: https://portingguide.readthedocs.io/en/latest/etc.html#raw-buffer-protocol-buffer-and-memoryview
cmp: https://portingguide.readthedocs.io/en/latest/comparisons.html#the-cmp-function
coerce: https://portingguide.readthedocs.io/en/latest/builtins.html#removed-coerce
execfile: https://portingguide.readthedocs.io/en/latest/builtins.html#removed-execfile
file: https://portingguide.readthedocs.io/en/latest/builtins.html#removed-file
intern: https://portingguide.readthedocs.io/en/latest/builtins.html#moved-intern
long: https://portingguide.readthedocs.io/en/latest/numbers.html#removal-of-the-long-type
raw_input: https://portingguide.readthedocs.io/en/latest/builtins.html=raw_input#safe-input
reduce: https://portingguide.readthedocs.io/en/latest/builtins.html#moved-reduce
reload: https://portingguide.readthedocs.io/en/latest/builtins.html#moved-reload
unichr: https://docs.python.org/2/library/functions.html#unichr
unicode: https://portingguide.readthedocs.io/en/latest/strings.html#conversion-to-text
xrange: https://portingguide.readthedocs.io/en/latest/strings.html#conversion-to-text

Thus, only _ remains.
_ placeholder variable
currently _ is considered to be a builtin since its generally used as a placeholder for unused variables. However, the following abominationcode is valid python code and does not get sorted correctly by ssort:
def fun():
    return _

def _():
    return ""

So should we remove _? If yes, the remaining builtins can all be determined dynamically.

Python 2 builtins also important for the same reason as platform specific ones: code can run under different versions of python as well as on different platforms.  If we have a list of builtins then it should list all possible builtins.

So should we remove _?

Is it ever safe to dereference _ without it being explicitly bound?  If not then the answer is probably yes.  There is an element of Chesterton's fence here though.

I still have an deep seated aversion to deleting stuff I've spent a lot of time on so this hurts, but I think this is the better solution:  https://github.com/bwhmather/ssort/pull/96

Python 2 builtins also important for the same reason as platform specific ones: code can run under different versions of python as well as on different platforms. If we have a list of builtins then it should list all possible builtins.

I think the question then is: do we want to support legacy python 2 code snippets? There is at least on test in test_data.
I personally would argue that we are in 2023 and python 2 should not be used so remove those and call it a day.

I still have an deep seated aversion to deleting stuff I've spent a lot of time on so this hurts, but I think this is the better solution: https://github.com/bwhmather/ssort/pull/96

Based on discussion with you and @jgberry, have determined that removing the warnings in #96 is not sufficient to allow removing the builtins list safely.
Going to leave this open for a couple more years.


[Security]Improving Password Integrity Through Salting in Java

Topic Suggestion
Security
Writing sample(s):
Understanding quality of service
Proposed title of article
Improving Password Integrity Through Salting in Java
Proposed article introduction
Passwords are the most widely used authentication technique on the globe. The popularity of passwords stems from their ease of generation and convenience of usage. To have a password, a user only needs to use characters or phrases that they can remember and are unique to them.  Nonetheless, the basic nature of passwords makes them easy to compromise.  As a result, developers frequently consider hashing and salting their users' passwords for security concerns. salting increases the integrity of passwords saved in a database.
Key takeaways

Detailed understanding of what salts are and why they matter.
Dangers of using an unsalted password.
Importance of random character generators in salting
A number of code snippets to take the reader through each of the steps in implementing salting through
1. User defined random characters
2. Using random character generators.
3. Using the Bycrpt algorithm.

Article quality
My article is unique as it follows a step-by-step procedure explaining in simple language what is happening in each block of code. this is to allow the reader to gain a closer understanding of how to do what am explaining on their own without any difficulties. the article follows a systemic approach of how I broke down the problem, question and solved the problem in different ways until I found a solution.
References
N/A
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Hi @Su-sid
Thank you for suggesting your article. However, after a google search of your topic suggestion, we found several articles that talk about salting like this one. Due to this, we cannot move forward with your article. Feel free to explore other topics of your interest.

Your article suggestion was pretty well written. I would suggest you look for another topic that isn't widely covered and I think it would be awesome.


GoogleMaps is not running in iOS simulator for Apple Mac M1

Error

ld: building for iOS Simulator, but linking in object file built for iOS, file '/Users/bjit/Work/JASMY/SRC/p1340_project_corona/NNForwarder/ios/Pods/GoogleMaps/Base/Frameworks/GoogleMaps.framework/GoogleMaps' for architecture arm64
I am using Xcode 13.1 Xcode to build and run the app in Simulator iPhone 11 pro

For building on an M1 Mac, use the XCFramework available here.

here

I am using cocoa pods to install GoogleMaps in react native iOS project and Its pod based dependency installer based project.
How could I solved this using cocoa pods dependencies installer in react native project?

CocoaPods is not a supported package manager yet for XCFrameworks. You would have to use either Carthage or install the xcframework manually.

CocoaPods is not a supported package manager yet for XCFrameworks. You would have to use either Carthage or install the xcframework manually.

I think, you should not understand my above question. Please try to understand

Why you close the bug?

This bug was closed because a solution is available for M1 machines by using the XCFramework version of the SDK. At the moment, only Carthage and installing it manually are the only installation options for this. As I mentioned in my previous comment, CocoaPods is not supported for XCFrameworks. If you would like to, please file a feature request for CocoaPods support in your public issue tracker.

is this still the case? @arriolac


Uncaught TypeError: Cannot read property 'prototype' of undefined

Hello,
I import xlsx-populate in the following way:
import * as xlsxPopulate from 'xlsx-populate';
I'm using it in an Angular-4 project and use webpack for building the app.
When I deploy my app, I have an error when the page loads:
sax.js:222 Uncaught TypeError: Cannot read property 'prototype' of undefined
at webpackJsonp.qc9y.Buffer.sax (sax.js:222)
at Object.<anonymous> (sax.js:1565)
at Object.qc9y (sax.js:1565)
at __webpack_require__ (bootstrap b6d7e8b291b65fd937ef:54)
at Object.tfMB (XmlParser.js:3)
at __webpack_require__ (bootstrap b6d7e8b291b65fd937ef:54)
at Object.QOXM (Workbook.js:16)
at __webpack_require__ (bootstrap b6d7e8b291b65fd937ef:54)
at Object.my6T (XlsxPopulate.js:4)
at __webpack_require__ (bootstrap b6d7e8b291b65fd937ef:54)
at Object.di9E (globalDependencies.browser.ts:5)
at __webpack_require__ (bootstrap b6d7e8b291b65fd937ef:54)
at webpackJsonpCallback (bootstrap b6d7e8b291b65fd937ef:25)
at B_globals.21ab6c097762f2f4cab5.bundle.js:1

The line  webpackJsonp.qc9y.Buffer.sax (sax.js:222) is:
  SAXStream.prototype = Object.create(Stream.prototype, {
    constructor: {
     value: SAXStream
    }
  })

And SAXStream seems to be a global object, I can see this at the top of the sax.js:
sax.SAXStream = SAXStream

Despite this error in the console, xlsx-populate works as expected. I just don't understand wh yI have this error.
I'm suspecting it has to do with the order in which I load my dependencies...
If anyone has an idea, that would be greatly appreciated.

Not sure. Did you try using the built browser version instead?

Oh well done, I include it like this now:
import * as xlsxPopulate from 'xlsx-populate/browser/xlsx-populate.js';
And the error is gone.
Thanks a lot


Web socket closes with code 1000 after stream of messages

When a large stream of messages takes longer than ~ 30 seconds to handle, after the last message is received, I get a socket closed message with a code 1000.
If I store the messages to an in-memory datastore, rather than on disk, this dramatically reduces the time it takes to process the messages (around 6 seconds), and this doesn't occur and the connection remains open, communicating normally.
Wondering if you know why this is happening and have any solutions for suggestions/workarounds?

The library itself does not contain an explicit timeout. Code 1000 (Normal Closure) is the default code, leaving me to believe that the server or the client is closing the connection directly.
Does it take 30 seconds to process one message in the large stream, or the entire stream?
Does your client code call the socket.close() method at any point?

One more question.
Does your server send pings?
SwiftWebSocket sends pongs immediately following a received ping. This happens automatically in the background and is not normally something your client code needs to worry about.
If your server sends a bunch of messages and then sends a ping somewhere along the line; and your client code takes a longer time than what the server expects before receiving the pong; then it's possible that the server is closing the connection.
For example, let's say that the server sends a ping every 30 seconds with the first ping occurring immediately after the connection opens. Following the first ping, the server server sends 5 large messages. The client must handle each message in exact order prior to SwiftWebSocket responding with a pong.
But if it take more than 30 seconds to handle those 5 messages, then the server won't receive the pong prior to the next ping. This will make the server think that the client is not responding and explicitly close the connection.
If this happens to be cause of the issue, I suggest that instead of processing the message in the event.message, push the message into a background NSOperationQueue (or some type of background thread) and do the processing of the message there. This will free up the websocket to return pongs and continue to run smoothly, but at the expense of having to store messages in-memory temporary.

To answer the first question, it takes ~ 30 seconds to process the stream, not a single large message. Your second suggestion was one of my hunches also, so it's good to hear you second it. I'll spend some time today on this, and will close the issue if this solves it. Thanks for the insightful response!

I put the messages into a background thread, and this seems to have solved the problem. Thanks -

I put the messages into a background thread, and this seems to have solved the problem. Thanks -

Can you explain How you configured the messages background thread.


GitHub repo under organization not working

Are you experiencing an issue with...

[x] shields.io
[ ] My own instance
[ ] gh-badges NPM package

:beetle: Description
https://img.shields.io/github/v/release/:user/:repo not work with :user is an organization.
e.g. https://img.shields.io/github/v/release/badges/shields shows (release|
no releases or repo not found).
Same problem also happened on /github/release-date/..., etc...
:link: Link to the badge
https://img.shields.io/github/v/release/badges/shields.svg

https://img.shields.io/github/release-date/badges/shields.svg

:bulb: Possible Solution
It seems like the meta are not correct parsed.

The reason you're seeing that for our repo is because our repo does not have any releases - its not because we're under an organisation. If you try it for an organisation repo that does publish releases, it works e.g:
 - https://img.shields.io/github/v/release/atom/atom.svg
The things that appear on our releases page are actually tags:
 - https://img.shields.io/github/v/tag/badges/shields.svg
Don't worry - the fact that GH shows tags on the releases page is a frequent source of confusion :)


Polybuild doesn't allow vulcanize exclusions

As far as I can tell there is no way to exclude certain files from Polybuild when using it with Gulp. This becomes an issue when using it in a Cordova application as cordova.js is not injected until the end of the build process.
Please tell me if there is a solution to this, otherwise wait until the project is more mature before including it in the Polymer Starter kit.

Polybuild is meant as a one-stop shop that combines the defaults of a few tools. If you want more control, I suggest using the tools separately.
cc @addyosmani for PSK usage.

Just because it combines them, doesn't mean you should lose control of them though, no?

@ThomasShaped A PR might be more convincing : )


WebSocket Connector -Documentation needs correction

there is a small correction needed on WebSocket connector Documentation -
https://github.com/mulesoft/docs-connectors/blob/latest/websockets/1.0/modules/ROOT/pages/index.adoc#advantages-of-full-duplex-communication
Point 2. The server processes the request and sends a response back. The connection ends after the client receives the request.
Correction needed as -
The server processes the request and sends a response back. The connection ends after the client receives the response.
let me know If i can contribute on this

correction updated as part of #958 so closing


Use Github Actions instead of Circle CI

Prerequisites
Put an x into the box(es) that apply:

[ ] This pull request fixes a bug.
[ ] This pull request adds a feature.
[x] This pull request enhances existing functionality.
[ ] This pull request introduces breaking change.

For more information, see the Contributing Guide.
Description
This PR replaces Circle CI config for Github Actions. The workflow actions defined are:

build for verifying, testing and building PRs and master
prerelease for preparing a pre-release tag and publishing the artifacts for it (every tags of v*.*.*-* pattern, e.g. v0.7.0-alpha)
release for preparing a release tag and publishing the artifacts for it (for every tags of v*.*.*, such as v0.7.0)
stale for automatic interaction with stale PRs and issues (to be added)

Issues Resolved
List any existing issues this pull request resolves.
Checklist
Put an x into all boxes that apply:

[ ] I have read the Contributing Guidelines.

Tests

[ ] I have added tests to cover my changes.
[ ] All tests pass when I run make test.

Documentation

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Code Style

[ ] My code follows the code style of this project.

@metmajer This PR is blocked by #115 and also Action needs to be enabled from the repository Settings page.


CWE-327: Use of a Broken or Risky Cryptographic Algorithm

Our application uses the swiftmailer library. The use of weak md5 were reported by our application security scan.  We are required by them to report an issue here, in order to mitigate this flaw.
instances were found here:
swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php - line 83
swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php - line 596
swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php - line 603

It's not used for any cryptographic purposes.
it's used to generate content-ids...
and for the ntlm, i suspect if you don't authenticate through ntlm you
should be safe,
Can you please not simply report things blindly?
A security scan tool, is as expected a tool, it's output should be
understood, following blindly rules leads also to bugs.
Xavier
On Wed, Aug 26, 2015 at 7:17 PM, avardbacon<EMAIL_ADDRESS>wrote:

Our application uses the swiftmailer library. The use of weak md5 were
reported by our application security scan. We are required by them to
report an issue here, in order to mitigate this flaw.
instances were found here:
swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php - line 83
swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php -
line 596
swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php -
line 603
—
Reply to this email directly or view it on GitHub
https://github.com/swiftmailer/swiftmailer/issues/656.

--
Xavier De Cock
GPG Fingerprint: 93CA EE3F 9F57 5BE1 AE4A  794D 3C74 CA9E E7A5 0C1B
GPG Id: 0xE7A50C1B

I confirm, we can remove the MD5 in NTLM as soon as Microsoft fixes his protocol (and all implementations are replaced), or, we stop supporting the ntlm auth so you can fix you security scan problem.
So, Not a bug, not a security risks by itselfs, won'tfix

I don't need you to do anything. I know this is not risky, I just had to officially report an issue here. I aplogize at the same time.
thanks

Well, why do you have to report an issue here if you know it is invalid ? this is what was meant by @xdecock in

Can you please not simply report things blindly?


[Bulk] Save child entities under a parent entity

Description
This PR is for allowing persisting child entities(non-root level entities) directly under a parent entity without having them in the datastore previously.
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

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

[x] Have a root entity(A) and a non-root entity(B), A has a to-many relationship with B, create a JsonApiToManyRelationship for the corresponding relationship then hit save/bulkSave. The JSON:API server must persist all passed Bs and attach them to A.

Checklist before requesting a review

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

Hi HassanAzzam, thanks for your PR! It is great that you took time to contribute to this library. I see an issue which you are trying to solve. This should be done a bit diferent, similar to ToOne relationship with custom path but an empty one. Also save method is about Upserting (add or update) so it is not always POST request. I am going to merge your work and add required fixes. Next time please start from opening an issue to have at least small discussion. ;)

I've published a new version with your changes. Give it a try! :)

I was a bit on hurry, I know it's not the best contribution. I thought I did open an issue but just found I didn't, sorry for that.

As you mentioned that save/bulk save is for upserting, the add/bulk add just sends the relationship object(id and type only) not full object so the child entities don't get persisted. Tried to fallback to save/bulk save but JsonApiToManyRelationship doesn't implement it.
Thanks for your time!

This change is completely fine and I included it almost without changes. Thank you for your time as well!

Looks like a piece of code is missing, in json-api-to-many-relationship.ts we should have methods to hit the provider's save/bulk save methods.
    /**
     * Saves a child entity.
     *
     * @param {TRelationship} relationship Child entity to be saved.
     *
     * @returns {Promise<TRelationship>} Saved entity.
     */
    public save(relationship: TRelationship): Promise<TRelationship>
    {
        return this.relationshipSet.save(relationship);
    }

    /**
     * Bulk saves a child entities collection.
     *
     * @param {EntityCollectionLike<TRelationship>} relationshipCollectionLike Child entities collection to be saved.
     *
     * @returns {Promise<EntityCollection<TRelationship>>} Saved entity collection.
     */
    public bulkSave(relationshipCollectionLike: EntityCollectionLike<TRelationship>): Promise<EntityCollection<TRelationship>>
    {
        return this.relationshipSet.bulkSave(relationshipCollectionLike);
    }

Isn't it?

Yep, you are right. I've missed this also.

This https://github.com/dipscope/JsonApiEntityProvider.TS/pull/29 should be solving it.


Connecting to my SF via Visual Studio with a port other than 19000

Hi
In the cluster configuration for a three node, single machine, unsecured on premise cluster (v6.2.283.9494), I changed the default port from 19xxx to 18xxx (see config below).
The publish process in Visual Studio 2017 somehow cannot handle these port changes properly, eventhough the connection endpoint has been adjusted in the publish profiles.
Publishing to the old 19000 endpoint worked flawlessly, but the endpoint on port 18000 won't be recognized at all. However, a connection started directly from powershell seems to work even for the 18000 port.
Is publishing from within Visual Studio somewhat restricted to port 19000? If yes, is there a workaround?
Thx,
Used ClusterConfig
{
"name": "DEV_Cluster",
"clusterConfigurationVersion": "1.0.0",
"apiVersion": "10-2017",
"nodes": [{
"nodeName": "node0",
"iPAddress": "[DEV MACHINE IPADDRESS]",
"nodeTypeRef": "NodeType0",
"faultDomain": "fd:/dc1/r0",
"upgradeDomain": "UD0"
},
{
"nodeName": "node1",
"iPAddress": "[DEV MACHINE IPADDRESS]",
"nodeTypeRef": "NodeType1",
"faultDomain": "fd:/dc2/r0",
"upgradeDomain": "UD1"
},
{
"nodeName": "node2",
"iPAddress": "[DEV MACHINE IPADDRESS]",
"nodeTypeRef": "NodeType2",
"faultDomain": "fd:/dc3/r0",
"upgradeDomain": "UD2"
}],
"properties": {
"enableTelemetry": false,
"fabricClusterAutoupgradeEnabled": false,
"diagnosticsStore": {
"metadata": "Please replace the diagnostics file share with an actual file share accessible from all cluster machines. For example, \\localhost\DiagnosticsStore.",
"dataDeletionAgeInDays": "21",
"storeType": "FileShare",
"connectionstring": "D:\ServiceFabric\DiagnosticsStore"
},
"nodeTypes": [{
"name": "NodeType0",
"clientConnectionEndpointPort": "18000",
"clusterConnectionEndpointPort": "18001",
"leaseDriverEndpointPort": "18002",
"serviceConnectionEndpointPort": "18003",
"httpGatewayEndpointPort": "18080",
"reverseProxyEndpointPort": "18081",
"applicationPorts": {
"startPort": "20001",
"endPort": "20031"
},
"isPrimary": true
},
{
"name": "NodeType1",
"clientConnectionEndpointPort": "18004",
"clusterConnectionEndpointPort": "18005",
"leaseDriverEndpointPort": "18006",
"serviceConnectionEndpointPort": "18007",
"httpGatewayEndpointPort": "18082",
"reverseProxyEndpointPort": "18083",
"applicationPorts": {
"startPort": "20288",
"endPort": "20318"
},
"isPrimary": true
},
{
"name": "NodeType2",
"clientConnectionEndpointPort": "18008",
"clusterConnectionEndpointPort": "18009",
"leaseDriverEndpointPort": "18010",
"serviceConnectionEndpointPort": "18011",
"httpGatewayEndpointPort": "18084",
"reverseProxyEndpointPort": "18085",
"applicationPorts": {
"startPort": "20575",
"endPort": "20605"
},
"isPrimary": false
}],
"fabricSettings": [{
"name": "Setup",
"parameters": [{
"name": "FabricDataRoot",
"value": "D:\ServiceFabric\Cluster"
},
{
"name": "FabricLogRoot",
"value": "D:\ServiceFabric\Log"
}]
},
{
"name": "Hosting",
"parameters": [{
"name": "FabricContainerAppsEnabled",
"value": "false"
}]
}]
}
}

@masnider @dkkapur

Just following up. Do you have any input on this issue?

Not sure why, but It works now. Probably fixed with a new VS2017 update.


coverage plugin base on pyx syntax instead of parsing generated c files

This PR add a pyx file tracer and reporter can work without c or cpp files for tools like cmake or meson.
Current we parse pyx code from generated c files which is unnecessary, we can just parse them from pyx file itself.
I think it's possible to remove old tracer and reporter with this tracer only.
This maybe the final piece of https://github.com/cython/cython/issues/6186 (cc @oscarbenjamin)
This is an immature implement and still have something to fix, but I want to create a PR first to have some discussion.

The advantage of parsing the generated C file is that it only contains source code that actually lead to executable code. That makes decisions about expected and missing code lines easier. It also simplifies include file tracking, pxd file injections, etc., because it only has a single file to look at for the whole module code.
Usually, the generated files can be expected to be available when running tests, because that tends to happen shortly after a (fresh) build. Basically, if the source files are available, why not the generated files?
That said, I'll take a look later today, if I get to it.

Generally speaking, this seems incomplete and already adds a lot of complexity. If we can avoid that, I'd rather take a simpler path.

Yes, it's still incomplete. I only tested it on single pyx file and not a non-executed lines are excluded.


Tips how to reduce RAM.

Hi.
I recently used your library and thanks for sharing.
Unfortunately all text variable like below consume a lot of RAM.
 cmdPing.setDescription(" Responds with a ping n-times");
I'm using UNO and quickly got run out of RAM.
One variant i found it working is to store all strings in FLASH:
const static char StrInFlash[] PROGMEM = " Responds with a ping n-times";
cmdPing.setDescription(StrInFlash);

if you have just some text to print over Serial you may use directives Serial.print(F("some text"));
Here is error callback function modified to use less RAM
void errorCallback(cmd_error* e) {
    CommandError cmdError(e); // Create wrapper object

    Serial.print(F("ERROR: "));
    Serial.println(cmdError.toString());

    if (cmdError.hasCommand()) {
        Serial.print(F("Did you mean \""));
        Serial.print(cmdError.getCommand().toString());
        Serial.println(F("\"?"));
    }
};

I hope someone will found it useful too

Thanks for the great tip!
I would just like to add a note that this trick might not work on all boards, as Arduino cores differ depending on the chip's architecture.
As already mentioned in the README, I would generally advice not to use something like the Arduino UNO, as it has not enough memory to store and handle lots of long strings. But if you keep your project small and use tricks like this, you're safe to use it anyway :)


Convert the remaining code in src/display/api.js to use ES6 classes

Apart from the class conversion, this also changes all var to let/const and (temporarily) enables the ESLint no-var rule in this file (until such a time that it can be enabled globally).
It's obviously possible that the deprecated calls aren't actually wanted here, and I won't insist on keeping them if there's any objections :-)
However, I do think that it would be good to at least do a slightly better job of "promoting" PDFDocumentLoadingTask/RenderTask, since they contain more functionality than just a promise (see e.g. the destroy respectively cancel methods).
Please note: It's highly recommended to look at each commit separately and ignoring whitespace changes, with ?w=1, when reviewing this. For some reason GitHub completely chokes on the PDFPageProxy diff, so for convenience here's the git diff -w output: https://gist.github.com/Snuffleupagus/d44fd9aa1f63abe2e377e138de2d6fef

/botio test

/botio test

/botio-linux preview

Awesome, thank you!


Please consider support ImmutableList, and List should extends it

consider following code:
class Fruit {
  final String color;

  Fruit(this.color);

  void printColors(List<Fruit> fruits) {
    fruits.add(Orange());  // TODO will be error in runtime not in static analysis
    for (var fruit in fruits) {
      print('${fruit.color}');
    }
  }
}

class Apple extends Fruit {
  Apple() : super("red");
}

class Orange extends Fruit {
  Orange() : super("orange");
}

void main() {
  List<Apple> apples = <Apple>[];
  apples.add(Apple());
  // it is ok, because dart is default covariant
  Fruit('none').printColors(apples);
}

if support Immutable like MyImmutableList, and MyList is List like following code:
class Fruit {
  final String color;

  Fruit(this.color);

  // TODO in base class, printColors can not add
  void printColors(MyImmutableList<Fruit> fruits) {
    //fruits.setFirst(Orange());  // Now it will be error in static analysis
    fruits.getFirst();  // mock iterate
    /*for (var fruit in fruits) {
      print('${fruit.color}');
    }*/
  }
}

class Apple extends Fruit {
  Apple() : super("red");

  // TODO in sub class, printColors can add it's concrete type element
  // mention apples is List not ImmutableList
  @override
  void printColors(covariant MyList<Apple> apples) {
    apples.setFirst(Apple());  // Now it's ok, and just can add Apple obj
    apples.getFirst();  // mock iterate
    /*for (var fruit in fruits) {
      print('${fruit.color}');
    }*/
  }
}

class Orange extends Fruit {
  Orange() : super("orange");
}

void main() {
  var tmp = MyList<Apple>();
  tmp.setFirst(Apple());
  // it's ok, because dart is default covariant
  MyImmutableList<Apple> apples = tmp;
  Fruit('none').printColors(apples);

  // it's ok
  Apple().printColors(tmp);
}

// MyImmutableList is should support ImmutableList in dart core, and List extends ImmutableList
class MyImmutableList<E> {
  E _firstEle;
  // not support add method

  // like list[index]
  E getFirst() {
    return this._firstEle;
  }
}

// MyList is core List
class MyList<E> extends MyImmutableList<E> {

  // like list[index] = ele;
  void setFirst(E ele) {
    this._firstEle = ele;
  }
}

Dart has so far deliberately not introduced immutable interfaces for collections.
The problem with having both a, say, Sequence (readable list) and subclass List (modifiable list), is that every operation which now takes a List will need to choose between the two. If you end up with a Sequence where you need a List, you are stuck.
The type name would not be ImmutableList because a mutable List would be a subclass, and mutableList is ImmutableList sounds wrong. That means that something being a Sequence does not guarantee that it doesn't change. It just restricts you to not being able to change it through the available API. You are no better off than if you just accepted a List and don't try to modify it.
What could possibly help you here is variance control (https://github.com/dart-lang/language/issues/213), but an immutable list is not likely to be how we'll address this issue.

Ok, thank you for your response

You are no better off than if you just accepted a List and don't try to modify it.

But you are better off than if you just accepted a List and did try to modify it.  List is claiming capabilities that it doesn't have.  By accepting Sequence I'm agreeing to a narrower (and statically enforced) contract.

You are no better off than if you just accepted a List and don't try to modify it.

But you are better off than if you just accepted a List and did try to modify it. List is claiming capabilities that it doesn't have. By accepting Sequence I'm agreeing to a narrower (and statically enforced) contract.

this will support? so i should reopen this issue.

You are no better off than if you just accepted a List and don't try to modify it.

But you are better off than if you just accepted a List and did try to modify it. List is claiming capabilities that it doesn't have. By accepting Sequence I'm agreeing to a narrower (and statically enforced) contract.

this will support? so i should reopen this issue.


updated testimonial

I have updated the testimonial section into a horizontal slider carousel using react-bootstrap. Additionally, I made some CSS changes to enhance the testimonial section's appearance and ensure the functionality works properly across different screen sizes.
The carousel is fully responsive, adjusting seamlessly for both mobile and desktop views to provide a consistent and user-friendly experience.
To support this update, I installed the following library:   react-bootstrap bootstrap

I checked it again , I've merged the latest changes from master into my sefina-testimony branch and pushed everything. Is there anything else you need from me to finalize the pull request?