Projects and Events can have their own different admins

User story
As a Collective admin, I want to empower leaders of Projects and Events without needing to add them as admins over the whole Collective.
As an Event or Project organizer, I want to be able to edit the page settings, send updates, and approve expenses.
Best solution for this problem
A team section within the settings for each Project or Event where you can add people different to the overall Collective admins. When creating an Event or Project, you should be able to define its admins (select admins of the parent and/or invite other people).
MVP
To make it simpler, don't add the bit about setting admins during creation and default to inheriting the parent Collective admins, but then still have a team section in settings where you can edit these.
Notes
People are really responding to the Projects feature (and Events as well) and this is creating demand for more fine-grained control over permissions. I have received multiple requests for this from users, and find myself explaining workarounds a lot in support because we don't have this feature.
The workaround isn't really a workaround: "The parent Collective admins will be the admins so just have the Project lead email you every time an expense is approved". Messy.
To implement this feature, we will need to ensure new sub-Collective admins also tick a box agreeing to the Host terms. As this is already the case for adding new parent Collective admins, that should be straightforward.
New Projects and Events should only be able to be created by the parent Collective admin, and being invited as a sub-Collective admin should not enable you to create further sub-Collectives or have admin access to the parent.

This is how things were initially done, the ability to edit event members was removed to simplify the feature.
Ping @znarf

It was a bit messier back then, Collective admins were initially copied. And from then were Event admins managed independently and never re-synchronized.
I'm happy to reintegrate additional admins for Events/Projects, if we all agree that parent Collective admins will keep full admin rights on Events/Projects all the way.

If it's easy to switch back on different additional admins, then let's go with that. We can dig into the question about completely different admins later.

Let's not forget about https://github.com/opencollective/opencollective-api/pull/7006/files/73d57e943352646636a16a4111cc75edc8289db9#diff-66cf8382a3802288c48c1dd40b91f465d8fee23a9acf3488bb1b319d897f635e when we'll tackle this one

Just going to bump this as something that would be incredibly helpful to a group and project I'm working on. We're organizing an event for which we want to set up a project with specific funding for that event. But the people organizing the event/project shouldn't have access to the parent organization simply because the parent organization has specific processes in place. Right now we're going to be working around this by getting admin from the parent org approving and doing the changes we need, but it's more work on people who are already doing a bunch of the work. This would be incredibly useful.

Also going to bump this issue as I did not realize it had been changed since I started using the feature and it is one of my main selling points to new collectives about the benefits of using the Projects feature to build trust and onboard new people who can manage specific projects with limited budgets within a larger collective. We need this one back to help facilitate those trust relationships within collectives.

@aomuse this feature never was in place so it's not about getting it "back". Projects and Events have always inherited the admins of the parent Collective. If you'd like to creating things with different admins now, make them separate Collectives and we can make them Connected Collectives. But we would really like to build a feature for separate sub-Collective admins, which is what this issue is about. I hope we can soon.

Okay. I must have imagined that feature then. I seem to have such a lucid memory of using that it is the only reason I keep talking to everyone about the Projects feature. Strange. Then I would endorse the ability to add additional admins to Projects and Events since this is a distinct need Collectives have expressed.

+1 for this.

Use case is we want to empower our LATAM community to manage the funds in a project which will result from a large conference they are organising, but they should only be able to approve expenses in that specific project (and also in the OC event for the conference), not anywhere else

Another +1 to this as the Australian host I've been supporting needs it as well

Not at design phase yet, but I am imagining of inheritance as a tickable option on Projects and Events. That way people have the option of deactivating inheritance for specific sub-collectives. Adding that suggestion so I don't forget it when the issue makes its way up the list.

Yes - what I was expecting to see was some way of saying the team member is:

Global admin of all the things
Limited admin with options

Can manage all projects
Can manage all events
Can manage these specific projects (or not manage these specific projects)
Can manage these specific events (or not manage these specific events)

Financial bod (can export transactions and the like but no management access etc)
Marketing bod (can write draft updates but not publish them)

Implementation Goals:

[ ] Make sure admin inheritance is purely virtual between parent and children collectives

[ ] Write migration to remove ADMIN memberships from children collectives

[ ] Display the complete TEAM page on Events and Projects

[ ] This page allows admins to be created and deleted in this specific project
[ ] This page also displays the parent collective admins and does not allow the user to edit.

[ ] @kewitz tackling this this week ✌

[ ] couple of issues with the demo to rectify this week

Can we add some more information to the Team about about how this works? It currently only shows what the different roles are and nothing about how these admins are just for the project/event?


Update ingest-data-overview.md

supported format in event hub

@TzviaGT : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


The Edit Details button on the create wallet interstitial page shouldn't clear the wallet

I'm submitting a…

[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request

Expected Behavior
I would have expected the edit details button on the wallet confirmation page to take me back to the wallet creation page with all of my xpubs still imported.  It would be highly annoying to set up 7 different hardware wallets and then have to do them all over because you made a mistake on the last one.
Current Behavior

All of the xpubs are cleared, see gif:

Possible Solution
Don't clear the wallet.

Steps to Reproduce (for bugs)

Import some xpubs or upload a wallet configuration file
Click "Edit Details" button
Notice that your entire wallet has been reset

Environment

Where are you running caravan:  localhost
Operating system: Linux
Browser and version: Chrome

<EMAIL_ADDRESS>/home/walden/code/caravan
├──<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>  └──<EMAIL_ADDRESS>
npm: 6.14.4
node: v12.16.2
Linux 5.6.13-arch1-1 #1 SMP PREEMPT Thu, 14 May 2020 06:52:53 +0000 x86_64 GNU/Linux

The Caravan Library is transitioning to a new home, and as part of this move current issues will be closed and archived. This ticket will be addressed in the future as part of a broader UX overhaul, but you are welcome to recreate the issue if you would like: https://github.com/caravan-bitcoin/caravan/issues


installing devbio-napari via conda

Comment:
I ran into this error message when attempting to install the devbio napari plugin via conda:
``ERROR conda.core.link:_execute(730): An error occurred while installing package 'conda-forge::qt-5.12.9-h556501e_6'.
Rolling back transaction: done
LinkError: post-link script failed for package conda-forge::qt-5.12.9-h556501e_6
location of failed script: C:\Users\marye\anaconda3\envs\napari-env\Scripts.qt-post-link.bat
==> script messages <==

==> script output <==
stdout:         1 file(s) copied.
stderr: 'chcp' is not recognized as an internal or external command,
operable program or batch file.
'chcp' is not recognized as an internal or external command,
operable program or batch file.
'chcp' is not recognized as an internal or external command,
operable program or batch file.
return code: 1
()
How do I resolve this error? I'm not experienced in coding and am unsure of interpreting this error. Thank you for your help.

This has been solved in this thread:
https://forum.image.sc/t/installing-devbio-plugin-in-napari/65855/27


Updating support for Ruby 2.7.7

Advances https://github.com/samvera/maintenance/issues/79

Superseded by #83


Why is strict mode required

Our projects are a long way away from being able to flip on strict mode. Zod requires strict mode. Is there any compromise? Perhaps some minimum set of options that we can turn on that zod needs.

Mainly because of strictNullChecks. Can you at least turn this one on?
From the TS docs:

When strictNullChecks is false, null and undefined are effectively ignored by the language. This can lead to unexpected errors at runtime.

This will cause the inference that Zod can provide to be probably wrong sometimes.
The library will work just as normal, but you won't be able to trust the inference.

You can use Zod without strict mode but the inferred types will be incorrect. Specifically, all object keys will be optional. There may be other unexpected behaviors but that's the main one. If that's okay for your team then you don't need strict mode.


Micrometer integration improvements

Currently, there are some pitfalls when using the Micrometer integration.
There are two main ways to configure Micrometer MeterRegistries: CountingMode.CUMULATIVE, representing monotonically increasing counters and CountingMode.STEP, that reset the counters.
We're currently recommending CountingMode.STEP so that we report the deltas since the last report which simplifies common aggregations such as summing counters across different instances. However, this requires that the metrics_interval is lined up with the step duration. Even when doing that, the time when we read the metrics would need to be aligned with the time they get reset which is not really feasible. With some unlucky timing, we might always report the value just after it has been reset.
When there are multiple MeterRegistrys within a CompoundMeterRegistry, we de-duplicate the metrics by putting them in a map that has the Meter.Id as a key. However, we don't consistently favor STEP or cumulative CUMULATIVE, or a specific type of MeterRegistry.
https://github.com/elastic/apm-agent-java/blob/c609815ea80cc56733e638df8c97cd20249dad4d/apm-agent-plugins/apm-micrometer-plugin/src/main/java/co/elastic/apm/agent/micrometer/MicrometerMetricsReporter.java#L109-L117
We don't support histograms yet but there are also some open questions to investigate: For the SimpleMeterRegistry it seems no matter whether choosing STEP or CUMULATIVE, the histogram gets reset based on io.micrometer.core.instrument.distribution.DistributionStatisticConfig#getExpiry. However, for the PrometheusMeterRegistry for example, the histogram never gets reset (as the expiry is set to 5 years).
Also, I'm not sure if percentile aggregation on a histogram field would even work if the histogram is tracking incrementing counts.
cc @cyrille-leclerc @alex-fedotyev

Marking Micrometer support as beta for now: https://github.com/elastic/apm-agent-java/pull/1492

I was surprised when I saw that micrometer itself did the diff calculations. I expected the recording to use e.g. monotonic counters and then the reporter to do the diff calculations, that way they're synchronized with the collection interval, and you could have multiple reporters with different intervals, etc.
When collecting prometheus metrics with metricbeat it has the option of pre-calculating the diff for you with rate_counters https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-metricset-prometheus-collector.html
Personally I think it's nice to have both (at least as an option), because one is easier to visualize and sort by, but the other is more accurate.
Do you think it's possible to do something similar in the APM agent?

I was surprised when I saw that micrometer itself did the diff calculations.

It only does that if you're configuring Micrometer with CountingMode.STEP. When configuring it with CountingMode.CUMULATIVE, it monotonically increments the counter.

Do you think it's possible to do something similar in the APM agent?

For the Prometheus client integration (https://github.com/elastic/apm/issues/355), we want to test out calculating diffs at the agent level, similar to rate_counters in Metricbeat. That's likely going to be the default and potentially there could be an option to send incrementing counters instead.
For Micrometer, I think the best way to configure delta vs incrementing counters is to use the Micrometer settings (STEP vs CUMULATIVE).


User Credential field must be excluded by default when  recevie key user include true from any other table

Bug description
I have role table when i use prisma.role.findMany({include:{user:true});
it return me its password field also
same i try with other tables findmany method and add include user: true in query it exposes password
How to reproduce

Expected behavior
No response
Prisma information

// Add your schema.prisma

// Add your code using Prisma Client

Environment & setup

OS:
Database:
Node.js version:

Prisma Version

Closing in favor of existing feature request for exclude feature - #5042.


GitHub organization

Since we have two repositories now, I think it would make sense to move both to a GitHub organization. What do you think?

@sapegin sounds good to me, creating one now :)

Yay! 💥


Temperature: Allow one or more ADS1120 chips to be unreachable

When an ADS1120 chip is unreachable i.e. from bad soldering of STM32 chip on PCB the unreachable chip is simply ignored, but the rest of the ports are still being measured on.
The error code "10010" is used as an indication that an ADS1120 is not reachable and the two physical ports are therefore unavailable.
This also means that the watchdog no longer triggers because of poorly initialised peripherals. The watchdog is will still trigger in case of a halt in the process.

@freddyrios note the new error code 10010 described above. I tried to find an unused error code value, but lmk if it is already used.


Awaited statements should be followed by a blank line

An awaited call should be followed by a blank line if the following line contains a non-awaited expression.
The reason is ease of reading.
Following should report a violation:
await DoStuffAsync();
await DoMoreStuffAsync();
var x = 42;
var y = "something";
var z = Guid.NewGuid();

While following should not report a violation:
await DoStuffAsync();
await DoMoreStuffAsync();

var x = 42;
var y = "something";
var z = Guid.NewGuid();

An awaited call should also be preceded by a blank line if the preceding line contains a non-awaited expression.
The reason is ease of reading.


1.5

Codecov Report

Merging #8 (88460a9) into main (0a129c8) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main        #8   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines            5         5
=========================================
  Hits             5         5

Flag
Coverage Δ

unittests
100.00% <ø> (ø)

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 0a129c8...88460a9. Read the comment docs.


Removing visual limit to Damping properties of CPUParticles

Damping of CPUParticles2D and 3D were previously set to a max of 100, which they mustn't necessarily be, so this changes that.
Production edit: Fixes https://github.com/godotengine/godot/issues/56324. Supersedes https://github.com/godotengine/godot/pull/57261

Please amend your commit message to state what the nature of the change is, not which issue it fixes. See this.

Sorry, I wanted to force-push it to rerun the CI, but messed things up a bit. I'll reopen your commit as a new PR.
In future, please don't use your master branch to make PRs. Create feature branches from your master and work there.


More descriptive / path handler

Instead of simply returning HTTP 404 Not Found for the default path I would like to return something slightly more informative. I suggest something along the lines of "This is a deps.cloud gateway server, please visit https://deps.cloud/ for usage instructions"
Implementation would go here: https://github.com/depscloud/depscloud/blob/93f9163b4e3a8c31e6a7cfb131238de917bb3f86/services/gateway/main.go#L160

someone suggested having the swagger explorer as part of the root


Can we use it in pm2 cluster mode?

As I know, when we use pm2 cluster mode, the cluster process is the pm2 process , our processes are all worker ,so can we use this to share memory?

No. It's useless if you use pm2 cluster mode.


Time to update to 2.0.0-preview2-final

Yes, now we can start.

Just so you know, I won't release a version of ASOS/OpenIddict compatible with preview2 for two reasons:

The ASOS/OpenIddict ports rely on API changes in the events model that were not included in preview2. See https://github.com/aspnet/Security/pull/1266 for more information.

There's a huge bug in the current bits that will require a fix that won't be obviously included in preview2: https://github.com/aspnet/Options/issues/211.

We can temporarily comment out the module.

I assume the API changes will be in RTM, I believe they have been merged already.
For the options issue, seems like a breaking change, but that can be handled in the client libraries, right?
Can I assume it should be ok with 2.0 RTM for asos/openiddict ?
We can still start the migration to preview-2, keep this one for later. And this is clear we will find other issues on the way. We need to start now to be able to give feedback and fix bugs before RTM ships.

Can I assume it should be ok with 2.0 RTM for asos/openiddict ?

I'll push new ASOS/OpenIddict bits (compatible with the nightly preview3 bits) to the aspnet-contrib feed in the next few days, when https://github.com/aspnet/Security/issues/1282 and https://github.com/aspnet/Security/issues/1287 are fixed.

I think we should hold off, I dont feel comfortable with these breaking changes... dunno

Hold off? The next version will prbably be RTM, unless we want to stick with 1.x we should definitely try a migration right away on a branch to at least know what is blocking.

Yeah that's cool, I'd hold off on merging it to master though.
Sent from my iPhone

On 5 Jul 2017, at 08:26, Sébastien Ros<EMAIL_ADDRESS>wrote:
Hold off? The next version will prbably be RTM, unless we want to stick with 1.x we should definitely try a migration right away on a branch to at least know what is blocking.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Sure, we'd only merge when it's released.

Okay cool. Now get to it!!
Sent from my iPhone

On 5 Jul 2017, at 08:32, Sébastien Ros<EMAIL_ADDRESS>wrote:
Sure, we'd only merge when it's released.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

With us upgrading we should also think about using the HealthCheck APIs. https://github.com/dotnet-architecture/HealthChecks

Note: the OpenIddict and aspnet-contrib packages compatible with the ASP.NET Core 2.0 preview3/RTM nightly builds are now available.

👍

I began to try aspnetcore 2.0.0-rtm-26227.
I started with 431 errors but now i only have 7 errors. All core projects pass, only 2 modules fail to build, but i have not yet used the latest OpenId packages, i will try it tomorrow ...
I've done some adaptations that will need to be checked. Here, just some infos:

No more ICompilerCacheProvider. To cache view compilations across tenants, i needed to use an IViewCompilerProvider.

ViewsFeature has changed, i needed to adapt our custom ViewsFeatureProvider.

No more PlatformServices. In unit tests i've used AppContext to get the ApplicationBasePath.

ResponseCachingPolicyProvider has changed. Right now, i only commented out some lines.

...

Some parts will need to be reviewed by the related people, but finally i was able to do these first tests.

Fresh blog setup.

Create a new page

Still one problem, i'm not redirected to the login if i try to go to the admin without being authenticated.

Migrated to 2.0.0


Update SARate.m

App crashes if the delegate does not respond to the selector.

Same issue, same fix. When will it be merged?

Thank you!


refactor: Simpler is-borrow for item container

Description

Related links, issue #, if available: n/a
How has this been tested?

Review checklist
The following items are to be evaluated by the author(s) and the reviewer(s).
Correctness

Changes include appropriate documentation updates.
Changes are backward-compatible if not indicated, see CONTRIBUTING.md.
Changes do not include unsupported browser features, see CONTRIBUTING.md.
Changes were manually tested for accessibility, see accessibility guidelines.

Security

If the code handles URLs: all URLs are validated through the checkSafeUrl function.

Testing

Changes are covered with new/existing unit tests?
Changes are covered with new/existing integration tests?

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

And this PR needs at least a couple of integration tests


Tiled 1.9 "type" converted to "class"

I am just wondering if anyone else is facing a similar issue. When upgrading to Tiled 1.9 the previous "type" information of a MapObject is no longer loaded in LibGDX. I guess it is related to this change:

I notice that the .tmx file now stores a "class" information instead of a type but it seems like LibGDX is not loading this info at all? At least I cannot find it.
Is this simply not supported at the moment and we have to work with Tiled <1.9 or am I doing something wrong?

I'd use that compatibility option if you use Tiled 1.9 or higher. This is tricky since we might need to parse both "class" and "type" to be compatible with existing Tiled maps.

Okay thanks. I could not figure out how to set the first time but I will look into it again. I guess since I only have a map without a project I couldn't set it. Guess I need a project as well :D

You can replace the class in the exported tmx file with type. This method solves the problem that the gdx program cannot read the class, but note that the class will be changed back to the class after editing with tiled again.

There is already #7007

There was a discussion also in Tiled repo because this change broke a couple of things also for non LibGDX users. I cannot remember if Björn wanted to revert this change or if he keeps it.
I would check that once more before merging the linked PR because maybe the PR is not needed.

Here's the discussion on the Tiled repo, for reference: https://github.com/mapeditor/tiled/issues/3492


Publish app for internal use

Scope

[x] Create internal testing release in Google Play Store
[x] Create signed app bundle google instruction
[ ] ~Upload signed app bundle to Play Store~
[ ] ~Test download and install via tester's link~
[ ] ~Add interested Mediaan employees to tester's list~

Instruction to recreate apk and app bundle

Make sure you have the keystore file (mymediaan-keystore.jks) on your machine. (and you know the password)
Clone the main branch on your machine.
Open the project in Android Studio.
Build the .apk. (Build > Generate Signed Bundle / APK > Select APK > Provide the keystore file and appropriate passwords (key is key0) > Click next > Select release > Create); can also be done using option "Android App Bundle" which generates .aab file
Locate the .apk file, Android Studio should prompt you for the location.

Will be distributed via Github release feature


Added kops deploy and delete scripts + S3 bucket IaC

Codecov Report

Merging #61 into master will decrease coverage by 0.7%.
The diff coverage is 30.76%.

@@            Coverage Diff             @@
##           master      #61      +/-   ##
==========================================
- Coverage   46.57%   45.86%   -0.71%
==========================================
  Files          14       16       +2
  Lines         277      290      +13
==========================================
+ Hits          129      133       +4
- Misses        148      157       +9

Impacted Files
Coverage Δ

tpl/aws/bin/kops-delete.sh.erb
0% <0%> (ø)

tpl/aws/bin/kops-deploy.sh.erb
0% <0%> (ø)

lib/kite/generate.rb
93.54% <100%> (+0.95%)
: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 4ef3d1c...6fa493d. Read the comment docs.


Some help for resolution of problem #12169

New property RelationalDataReader::DbCommand allow to read OUTPUT-parameters of modification commands (INSERT, UPDATE).
It used from ConsumeResultSetWithPropagation method.
Need for resolution of problem #12169

Additional information:
My ADO.NET provider (lcpi.data.oledb) does not return OUTPUT-parameters of modification commands (INSERT,UPDATE) through DataReader.

@smitpatel
I should modify the "src\EFCore.Relational\breakingchanges.netcore.json" or no?

@smitpatel Why is this a breaking change?

@ajcvickers - Mistake. I thought we added something on interface rather than base class.


After reloading, sort feeds then redraw the list

Fixes #1089.
Reviews are welcome! Will merge in three days if no issues are raised.

Coverage increased (+0.005%) to 57.554% when pulling c098997aa13e8602de4c5de8446b518c416aa16e on bugfix/1089 into 47137b97d09d1398c6950c8d73745966d9ed0845 on master.


colors theme key should deep merge

atm the Provider just merges the custom theme with the default, but with keys like color, the default adds some stuff that would be hard to recreate (eg darken).
should the colors key be deep merged so that default keys not in the custom theme are intact?
i noticed this b/c when I upgraded to 2.0, buttons' hover effects disappeared (b/c my colors obj had no darken key)

I think rather than deep merging (which could potentially result in confusing behavior), it'd be better to handle the default colors in a more generic way and maybe remove the default pseudoclass styles from components like Button. I think it'd be way better for consumers to customize that however they need rather than inherit some opinionated defaults

which could potentially result in confusing behavior

Can you elaborate here? my initial thought here is that merging user-provided props with default props is such a common pattern in React that I think users would find it pretty intuitive.

it'd be better to handle the default colors in a more generic way and maybe remove the default pseudoclass styles from components like Button.

Of course I trust your judgment wrt what's best for the lib, but this sounds like a much bigger undertaking than simply adding an Object.assign() to the theme. Are there other benefits to a more substantial overhaul?

...rather than inherit some opinionated defaults
I can't speak for others, but inheriting opinionated defaults is the reason I use libraries like Rebass in the first place, so I don't view this as a downside provided overrides are available and intuitive (which I think deep merging the theme object is).

Replacing one object with another should not deep merge by default. If you'd like to merge the colors, I'd recommend importing the Rebass theme in your own theme and handling the merge there


Minify_ImportProcessor doesn't process @imports with query strings

When using the Minify_ImportProcessor class, CSS @import URLs with query strings like the following don't get processed:
@import url("./css/main.css?ver=4.5");

realpath() is what kills them:
https://github.com/mrclay/minify/blob/e596b35fc400611d160183697284401178f1a013/lib/Minify/ImportProcessor.php#L56
When Minify_ImportProcessor::_importCB() calls _getContent() on this URL, realpath() returns false, since query strings aren't supported outside of PHP. This causes the @imported file to be skipped.
For the above case, dropping the query string works fine; it's only used for caching control in this case, anyway. But if we start dynamically generating CSS, the query string may be required--for example, something like @import url('load-style.php?block=intro');.
This isn't a trivial fix, of course. Supporting query strings means that Minify_ImportProcessor must support loading CSS files via HTTP, which introduces a host of performance and security considerations.

well, realpath works for files only, it returns false for urls, so it will fail already now:
https://github.com/mrclay/minify/blob/e596b35fc400611d160183697284401178f1a013/lib/Minify/ImportProcessor.php#L62
so the change is trivial, so either explode() with ? or use pathinfo() or parse_url() to get path without query string

$no_query = preg_replace('~\\?.*~', '', $url);

Fixed by e904f2e1ae5e893f942e07a4860b6c47393844f1


build: bring back svelte 3 peer dependency

Closes #1304
📑 Description
This PR brings back Svelte v3 peer dependency which allows for this library to be used in Svelte 3.
For more context see the issue above.
Status

[x] Completed

✅ Checks

[ ] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required
[ ] I have checked the page with https://validator.unl.edu/
[x] All the tests have passed
[x] My pull request is based on the latest commit (not the npm version).

Summary by CodeRabbit

Chores

Updated the app to be compatible with both versions 3.55.1 and 4.0.0 of the Svelte framework.

I will publish a new version soon and it solve this PR.
Thank you for your contribution.
I close the PR for now.


Enable funlen linter (part 2)

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[x] Code style update (formatting, renaming)
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: 934
What is the new behavior?

Other information

@rekby Please review.

Codecov Report
Attention: Patch coverage is 84.39306% with 27 lines in your changes are missing coverage. Please review.

Project coverage is 68.29%. Comparing base (a0abd92) to head (ed24a6e).

Files
Patch %
Lines

internal/decimal/decimal.go
78.30%
22 Missing and 1 partial :warning:

internal/stack/record.go
92.00%
1 Missing and 1 partial :warning:

retry/retry.go
95.23%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1171      +/-   ##
==========================================
+ Coverage   68.23%   68.29%   +0.05%
==========================================
  Files         307      307
  Lines       32017    32074      +57
==========================================
+ Hits        21847    21904      +57
+ Misses       9218     9216       -2
- Partials      952      954       +2

Flag
Coverage Δ

52.99% <23.69%> (-0.54%)
:arrow_down:

go-1.21.x
70.20% <84.39%> (-0.15%)
:arrow_down:

go-1.22.x
68.25% <84.39%> (+0.50%)
:arrow_up:

integration
52.99% <23.69%> (-0.54%)
:arrow_down:

macOS
39.50% <84.39%> (+0.33%)
:arrow_up:

ubuntu
39.48% <84.39%> (+0.30%)
:arrow_up:

unit
39.54% <84.39%> (+0.29%)
:arrow_up:

windows
39.53% <84.39%> (+0.35%)
:arrow_up:

ydb-23.3
48.29% <23.69%> (-0.19%)
:arrow_down:

ydb-24.1
52.87% <23.69%> (-0.41%)
:arrow_down:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Is there any news on this PR?

Is there any news on this PR?

Thanks for remind, I will plan to see the PR today.

I'm not quite sure how to resolve the particular merge conflict.
The particular code that needs to be merged in extractLambdas function exists under parseFunctionName function in my PR.

I'm not quite sure how to resolve the particular merge conflict. The particular code that needs to be merged in extractLambdas function exists under parseFunctionName function in my PR.

You can't merge it "automatically", because you have refactored the code.
You should see what mean changes in master branch, then re-implement the changes at own code. Then remove master's code block on merge.

@rekby please help me to resolve the conflict on your side.
Due refactoring I've introduced the helper structure that do not exists in master. It's the only difference between master in my PR.
Please accept my code.
<<<<<<< master
details.structName = split[1]
	structName = split[1]

master


OpsGenie and Sentry integration doesn't work

What happened?
The Sentry alert can not be sent to OpsGenie with the integration key created by the Pulumi code.
Example
You can reproduce the issue with below code snippet.
sentry_integration = opsgenie.ApiIntegration("test_sentry_integration",
                                             name="Test Sentry Integration",
                                             owner_team_id=team.id,
                                             type="Sentry",
                                             enabled=True
                                             )

Output of pulumi about
CLI
Version      3.84.0
Go Version   go1.21.1
Go Compiler  gc

Plugins
NAME      VERSION
opsgenie  1.2.9
python    unknown

Host
OS       darwin
Version  14.0
Arch     x86_64

This project is written in python: executable='/Users/~~~/.pyenv/shims/python3' version='3.10.6'

Current Stack: organization/integrations/dev

TYPE                                              URN
pulumi:pulumi:Stack                               urn:pulumi:dev::integrations::pulumi:pulumi:Stack::integrations-dev
pulumi:providers:opsgenie                         urn:pulumi:dev::integrations::pulumi:providers:opsgenie::default
pulumi:providers:opsgenie                         urn:pulumi:dev::integrations::pulumi:providers:opsgenie::default_1_2_9
opsgenie:index/team:Team                          urn:pulumi:dev::integrations::opsgenie:index/team:Team::team_for_integrations
opsgenie:index/apiIntegration:ApiIntegration      urn:pulumi:dev::integrations::opsgenie:index/apiIntegration:ApiIntegration::test_sentry_integration
opsgenie:index/emailIntegration:EmailIntegration  urn:pulumi:dev::integrations::opsgenie:index/emailIntegration:EmailIntegration::test_email_integration
opsgenie:index/apiIntegration:ApiIntegration      urn:pulumi:dev::integrations::opsgenie:index/apiIntegration:ApiIntegration::test_crashlytics_integration

Found no pending operations associated with dev

Backend
Name         Someone-MacBook-Pro.local
URL            file://~
User           some.one
Organizations

Dependencies:
NAME             VERSION
pip              23.2.1
pulumi-opsgenie  1.2.9
sentry-sdk       1.31.0
setuptools       68.2.2
wheel            0.41.2

Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Hi @m1n9o Could you please elaborate what "doesn't work" mean in this case? Does opsgenie.ApiIntegration fail to create? Does it not work as you expect? Thank you.

Sorry to the confusion, I can create Sentry integration with opsgenie.ApiIntegration successfully, and I can view the integration as well as the integration key on the console. However, the integration key seems not a valid integration key.
This was the error message when I tried to send test notification.

Thank you for coming back to me.
The resource implementation looks extremely straightforward: it take the type property and passes it on to the API call: https://github.com/opsgenie/terraform-provider-opsgenie/blob/d4378be0718ba789c14cdb76888903a58c80e9be/opsgenie/resource_opsgenie_api_integration.go#L126-L140
It seems to be an issue with Opsgenie API. Do you have a way to ask for their support?

Thanks, I am curious who is the custodian of pulumi-opsgenie? I thought it was OpsGenie developers.

We (Pulumi) currently take care of it. Our implementation is a fairly thin wrapper around their TF provider, which is run by OpsGenie folks.

Has this got something to do with an additional parameter on the OpsGenie API no utilised by the TF?
allowConfigurationAccess
We had this issue with setting up API keys for our Postman Integration via API. Our solution was to use pulumi to setup the API, and then after the pulumi stack has processed, we extract the integrationId then complete a PUT request to /v2/integrations/${integration} to set allowConfigurationAccess to true.
We are using Typescript. Our solution is to set the integrationIds that require elevated privileges onto the stack, and then we use axios to do a custom request to the OpsGenie PUT endpoint as a post deployment process after the stack has deployed.
async function setConfigAccess(integration: string, apiKey: string) {   try {     const current = await axios.get(https://api.opsgenie.com/v2/integrations/${integration}`, {
headers: {
Authorization: GenieKey ${apiKey},
},
});
if (current.data.data.allowConfigurationAccess !== true) {
console.log(Setting configuration access for ${integration});
const dataToSend = {
...current.data.data,
allowConfigurationAccess: true,
};
await axios.put(https://api.opsgenie.com/v2/integrations/${integration}, dataToSend, {
headers: {
Authorization: GenieKey ${apiKey},
},
});
console.log(OpsGenie Configuration access set for ${integration} (${current.data.data.name}));
}
} catch (error) {
console.error(Error setting configuration access for ${integration}  (${current.data.data.name}), error);
}
}`


Spam from Weaviate

Hi,
Recently I started to receive a lot of "creative" marketing like this by people who clearly abuse / scrape Github.

Does anyone have an idea how to make this visible enough, so that Github would consider suspending the spammers repo?
Also I believe people should use something like https://github.com/nmslib/nmslib - and avoid using bloatware.

To report spam:

Go to this page - https://support.github.com/contact/report-abuse?category=report-abuse&report=semi-technologies
Choose these options

Add an email screenshot

Voila!


Unable to deploy Dolly-v2 models

Hi Team, I am unable to deploy dolly-v2 models (dolly-v2-3b, dolly-v2-12b).
It's in the supported list but still saying not supported. Can someone please clarify ?

Hi @msinha251 you may need to enable "skip_model_check" True in the mii_config: https://github.com/microsoft/DeepSpeed-MII/blob/9527eb5d39fc93ede11c4761abbc13fe7e644795/mii/config.py#LL54C5-L54C21
The reason for this is that we don't officially support the databricks/dolly* models via kernel injection with DeepSpeed-inference. You can still use MII to serve the model (and use things like ZeRO-inference and CUDA graphs), but you may not see as much in terms of performance improvements as you would from a model that is supported with DeepSpeed-inference.
Additionally, transformers requires trust_remote_code=True to load this model. We don't currently have a way for users to provide custom kwargs when loading models, however I think this would be a valuable improvement. I'll work on this enhancement and get that merged soon. In the meantime, you can modify the MII code here to include that additional kwarg.
Please let me know if you have any further questions!

Thanks @mrwyattii , but it seems that dolly* models are based on neox (e.g., https://huggingface.co/databricks/dolly-v2-12b is finetuned from pythia-12b). Should it be supported by default and we should expect the performance improvements here?
Please can you let me know how to get the list of the models supported in DS-MII via kernel injection as StableLM and Pythia seems to be both based on neox but still returns garbage outputs as detailed in https://github.com/microsoft/DeepSpeed-MII/issues/194

@mrwyattii thanks for the suggestion. With the trust_remote_code hack, i am able to deploy the model (databricks/dolly-v2-3b) but unable to query the model. Getting below error:
grpc.aio._call.AioRpcError: <AioRpcError of RPC that terminated with:
        status = StatusCode.UNKNOWN
        details = "Exception calling application: 'InferenceEngine' object has no attribute 'device'"
        debug_error_string = "UNKNOWN:Error received from peer  {created_time:"2023-06-06T10:21:01.429781121+00:00", grpc_status:2, grpc_message:"Exception calling application: \'InferenceEngine\' object has no attribute \'device\'"}"

Deploy code:
import mii
mii_configs = {"tensor_parallel": 1, "dtype": "fp16", "skip_model_check": True, "trust_remote_code": True}
mii.deploy(task="text-generation", model="databricks/dolly-v2-3b", deployment_name="dolly-v2-3b-deployment",mii_config=mii_configs)
enerator.query({'query': 'The quick brown fox'}, do_sample=True, max_new_tokens=30).response

Query:
generator = mii.mii_query_handle("local_dolly-v2-3b")
response = g


RFC: Move add-ons templates on template's packages to cli-tool package

Issue

We created a CLI to generate a React project. So now, our template is able to support generating multiple React templates e.g. CRA, Vite, NextJS, RemixJS
But now, we are putting the add-ons logic into cli-tool package and add-ons templates (base code, config files) into each template package.
It might be better if we move add-ons templates to cli-tool package, the folder could be packages/cli-tool/template/addons. Then we just need to copy from here to the generated project. Make sure that the generated project has a common folder structure.
We can test each addon by generating a simple project and checking if it can be installed on the generated project.

What's next?
If you agree with this, then we might:

Create templates that have the similar folder structure
Use CLI to generate a project with option: --template=cra, --template=nextjs, --template=vite
Use CLI to install add-ons: install NPM package, copy files
Add a postProcess function to fix linter, commit, ...

The the "CLI to install add-ons", I think we do not need to publish an NPM package, we can directly CURL the add-ons folder and extract it :D

I'm doing that to download the vite template :) The nice thing is that then we can test on a specific branch (just need to push the branch changes first).


validate trivia are never empty

Finishes last point in #326
Context in https://github.com/NomicFoundation/slang/pull/302#discussion_r1116048163

Resolved in #332


[yara] no uwp

yara.c.obj : error LNK2019: unresolved external symbol CreateFile referenced in function scan_file

yara.exe : fatal error LNK1120: 1 unresolved externals

CreateFile is non uwp only

This one is also on CI baseline.


Unexpected HostChangedError due to downcasing of hostname

On version 1.19
urllib3.exceptions.HostChangedError is thrown when a pool is created for a host with uppercase letters, and then a request is made with url containing this hostname.
from urllib3 import HTTPConnectionPool

pool = HTTPConnectionPool("Example.com")
response = pool.request('GET', "http://Example.com")

Gives:
Traceback (most recent call last):
  File "minimum.py", line 5, in <module>
    response = pool.request('GET', "http://Example.com")
  File "/usr/local/lib/python3.5/dist-packages/urllib3/request.py", line 66, in request
    **urlopen_kw)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/request.py", line 87, in request_encode_url
    return self.urlopen(method, url, **extra_kw)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 549, in urlopen
    raise HostChangedError(self, url, retries)
urllib3.exceptions.HostChangedError: HTTPConnectionPool(host='Example.com', port=None): Tried to open a foreign host with url: http://Example.com

Is this the expected behavior, or should a ConnectionPools host also be downcased when doing is_same_host() ?

Hmmm. I don't think that this is necessarily intended behavior, but I don't think it's necessarily incorrect either. Can I ask why you're specifically using ConnectionPool instead of PoolManager? In general, we'd suggest using the higher-level API to avoid issues like this.

I'm not sure why I was using ConnectionPool, I will use PoolManager instead. I only noticed this in some old code after I upgraded urllib3 via pip.
As to whether this is the correct behavior, rfc952 declares that no distinction is made between upper and lower case.

So the biggest issue here is probably that we should forcibly lowercase the hostname in the base ConnectionPool class. I'd accept a patch that does that.

@Lukasa Is a blind lower call appropriate? I thought that function was too smart for it's own good with some non-ASCII characters.

urllib3 doesn't tolerate non-ascii characters so I don't really mind how smart it is. ;)

Ah okay nevermind. :)

@SethMichaelLarson @NickMolloy are either of you planning on putting this together? If not, I've got some time to cobble this together.

I can add this change with some tests tonight, should be easy enough.


Feature request: Optimize week

At least in the league that I'm in when you specify the max amount of players, the way it works is as long as you are under the max before the day starts on Sunday, you can ice as many players as you have available on Sunday. So the optimal strategy is to either aim for Monday-Saturday ice (limit-1) and then max out sunday, or just go over the limit on the Saturday if it ends up resulting in more players that way.
It would be cool to have a feature to optimize the picks for the week. The way I see this working would be:

Page through the week to determine the optimal lineup for each day ordered by a column selected by the user (ie, fantasy points current season, fantasy points prev season or rostered percentage, etc)
Determine what day the user maxes out on and what the total number for that column would be at the end of that day and store that in a var as a potential line-up
If the day the user maxes out is not the last day of the week, start removing slotted players ranked the lowest in that metric until you have limit-1 players, then fill the next day with every available player and store that as another potential line-up combo
Repeat step 3 until you've figured out the potential maximum rostered player scenarios for the week.
Compare which potential line-up that you stored has the highest tally for the selected column for the week and apply it

Hello Craig! Thanks for the suggestion, and the thorough description. I'm afraid I don't have the time to implement a large feature from scratch at the moment, but if you get the ball rolling with a PR I will definitely help out.
By the way, I noticed you said "ice as many players as you have available". Do you happen to know if what you're describing is an NHL-only feature, or if the same thing is available for the other sports (especially the NBA)? That would have some implications for the implementation.
If this feature were implemented, do you think it should be a separate button in the extension? Or could it somehow detect that this is what you would want from the league settings? At the moment the extension works only with what's available in the DOM, without any custom API calls, but of course adding API calls could be possible.


Simplify EndpointHandler by adding the ability to just return the body

Is your feature request related to a problem?
I'd like to save the characters of having to retype the status and headers
Describe the solution you'd like
I think returning just the body object as an additional return type option could help, while adding good defaults for headers or status.
Thought about creating PR by changing this line and then changin the implementation of getEndpointResponse accordingly
But would love to hear your thoughts first
Describe alternatives you've considered
Maybe a wrapper for the default return... but hmm... that's another step in the way
Additional context
No response

Closed in #824

Thanks @leibale


Imdb movie title updates not propagating to movie_list

Expected behaviour:
When a movie is added to the imdb watchlist and then added to movie_list. If imdb website updates the title of the movie, the new information should update on your movie_list
Actual behaviour:
When a movie title is updated on imdb website, the updated title will not propagate to the movie_list.
Steps to reproduce:

Step 1: add movies to imdb watchlist on website

Config:
http://pastebin.com/VBbnRpUy

Log:
when it was originally added it was
Untitled Matt Damon/Bourne Sequel │ 2016 │ │ tt4196776 │ │ │
and that's what is in my movie_list and it will not update.

Additional information:

Flexget Version: 2.3.0
Python Version:2.7.9
Installation method: pip
OS and version: raspbian
Link to crash log: n/a

Please verify that the following data is present before submitting your issue:
-Paste or link to a paste service (pastebin for example) of relevant config (preferably full config including templates if present. Remember to redact any personal information!

Paste or link to a paste service of debug level logs of relevant task/s. Use flexget -L debug execute --tasks <Task_name>
Flexget version (Use flexget -V to get it).
Full Python version (2.7.11 for example). Run python -V to get it.
Installation method (pip, git install, etc.)
OS and version
Attach crash log if available

I think the way too approach this would be to add a refresh command via CLI/API. This is very low priority though since this does not affect matching at all, so don't hold your breath...

@liiight You should edit this issue to better reflect your intention then. The answer to the original issue is just to use
seen:
  fields: [title]

in the "movie list filling" task.

The original issue is not even linked here

Original issue
http://discuss.flexget.com/t/imdb-watchlist/2628/10

AFIK this will also create duplicate entries in movie_list? If so I would not consider this low priority.

nah, movie list looks via identifier, and that doesn't change. it doesn't even affect matching (as long as target imdb_id and movie in movie_list imdb_id are the same).

But if the original title attached to that imdb identifier gets updated after its added to the movie_list, it won't update the title and when searching that movie it will use the outdated title and never match /Download
So if you add a movie that's still in production and has a generic name before it's finalized and released, it will be added to your movie_list. When the movie is released and the movie name is finalized and changes, but the imdb Id remains the same, the movie name on your movie_list will not update to the new movie name... Searches for that movie will use the old and incorrect title name and won't match or download.  This is probably the 3rd time it's happened to me.

@chewy74 this issue is about API / Web UI. It will not affect the problem you're having.

The problem isn't anything but the fact that a movie was added to the movie_list before it's release date. Even though it had an IMDB ID. IMDB name came back as something other than the movie's title at release time because it was in preproduction. A simpler fix would be to monitor movies released dates and check the metadata for updated information when it's released.

@chewy74 as long as both names will resolve to the same identifier via lookup, it doesn't matter.

@crawln45 movie_list should not do any such thing if you ask me.

@crawln45 exactly!
@liiight but search like the discover plugin searches for matches via titles from rss feeds and not the identifier (imdb Id?) correct?

When adding to movie list it needs to be smart enough to see that the ID already exists and simply update the title.

@paranoidi it is. Problem is when you have a fill_movie_list task. seen plugin rejects it because it matches a seen URL.
Dunno how it affects API.

Right, discover. Guess I'll remove the low priority label.
I'm thinking of adding a refresh cli/api method. You think we need to add something in task as well?

@paranoidi that would require changing how lists work entirely...

@paranoidi yes, that's exactly it

I was thinking about this, maybe we add a metadata_refresh event that will triggered refreshing all metadata from lookup providers. We can run it weekly or something, similar to db cleanup.

On second thought, @cvium's idea fits best. use:
seen:
  fields: [title]

in your add task.


 Please fix AS SOON AS POSSIBLE. Pretty much everyone is blocked on this.

Build failed on unrelated test failure.

Jenkins, test this please.

Build failed on:
src.toil.test.sort.sortTest.SortTest.testAzureSingle
src.toil.test.sort.sortTest.SortTest.testGoogleMesos
src.toil.test.src.jobCacheTest.AzureJobStoreCacheTest.testDeleteLocalFile
src.toil.test.src.jobCacheTest.AzureJobStoreCacheTest.testReadCacheMissFileFromJobStoreWithCachingReadFile
Both sort tests failed on stats and logging aggregator process exiting with nonzero status codes. Failures don't appear to be related to this PR.

Jenkins, test this please.

I've merged this despite the single test failure in the most recent build. That failure is already tracked as #760.


ci/cd: fuzz testing

Is your feature request related to a problem? Please describe.
Add fuzz-testing support
Describe the solution you'd like
Support was recently added to docker distribution. We can use that as a guideline.
https://github.com/google/oss-fuzz/tree/master/projects/distribution
https://github.com/cncf/cncf-fuzzing/tree/main/projects/distribution
Additional context
https://en.wikipedia.org/wiki/Fuzzing

At this stage, fuzzing complex fuzz targets seems to fail with no explanations, with log messages like: "fuzzing process hung or terminated unexpectedly: exit status 2" . When trying to reproduce using the test data generated by the fuzzer, the tests passed.
Others have also experienced this, see https://faun.pub/best-practices-for-go-fuzzing-in-go-1-18-84eab46b70d8
Another problem occurs when fuzzer tries to minimize the so called failing data to a simpler form, that would still fail. The issue is described here https://github.com/golang/go/issues/52569 .
Multiple seed corpuses were used, but the fuzz crash was the same.
https://github.com/alexstan12/zot/tree/fuzzing - here I wrote some fuzz tests for routes and storage_fs. Since simpler tests seem to work correctly ( eg. like those in storage_fs_test.go, that simply take a byte slice and pass it to the function to be fuzzed), I will focus on those.
NB: this was all done using native go fuzzing engine. The go_fuzz library still conflicts with 1.18 and couldn't be used. Issue described here https://github.com/dvyukov/go-fuzz/issues/338


Address#1077

History modal now displays transaction histories on networks like asset hubs and so.
Close: #1077

Summary by CodeRabbit

Bug Fixes

Improved handling of transaction history in the extension to better manage cases where data may be null or undefined.
Enhanced the transaction fetching logic to support different blockchain networks more reliably.

@AMIRKHANEF
Ist show "Nothing to show" first every time!

It shows native token symbol for Assets! needs to be fixed


Forbid usage of non graph DELETE command for classes that extend V or E

However sometimes you might want to do "dirty" thing. For those cases we should create a flag that will allow to do that.

Already implemented in 2.0 + new UNSAFE keyword.


Turbonomics 5-5: Validate Deployment recommeded better validation

Validating the kubeturbo install is done via looking at the log in OCP and conforming the Target Configuration has been updated.
I suggest also telling the user to navigate to the suppy-chain view and selecting the robo-shop application and seeing the robo-shop application being hosted on a 3 node cluster (this info will be missing unless kubeturbo is installed correctly)

Thanks for the good suggestion. I have updated the docs with this change.
https://github.com/IBM/waiops-tech-jam/pull/107


get_slide_collision_count() not returning correct count.

The get_slide_collision_count() does not report the correct number of collisions.
In the GDscript player3d1rdPTank.gd is a function called friction(), this function checks if the player is touching anything.
In this case, it is used to determine if the player is airborne or not.
In the output console is the collision count logged.
Steps to reproduce:

open and run the project.
Walk to a wall and push yourself against the wall.
Walk away from the wall.

You should be sliding around now.
It is pretty inconsistent.
Version information:

Godot version: V4.2.1.stable.official [b09f793f5]
Godot jolt version: 0.12.0 (downloaded from Assetlib tab in Godot)

Here is a stripped down project file: godotProj_v4.2.zip
(sorry in advance)
If there are any questions, I'll do my best to answer them.

There does seem to be some sort of discrepancy with Godot Physics here, but I'm not sure if there's necessarily a correct count for get_slide_collision_count().
The problem here seems more to have to do with the fact that you're mixing not is_on_floor() and get_slide_collision_count() == 0 to mean the same thing. If you change your usage of get_slide_collision_count() == 0 to not is_on_floor() (or vice versa) then things seems to work correctly.

Although I'm realizing now that you obviously only want air friction when not touching anything, including walls/ceilings. It might be better to replace that get_slide_collision_count() == 0 with not is_on_floor() and not is_on_wall() and not is_on_ceiling() perhaps.

Sounds like a good solution for the problem.
After some testing and searching on the internet, I found some post with the same problem with the build in physics, might be an issue with the Godot engine itself.
Anyway, thanks for the effort for implementing and maintaining Godot jolt.
I'm not sure if the issue should be closed, so I'm going to leave it for someone else to close.


Add support for "surrogate script" redirection rules

The DuckDuckGo Privacy Essentials browser extension has "surrogate scripts" which are stubbed out placeholders for commonly found third-party scripts. By redirecting requests to those scripts, instead of blocking them outright, some website breakage can be avoided. Those scripts often provide an API on window that websites then assume will always be present. When those APIs aren't found, some websites will fail to work correctly.  Let's add support for generating the necessary redirection rules for those scripts.
Notes:

Such redirections sometimes fail in Chrome currently with an "net::ERR_UNSAFE_REDIRECT" error. See https://crbug.com/1361350.
These changes are very large. I would have liked to break them down into more manageable chunks, but we're working to a tight internal deadline and I didn't have time.

(Marking this as a draft for now, since if we're waiting to merge anyway I'd rather wait for https://github.com/duckduckgo/tracker-surrogates/pull/2 to land before landing this.)

(Closing this as we've reworked and split the changes up into a separate PRs.)


Usage clarification

I am still using version 3.x and I am about to migrate to version 4.x.
Can we still send push notificaitons to iOS through Firebase as we could with version 3.x or should we take additional steps for that.
At the following link https://github.com/andrei-m-code/net-core-push-notifications#firebase-cloud-messages-for-android-ios-and-web it is saying **Firebase Cloud Messages** for Android, **iOS** and Web... while here https://github.com/andrei-m-code/net-core-push-notifications#firebase-ios-notifications it is saying Firebase iOS notifications...**If you want to use Firebase to send iOS notifications**, please checkout this article:...
In the paragraph above in the first part it seems to be conveying that the library is sending Firebase cloud messages to iOS but then at the same url it is saying If you want to use Firebase to send iOS notifications...
Essentially, is it enough do the following from this link to send push notifications to iOS (as far as my backend server is concerned):
var firebaseSettingsJson = await File.ReadAllTextAsync('./link/to/my-project-123345-e12345.json'); var fcm = new FirebaseSender(firebaseSettingsJson, httpClient); await fcm.SendAsync(payload); ?
Thanks!

Hi @co-dax yes you can still send the notifications to apple devices using Firebase. You just need to be sure the payload is migrated to the new version. For that it's better to have a look at firebase documentation.


Add Task() reflection/serialization

It should be possible to recover a Task object using some representation of the Task specification. That would enable easy reconstruction from the observations etc.

Resolved in v2


⚠ Dovecot has degraded performance

In 23e2b74, Dovecot (https://en.wikipedia.org) experienced degraded performance:

HTTP code: 200
Response time: 773 ms

Resolved: Dovecot performance has improved in 324f6dc.


picom: crash when unmap

using dccsillag/picom, nothing happens, but when using FT-Labs/picom, picom crashes when windows are unmapped/closed.
i am opening here since FT-Labs/picom has issues disabled
to recreate:

have a window
have FT-Labs/picom running
close it

i would also like to point out i am not using pdwm, and for all i know ft-lab picom fork only works well with pdwm. i have applied https://github.com/FT-Labs/pdwm/commit/a26eed600933f673f28753baef5ccf00a261e1f9, https://github.com/FT-Labs/pdwm/commit/8fe5f085403dfabdefbde3c38b6c17cdf8eb0557, https://github.com/FT-Labs/pdwm/commit/33e9e31c739dbf449ad4b577b86dc18d504a9a27 to my fork of dwm, what am i missing?

Hello,
Ive opened issues on picom repo. Could you redirect this to here, with passing a link to your dwm? Thanks

........ GITHUB CAN ALLOW YOU TO TRANSFER ISSUES TO ANOTHER REPOSITORY

Can you link it


Implements full DS4 output report pass-back

These changes add a backwards-compatible way of receiving the full unmodified output report buffer the virtual DS4 receives by applications. This essentially allows any SDK user to inspect and react to other output report features as they please.

For the C/C++ client SDK the function vigem_target_ds4_await_output_report has been added
For the .NET SDK IEnumerable<byte> AwaitRawOutputReport() has been added to IDualShock4Controller

LGTM (Let's gamble, try merging!)


waitForText

In page i have uses text: Not Connected
When i use method waitForText('Connected') test go to next step immediately.
Now work as partial, better will be equal.

If using WebDriverIO, that's where you would use https://codecept.io/helpers/WebDriverIO/#seetextequals to assert for exact match. If you need to wait for the text beforehand, you can easily extend the functionality with a custom step, or use implicit waits.

or you can also use I.waitForVisibility('//*[text()=""]'); Using XPath you can even specify an element, where you want to see a text.


Clarify GitHub auth setup instructions for feedback and "last updated"

This is just a rough first experiment. There are some fairly big changes.
First of all, I should note that the installation interview sets github "token" not "password" and al_general.py asks for "password". Regardless of merging this in, that needs to be fixed either in here, similar to what I've done, or in al_general.py. I kept "token" around because I'm not sure if something else uses "token".

This is a fairly big UX departure from the previous version. Let me know if you want to try to revert a bit - keep it all on the same page or other such constraints. This change makes it a departure from the flow of the rest of the interview. The biggest departure being an in-flow review screen for just the GitHub details.

I also changed how token input is being taken and used, but I can change it back if needed. I couldn't figure out why the "issues" username and token were separate from the "readonly" username and token. Do we want the installer to create a separate github account for each of those? What are the permission levels for each of those tokens?

I think the read-only permissions are the "repo:status" permissions, but I'm not sure. I'm also not sure what permission level would allow only issue filing. Either way, it looks like a private repo might require full "repo" level permissions. If so, that would require at least one more question for the installer to answer, so for now I've combined them and instructed installers to set "repo" permission levels. I don't quite have bandwidth to test the permutations.
Separately, I tried to make the github tools optional, but I don't think it'll work with the styled package without some changes to AssemblyLine, so I gave up on that. In the GitHubFeedback package, the values currently default to Suffolk LIT Lab and we probably want to override those no matter what. Once we've worked on AL to allow it to only offer the feedback form under certain circumstances, we can make it optional in here too pretty easily.
Closes #41.

Btw, the config shows something like this for repository owners:
github issues:
  allowed repository owners:
  - ldfjgdlfkg
  - clkjsdlkfd

Does the indentation on that list need to be tweaked?

Btw, the config shows something like this for repository owners:
github issues:
  allowed repository owners:
  - ldfjgdlfkg
  - clkjsdlkfd

Does the indentation on that list need to be tweaked?

No, that's valid YAML list indentation

I'm not positive what you mean by referencing password. Maybe you mean that the github readonly config used the DAWeb style config which uses password as one of the key names? https://docassemble.org/docs/objects.html#DAWeb

Yes, I believe the "last updated" functionality uses password, so we have both token and password required which have the same value.

I'm not positive what you mean by referencing password. Maybe you mean that the github readonly config used the DAWeb style config which uses password as one of the key names? https://docassemble.org/docs/objects.html#DAWeb

Yes, I believe the "last updated" functionality uses password, so we have both token and password required which have the same value.

OK. Once we remove github readonly as a separate configuration that will go away. Just making sure there wasn't something else.

For deleting readonly, I saw:
  if not the_config.get('github issues'):
    the_config['github issues'] = {}
  if not the_config.get('github readonly'):
    the_config['github readonly'] = {}
    the_config['github readonly']['type'] = 'basic' # This just is for DA compatibility and should always be left this way

I'm not sure if the need for that is removed in the same way type, so for now I added it to github issues.

Never mind, I can see it in the other PR and will get rid of it here.


When creating a carousel, no flex is created in the Slider Component.

        <CarouselProvider className="" naturalSlideWidth={400} naturalSlideHeight={400} totalSlides={selectedImage.length} orientation="horizontal">
        <Slider className='' >

          {selectedImage.map((item,index) => (
            <Slide key={index + ''} index={index} className="" tabIndex={index}>
              <img className='mx-auto w-full max-h-[300px] h-[100%] object-contain' src={item} alt="" />
              </Slide>
          ))}

        </Slider>
        </CarouselProvider>

result :

You seem to be missing the global CSS classes could you please try again with
import 'pure-react-carousel/dist/react-carousel.es.css';

i'm importing the necessary css file but it still does not create the display: flex....

can you fix this?


remove ReverseClaimer contract

fix https://github.com/DarkFlorist/PetalLock/issues/66

I removed the reverse registrar


How to orderBy COLLATE UNICODE or LOCALIZED

I'm using a SelectListTransaction to read Persons from DB and like the result to be orderBy Person.mName with COLLATE UNICODE since I have to deal with some special person names.
TransactionManager.getInstance().addTransaction(
        new SelectListTransaction<>(new Select()
          .from(Person.class)
          .orderBy(OrderBy.fromProperty(Person_Table.mName).collate(Collate.NOCASE).ascending()),
...));

Since there seems to be no Collate.UNICODE, how would you go about sorting unicode data?
Using 3.0.0-beta5

in develop

Awesome, thank you very much!


Remove mention of Android build cache

The page and the Android build cache don't exist any more. The Gradle Build cache is now well known enough that there is no reason to point out the difference.

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.


MSYS2/MinGW 64-bit: "attempt to set the process default activation context failed"

This is a continuation of issue #29
I encountered this problem when running a simple Hello World on Windows 10 with msys2/mingw64. The program compiles, but fails to run, giving the following error message:
"An attempt to set the process default activation context failed because the process default activation context was already set."
Some info about my machine:
OS Name:  Microsoft Windows 10 Home
Version:  10.0.18362 Build 18362
System Manufacturer:  Dell Inc.
System Model:  XPS 13 9350
System Type:  x64-based PC
System SKU:  0704
Processor:  Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz, 2400 Mhz, 2 Core(s), 4 Logical Processor(s)

I walked a friend through the following process with fresh copies of MSYS2 and Nim, and the error occurred for him too:
Steps to reproduce
Install MSYS2 for x86_64 from https://www.msys2.org .
Follow the instructions on the page to complete the installation
For this, we'll be using the mingw64 terminal.
Install git and gcc:
$ pacman -S git mingw-w64-x86_64-gcc

Now you can open your msys2 home directory in Windows explorer:
$ explorer .

Download the latest Nim version for x86_64 from https://nim-lang.org/install_windows.html
Extract the contents to your MSYS2 home directory. So you should have a folder like this: "C:\msys32\home\exelotl\nim-1.0.2"
Edit your ~/.bashrc to add nimble and nim's bin folders to your path
export PATH=$PATH:/c/Users/exelotl/.nimble/bin
export PATH=$PATH:~/nim-1.0.2/bin

Apply the changes in your current terminal:
$ source ~/.bashrc

Install nigui
$ nimble install nigui

Create a minimal app:
$ touch hello.nim

import nigui

app.init()

var window = newWindow("Hello world")
window.width = 600.scaleToDpi
window.height = 400.scaleToDpi
window.show()

app.run()

Build and run:
$ nim c --app:gui hello.nim
$ ./hello.exe

You should see the following error:

Possible solutions
As previously mentioned, this issue occurs due to a hacky approach for enabling the visual styles module. The proper way to do this is to create an appropriate resource file and link it into your final executable. The Winim library uses this approach, and provides a very solid set of bindings for the Win32 API. I think we should strongly consider using it.

@exelotl Thank you very much for your detailed explanation. I was able to reproduce the issue and fixed it by using the same way as Winim. Thanks for the hint!
I want to keep NiGui as simple as possible, that's why it uses an own minimal Win32 binding and does not depend on other libraries.


Merging with the https://github.com/farzanmirshekari/ECE250-Projects-Testcases repository

In order to consolidate the testcases contained by both this repository and Farzan's https://github.com/farzanmirshekari/ECE250-Projects-Testcases, there are several options

Migrate the testcases there to here
Migrate from here to there
Add the other repository as a dependency that jekelautograder.py also scans when performing testing

Something that should also be considered is the following: Should testcases be seperated from the autograder?
Please discuss in more depth; there is a sister issue on the other repo for this :)

I brought in test04 from the other repository (I just copied it in). If we end up going a different route (ex. submodules/etc) it will be removed, but for now I'm doing this since Project 1's due date is just around the corner (so that people can use it with the autograder until we decide on a permanent solution)

We've resolved this; the permanent solution will be to periodically pull in testcases from the other repo into this one. Both will continue to exist.


inconsistent names for contacts

since #182 is merged, the contact list now contains the name or alias instead of the jabber id.
unfortunately the log still contains the jabber id, and the sorting in the contact list is based on the jabber id (which makes it hard to find if you alias<EMAIL_ADDRESS>to a)

/cc @TealG I reverted your PR #182 in #189 due to several shortcomings:

it's not intuitive to me how to unset an alias (/alias without any argument seems to work fine)
I fail to find a way to unset a name (which is the server-side preserved nickname for a contact)
sort etc (including /go) still works on xmpp ids, rather than names
needs documentation in README.md

these issues first need to be thought through and properly addressed


Release version incremented incorrectly

Description
Hello,
We use PSR to handle semantic versioning of our api with azure devops,
the incrementation of pre-release version is not incremented on the last release version
Expected behavior
0.0.1 -> 0.1.0-alpha.1->0.1.0-rc.1->0.1.0 -> 0.1.1-alpha.1
Actual behavior
0.0.1 -> 0.1.0-alpha.1->0.1.0-rc.1->0.1.0 -> 0.1.0-alpha.2
Environment

Operating System (w/ version): ubuntu-latest
Python version: 3.10
Semantic-release version: 9.8.7

pip freeze
annotated-types==0.7.0
certifi==2024.7.4
charset-normalizer==3.3.2
click==8.1.7
click-option-group==0.5.6
dotty-dict==1.3.1
gitdb==4.0.11
GitPython==3.1.43
idna==3.7
importlib_resources==6.4.3
Jinja2==3.1.4
markdown-it-py==3.0.0
MarkupSafe==2.1.5
mdurl==0.1.2
pydantic==2.8.2
pydantic_core==2.20.1
Pygments==2.18.0
python-gitlab==4.9.0
python-semantic-release==9.8.7
requests==2.32.3
requests-toolbelt==1.0.0
rich==13.7.1
shellingham==1.5.4
smmap==5.0.1
tomlkit==0.13.2
typing_extensions==4.12.2
urllib3==2.2.2

Configuration

Semantic Release Configuration
semantic_release]
logging_use_named_masks = true
tag_format = "{version}"
commit_parser = "angular"
commit_message = "chore(release): release {version} [skip ci]"
remove_dist = true
version_variables = [
    "app/__init__.py:__version__"
]

[semantic_release.remote]
domain = "dev.azure.com" #need to override the value otherwise the generated chengelog.md is false

[semantic_release.changelog]
template_dir = "changelog_template"
changelog_file = "CHANGELOG.md"
exclude_commit_patterns = [
    "^wip:.*",  # Exclude commits that start with "wip :"
    "^Merged PR.*", # Exclude Pull Request commits
    "chore"

]

[semantic_release.branches.main]
match = "main"
prerelease = false

[semantic_release.branches.dev]
match = "dev"
prerelease = true
prerelease_token="alpha"

[semantic_release.branches.ta]
match = "ta"
prerelease = true
prerelease_token="rc"

Azure Devops Job Definition
jobs:
  - job: SemanticVersion
    displayName: 'Bump Semantic version'
    steps:

    - checkout: self
      persistCredentials: "true"
      clean: "true"

    - task: UsePythonVersion@0
      inputs:
        versionSpec: '3.10'

    - script: |
        pip install python-semantic-release==9.8.7
      displayName: 'Install dependencies'

    - script: |
        git fetch --unshallow --prune --prune-tags --tags
        git checkout ${{ parameters.BranchName }}
      displayName: 'Git Sync'

    - script: |
        echo "working branch : $(git rev-parse --abbrev-ref HEAD)"
        echo "create semantic versioning for ${{ parameters.BranchName }} ..."
        if [[ ${{ parameters.BranchName }} != "main" ]]; then
          semantic-release -vv -c releaserc.toml version --as-prerelease --push --no-vcs-release --no-changelog
        else
          semantic-release -vv -c releaserc.toml version --push --no-vcs-release
        fi

Execution Log
semantic-release -vv -c releaserc.toml version --as-prerelease --push --no-vcs-release --no-changelog
log.txt

log.txt

@intex46, this looks very similar to #789. Please take a look and review the details on that issue.
If it's not, then I need you to post the output from the git graph command that is in the bug request template. Most version issues are formatting errors or incorrect use of semantic commits. But it's almost impossible for me to debug without a graph of right before the incorrect tag is created.


[Floating-CTA] Same as floating CTA matching criteria fix

Comparing these two pages:
Bouncing Arrow > https://www.adobe.com/uk/express/learn/students
No Bouncing Arrow > https://www.adobe.com/express/learn/students
We realize the code in floating-cta.js for matching existing button on the page is comparing url with no USP with url with USP, thus causing a false negative. This PR should fix it.
The telling sign is when you see on the UK desktop page the floating CTA doesn't have a boucing arrow anymore, like how it is on US page.
Resolves: MWPW-139972
Test URLs:

Before: https://stage--express--adobecom.hlx.page/uk/express/learn/students?martech=off
After: https://desktop-floating-cta-arrow-fix--express--adobecom.hlx.page/uk/express/learn/students?martech=off

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (672b6a1) 31.70% compared to head (54af879) 31.56%.

Files
Patch %
Lines

express/blocks/shared/floating-cta.js
50.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##            stage     #502      +/-   ##
==========================================
- Coverage   31.70%   31.56%   -0.15%
==========================================
  Files         124      124
  Lines       23886    23887       +1
==========================================
- Hits         7574     7540      -34
- Misses      16312    16347      +35

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


backend/local: do not retry epochNotMatch error when ingest sst

What problem does this PR solve?

add retry for SplitAndScatterRegionByRanges since it may caused by region leader changes
do not directly retry ingest if the return error is EpochNotMatch because tikv will check the epoch in SstMeta and the newest Region info, but we can change the epoch in SstMeta
retry ingest if the error is Raft raft: proposal dropped, because this means there is a leader transfer for this region
downgrade some log level from Error to Warn, since they are retryable
fix a bug in backend/log that cause scan region by range return one more region that does not intersect with the range  if the range end key is prefix of the region start key

What is changed and how it works?
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Side effects
Related changes
Release Note

fix several trivial bugs when ingesting sst files in local backend

Please add release note.

/run-all-tests


Replace .Wait()/.Result() with .GetAwaiter()/.GetResult()

For synchronous code that is using asynchronous library (similar to the code in NotificationsProcessor), using .Wait() or .Result() is undesirable and should be replaced with GetAwaiter().GetResult() to avoid deadlocking and get a clean exception (if thrown) instead of AggregateException.

Is there anywhere outside of NotificationsProcessor where we are doing this?

AllReadyDataAccessEF7.Skill
QueueStorageService
NotificationsProcessor

@dpaquette are you working on this one or should I start with it?

 I only asked because I remembered seeing some weird async stuff in the original AllReadyDataAccessEF7.* code.
All those AllReadyDataAccessEF7.* partial classes are considered legacy and we have been working to replace them. Make sure you check to see if those methods are used before you spend the effort fixing them. I would rather see the methods deleted if possible.

PR: #552


new package for SolidJS

This PR only contains the components.
All React components have been rewritten with SolidJS.
There are no changes to the documentation.
In general the components have the same behavior as the React components, differences are mainly due to no equivalent library like floating-ui. Will update it as soon as there is one available for SolidJS.

@sajadevo please review.
We have chatted in Discord a few months ago 😅


Color issues

Hi,
We noticed that the admin bar is missing a background color. After some digging in the devtools we noticed that there is an issue with the linear-gradient.

There is a space missing in "tobottom". When adding a space "to bottom", the background gradient appeared.

Besides that, the hover states are not that accessible as the background is turning white but the highlight color is not showing correctly. This because the OKLCH colors are missing properties. (It requires a L, C and H parameter)

@NeleDeBruycker, good catch and thanks for letting me know! I'll fix this for the next release.

Hi @NeleDeBruycker,
I've tried to re-create this issue and I'm not seeing it happen with Admin Bar’s default behavior. I've double-checked Admin Bar and admin-bar-component and didn't see an issue with the CSS output.
Is there any chance you are using some sort of minification tool on your templates (such as the Minify plugin)? Looking at your screenshot it looks like all spaces are getting stripped out in the values being set and that would mean a bunch of values aren't getting set properly.

Ah, right when I posted that last comment I gave it another run through the asset build and I see some funky behavior in its minification. I'm going to turn it off as it only saves a few bytes in this situation.

@NeleDeBruycker, I just tagged a release for v5 and it includes this change. Please let me know if you run into any other issues with it. Thanks again for making this issue!


Value Sets - UI updates

Based on usability feedback on value sets, users would like to see a method for confirming a change and a warning that the change will alter settings.
Other UI items to consider

moving "add new" to the top of the page
clarifying in content what the change will alter (or how, it isn't clear that this change could be overwritten in code as well, which overwrites the UI)

AC:

Updated wireframes that are reviewed with the experience and O&O teams prior to to any development work

@HeatherRienks From design sync 11/24: worth keeping this in the backlog. Could become part of a larger epic to better align how the admin section/tools work.

@drew-usds Can we narrow the scope for a moment and think about whether there's easy wins here for Value Sets? Lots of good feedback in #6787 on ways we can improve not just the UI but the service as a whole. Metadata on table changes, managing race conditions between two updates to the same table, etc.

@brick-green @GilmoreA6 @oslynn @MauriceReeves-usds

Is this still a problem?
A big pain point?
Do y'all still need this fix to the Value Sets tool?

cc: @brandonnava

blocked pending above response.

@chris-kuryak it's probably lower priority right now, but still important, especially as we add new conditions and want to add the ability to manage data like this in the UI. It was a higher priority when we were managing the CSV uploader directly.

I have unblocked due to answer from Mo above. For awareness, I converted this to an epic with two issues, one for the design work and one for the engineering work. Since it is low priority, I have added that label. We will begin refining these after review with the Experience team.


Restart simulation on button press

Restart bicycle simulation on button press. Using the reset button may change the serial device name.

The restarting already works. The visualizer needs to recognize that the serial connection has been closed. When that happens we can either:

Autodetect open ports depending on the platform and either present them to the user or select one automatically
Query the new port from the user

The less the user has to do the better so prefer autodetect and autoselect.
The only issue I see if handling multiple serial devices (i.e. ones that are plugged in but are not sending related to phobos). We could connect to a device and wait for a short time for valid data. If none is received, try the next device. If we try all available devices and no data is received, ask the user to check that the device is actually connected.

The restarting already works. The visualizer needs to recognize that the serial connection has been closed.

We want to be able to restart by pressing the round push button and not the square reset button. When the reset button is pressed, the GPIO lines float so the actuator behavior is undefined and any configuration data is lost (e.g. absolute position of the steer encoder).
Pushing the push button can just reinitialize the state of the simulation and possibly flush any messages in the transmit queue.

I just realized the steer encoder uses PA0, PA1 for A, B channels which overlaps with the push button which is also on PA0.
Because of this, we can:

Not have push button functionality and rely on board reset.
Move steer encoder from TIM5 to TIM4. Although TIM4 is 16-bit timer (only TIM2 and TIM5 are 32-bit), we use less than half the full range of motion (I think) so this should still work.

I have some, perhaps silly, questions.

What are PA0 and PA1.
What are the A and B channels?
What does a timer do for a steer encoder?
Why would we want to use TIM4 instead of TIM5?

I have some, perhaps silly, questions.

not silly

What are PA0 and PA1.

GPIO (general purpose input output) Pad A Pin 0 and GPIO Pad A Pin 1
GPIO are digital input and output you can control. They are clustered in groups, or pads. On some board layouts, the pins in the the same pad will physically grouped together.

What are the A and B channels?

A digital encoder transmits two square waves in order to track velocity and position. A single square wave would only allow tracking of velocity and position if the direction never changes. In order to determine direction, the signals are 90 degrees out of phase. These two signals are commonly denoted A channel and B channel.

What does a timer do for a steer encoder?

The encoder sends square waves which we need to read in order to determine the position. There are 3 general ways to keep track of the encoder counts in software:

Use GPIO to poll the two signals. The polling rate needs to be much faster than the speed of the encoder signal.
Use interrupts triggering on signal edges to change the encoder count. This can adversely affect system timing depending on how often edges are encountered and interrupt latency.
Use a hardware timer in encoder mode. The external signals are essentially wired to a clock. This is the most efficient method.

Why would we want to use TIM4 instead of TIM5?

In a microcontroller, the GPIO is multiplexed with other functions. For our case, GPIOA_PIN0 can also be used as TIM5_CH1 (channel 1 of timer 5). Since GPIOA_PIN0 is wired to the push button, we can only use one or the other. We can connect the A, B channels of the steer encoder to TIM4_CH1 and TIM4_CH2 through pins GPIOB_PIN6 and GPIOB_PIN7, allowing use of GPIOA_PIN0 for the push button instead of a channel of TIM5.
Only TIM2 and TIM5 are 32-bit timers in our architecture, all other timers are 16-bit. As the steer encoder resolution is 152000 counts per revolution, normally we should tie it to a 32-bit timer. However, I don't believe we actually exceed a 16-bit range as the handlebars cannot be spun a full revolution; I think it's roughly 90 degrees full range before the mechanical stops.

Thanks :smile:.
On the topic of restarting the simulation on button press. It seems to me that using the push button as an intermediate solution is not as little development effort as we initially thought. Perhaps the time is better spent on two way communication?

Yeah, it sounds better to not spend time hacking a temporary solution (i.e. physical button). I think we should still have Unity autodetect+autoconnect to the new serial port because I imagine that can't be more than a day's work. However, the motor behavior on reset is something we'll just have to live with until two way communication is implemented.

I think we should still have Unity autodetect+autoconnect to the new serial port

Yes this should be implemented, but it is not as simple as I had hoped due to the fact we are using a virtual serial connection over USB. Also we have to implement it for windows as well because that is where I expect most people to want to run the visualizer on eventually. It is more than a day's work.

Port autodetect is implemented https://gitlab.com/bikelab/phobos-visualizer/commits/fancy-menu
Autoconnect will not be implemented as the user must manually select the port.


j2cl_workspace.bzl: Make GWT dependency reproducible

Is your feature request related to a problem? Please describe.
I spent half an hour today to find the source of a mysterious NullPointerException-related error that appeared after upgrading to the latest commit. When trying to build a minimal testcase for a bug report. the error disappeared.
Turns out: GWT has also updated to make this work, yet Bazel still had the old GWT tarball for "https://gwt.googlesource.com/gwt/+archive/master.tar.gz" (https://github.com/google/j2cl/blob/master/build_defs/internal_do_not_use/j2cl_workspace.bzl#L149) in its cache.
Describe the solution you'd like
Make the GWT dependency somehow reproducible.
Describe alternatives you've considered
Running bazel clean --expunge every time a J2CL-related problem occurs on all machines.
Additional context

Worth pointing out that rather than clean --expunge, the sync command is now available for a cleaner workaround.