Open to PRs?

Hi there, I've raised several PRs to DelayedJob which aren't getting merged :(
I'm wondering if the owners of this repo are open to me porting some of the work here:

Support for worker pools (in addition to queues)
Multi-process support (without Daemons gem -- see https://github.com/collectiveidea/delayed_job/pull/1138)
Copy-on-write forking, to improve memory with multi-process

Let me know and I'll start raising PRs soon.

Hi Johnny! Welcome!
We can't always promise an immediate turnaround, but we're absolutely open to PRs! We were actually already considering introducing a Puma-style forking model, so consider my interest piqued 😄.
Given that it's not exactly a small addition, I'd love to dig in a little more and—ideally before you do a bunch of work (because I hear you about having PRs go unmerged 🥲)—discuss the proposed design/implementation, the use cases that it targets, and get your general thoughts on how to align the feature with the philosophy of this gem.
So to start the conversation, I'd like to share a few reasons why we didn't go with a forking model originally (when we added the existing concurrency support). Here are three in no particular order (expand them for more context):

1. The job claim/pickup query is usually the bottleneck.
We determined that the job claim/pickup query (and the strain it places on a DB with a high-throughput jobs table) is one of most common bottlenecks in determining an upper bound for worker counts, and so when exploring our options for concurrency, we wanted to avoid an implementation that would result in additional/concurrent pickup queries. That's why we first went with a multithreading approach (via our Worker.max_claims config, which allows workers to claim jobs in bulk and then run them in concurrent threads), because it allowed us to increase concurrency on job execution (within each worker) without introducing any additional pickup queries (because worker count can remain the same).

2. We observed a lack of CPU-bound jobs. (Most jobs are DB- or network- bound.)
Because of the GIL, a single Ruby process can only utilize one CPU core (no matter how many threads it spins out), so it seems like a forking model would be an obvious performance win. However, we generally weren't seeing very many CPU-bound jobs that would benefit from workers utilizing multiple cores. So this further lowered the priority of a forking approach for us. Obviously, this is going to vary from app to app, but knowing that Ractors are on their way as a potential path forward, we decided to keep things simpler and avoid introducing...

3. The need for process-management capabilities.
A forking process manager requires a whole new layer of process-management concerns (i.e. what should be done when a child process dies, or uses too much memory, or becomes otherwise unresponsive, etc). Thus far, we've avoided baking in our own process manager, and instead have been able to rely on our deployment infrastructure for dealing with process management/scaling (we use a kubernetes-backed platform, so it works well, but Heroku dynos work similarly). And so the philosophy of this gem has been to follow "The Process Model", meaning that some outside process manager (k8s, heroku, systemd, etc) should be in charge of scaling out the processes (in containers resourced to fit their needs), and restarting crashed or unhealthy processes (and notifying us, or logging the occurrence, accordingly).

Given the above (particularly point number 3), we decided to remove Delayed::Command in favor of a single entrypoint: rake delayed:work (aliased as rake jobs:work). So we have already diverged a fair bit from the ancestor repos. That doesn't mean we can't add forking/pooling to the rake task itsef, but I don't think you can port your changes over 1:1.
I'd also like to think more about what Puma-style forking could get us that we couldn't already get by scaling out additional K8s pods (or dynos, etc). I think there's a great case for better utilizing all of the resources available to larger containers -- e.g. if you've provisioned very large Dynos for your workers, a Puma-like forking model might help you make the best use of those resources. (Is that the kind of use case you had in mind for this?) Would love to get your thoughts on all of this! 🙏

Hi thanks for the response! There's a lot of ground to cover here...
First more background, in terms of Puma, we run on K8s and using Puma we like to be able to tune both threads and processes. We run large K8s pods, e.g. 16 cores with 1 process per core, 5-20 threads per process. AFAIK the GIL prevents Ruby from effectively using multiple cores in a multi-threaded app, so you really need both multi-process and multi-core.
I've run my multi-process fork of Delayed Job in production at TableCheck for 6+ months; we've served billions of jobs each month so its demostrably robust/stable.
To respond to your points:

The job claim/pickup query is usually the bottleneck

I use MongoDB and I've managed to optimize this. The problem I observed when using many different queues was "whiffing" on queries, so for example, I'd have 1,000,000 jobs from queue A at-rest, and a worker queue B scans all 1,000,000 for any job B items and doesn't find any. The trick here was to shard my different job queues into different database tables. (*By the way, I'd need to add MongoDB support to your repo.)

We observed a lack of CPU-bound jobs. (Most jobs are DB- or network- bound.)

I have many Ruby-heavy CPU-bound computation jobs.

The need for process-management capabilities

Not needed, we can live without this in the first interation. Puma implements inter-process communication (IPC) via UNIX pipes and I started to port it to DelayedJob its pretty nifty.

We decided to remove Delayed::Command in favor of a single entrypoint rake delayed:work

I was going to propose to add this back :) If we get into process management etc. think you'd want to do it without rake, but can of course keep Rake. This is another thing I refactored in Puma (not merged).

Ah, makes sense. So your aim is to get as much as you can out of fewer, more heavily-resourced pods, and the pickup query is perhaps less of a bottleneck for you given your datastore & table sharding strategy. And given your CPU-bound jobs, you do benefit from utilizing multiple cores, beyond just the improved-on-net memory efficiency. Out of curiosity, in a perfect world where Ractors are stable everywhere, would you consider going back to a non-forking model?

*By the way, I'd need to add MongoDB support to your repo.

As it stands, we're not looking to support anything other than SQL RDBMs (and ActiveRecord). More broadly we'd like to keep this gem focused around workloads that we can test and maintain in-house, so at least for now that will probably mean a much stronger focus on non-compute-bound workloads, which deemphasizes the need for Puma-style forking. Our current aim is really to only introduce as much complexity as is necessary to meet our own scale needs, so I'm having trouble reconciling our goals for this project with the additions you're proposing. 🙁
And that's not to say that we don't want to support multiple cores (I think, at least eventually, we do), but your need for MongoDB support would be a non-starter for us at this time. I hope that makes sense.

In a perfect world where Ractors are stable everywhere, would you consider going back to a non-forking model?

Yes, if we had Ractors everywhere, then one Ruby process would be able to use multiple cores (one core per Ractor), and each Ractor having multiple threads. Multi-process is a stepping stone to multi-Ractor. It would be good to see Puma or other major server adopt Ractors first.

MongoDB support would be a non-starter for us at this time

It's actually easy to do. All the MongoDB (Mongoid) logic can be contained in one model file that has the same interface as the ActiveRecord.
I'm a maintainer of the current DelayedJob MongoDB plugin (as well as 20+ other MongoDB-related Ruby libs) and am happy to support the MongoDB code here. If you won't accept MongoDB PR and I can't find some way of patching the library, it won't be worth my time to contribute here. I may have to fork and release separately :(

I hear you on how compatible the interface is! Unfortunately, we removed the multi-backend config, and bringing it back does not align with the goals of this project. At the very least because we're looking to extend/change that very interface in the future, and we won't be able to support tech that we don't use in house, or vouch for its alignment with the guarantees we'd like to make.
We're also reshaping this gem's role primarily as a backend for ActiveJob, and will likely continue to remove features that aren't in support of that. (We want to make it easy to reach for the ActiveJob queue adapter that is right for the job, without any additional layers of configuration.)
When we did the work to pull in delayed_job_active_record, I did very much see and appreciate the parallel work that had gone into delayed_job_mongoid, and I could see the work you've done becoming a similar all-in-one package, both ActiveJob-focused like ours, or standalone. Given that there are very few backends for delayed_job that are actively maintained these days, and combined with ActiveJob's new role in the ecosystem, I question whether we can't shed the multi-backend functionality that DJ was originally built with (almost 15 years ago now). Perhaps a future major release of delayed_job_mongoid could merge in the rest of delayed_job's functionality and drop it as a dependency? If you look at our commit history, we actually merged the two repos and retained the commit history from both (for posterity, and to retain credit for the decades+ of work that went into them).

We're also reshaping this gem's role primarily as a backend for ActiveJob
ActiveJob is backend agnostic. The decision to use ActiveJob's job interface is not related to using ActiveRecord vs. Mongoid

Perhaps a future major release of delayed_job_mongoid could merge in the rest of delayed_job's functionality and drop it as a dependency?
This doesn't make sense. DelayedJob's functionality is very heavy, DelayedJob Mongoid is ~100 lines of code.

As a compromise, would you accept if I make a delayed_mongoid gem which is pinned to a certain version of Betterment/delayed? The ActiveRecord code can continue to live in the main repo, and all you'd need to do is let me make a simple config interface for pluggable backend. You are then free to refactor your code as you like, break interfaces, etc. and I will periodically raise PRs if anything breaks and upgrade my gem to the latest Betterment/delayed version. Sound good?

👋  I hear you, I really do. The Ruby background jobs ecosystem is something that I care a lot about, and I want to see continued development and iteration in this space, so I'm going to do my best to explain why I don't see this particular proposal working out for us in the long run.

The decision to use ActiveJob's job interface is not related to using ActiveRecord vs. Mongoid for persistence.

As a user of ActiveJob, the decision of which queue adapter to use absolutely relates to the datastore that will back it. For example, setting queue_adapter to :sidekiq or :resque means you will be using Redis, and this will inform the way that you then go about enqueuing jobs (e.g. with after_commit hooks) and managing your job queue (e.g. needing a dead letter queue, since Redis doesn't have the same row-locking semantics as SQL and jobs are instead dequeued when they are picked up).
As such, our focus with this gem is on providing a very targeted experience for folks who specifically want their queue adapter backed by their app's own SQL datastore, and we have provided examples of how this informs enqueuing & operating jobs as well as how to monitor the queue. The Continuous Monitoring feature (rake delayed:monitor) is also tightly coupled to ActiveRecord, as it will run aggregate queries at a regular interval. We have no plans to add non-ActiveRecord support to this feature.

This doesn't make sense. DelayedJob's functionality is very heavy, DelayedJob Mongoid is ~100 lines of code.

I completely understand that, regardless of your datastore, many of the pieces of delayed_job feel like an overlapping concern in any queueing system you'd want for your app. But that's the role of the delayed_job gem, and not delayed. We intentionally decided to move away from delayed_job's philosophy of sharing the generic queue concerns across multiple backends. Instead, it is a vertically-integrated, SQL-based adapter, full stop. And we knew going in that this would mean taking on the maintenance story for the more heavy functionality that delayed_job also provides.
As an example, resque is heavily inspired by delayed_job, yet takes on the full worker/queuing concerns instead of simply acting as another DJ backend. So that's where I was coming from with my suggestion. We have delayed, que, and good_job (and others) targeting flavors of SQL, plus sidekiq and resque (etc) targeting Redis, but I'm not yet aware of a queue adapter gem that specifically targets MongoDB in a fully-integrated fashion (potentially with MongoDB-focused performance improvements like that sharding strategy you mentioned). Seems like a gap in the ecosystem, and a potential opportunity for something new! 🤔
But if spinning out a standalone gem is not an appealing option to you, it makes me think that despite any challenges you've had in engaging with delayed_job's maintainers, that project is still by far the best fit in the ecosystem for slotting in a ~100-line MongoDB backend, because it's designed specifically to support that level of extensibility. I really do empathize with your desire to find an alternative, and you don't need our blessing to pin dependencies to this gem or fork it and patch it in ways that work for you. But for all of the reasons that we chose to produce this gem in the first place, I'm relatively certain that we can't provide you with the gem maintenance story you're looking for.

@smudge

The decision of which queue adapter to use absolutely relates to the datastore that will back it. For example, setting queue_adapter to :sidekiq or :resque means you will be using Redis ...

MongoDB is NOT Redis. For all intents-and-purposes, MongoDB does everything that a SQL database does. In addition, by design, the Mongoid gem has a nearly-identical interface to ActiveRecord.
I completely understand why Redis would be out-of-scope, I understand well the limitations of Sidekiq/Redis, and I am not asking to have a Redis, Memcached, etc. queue adapter in this gem.
Would you be willing to have an open-mind if I submit a PR which creates a basic API for a pluggable backend, and consider merging it if it doesn't significantly increase code complexity? The PR will not contain any MongoDB/Mongoid specific changes. I'd really like to collaborate on this gem and I feel I can add a lot of value, given what I've already built on Delayed Job.

Hi Johnny, appreciate you dialing back some of the stronger typography in your initial version of your most recent comment. Please remember that Nathan and others have put a lot of thought into the philosophy behind delayed and the design decisions aren’t based on shallow misunderstandings of the differences between data stores, so if you want to engage on whether we should flex those decisions it’ll be important to work to understand them more deeply. If you read carefully you’ll note that Nathan is not making the argument that we chose not to support mongodb because mongodb is like redis.
Also just wanted to give you a heads up that Nathan is on vacation right now, and I don’t know how online he plans to be, but he may follow up with more thoughts.

@jmileham the team forked DelayedJob, copied in the ActiveRecord adapter Job class and removed some of the code to have pluggable backends. Doing this change does not greatly reduce the complexity of how Delayed/DelayedJob works; they've simply gone from N adapters to 1 adapter.
The work to add pluggable adapters back is minimal; but fine if the team doesn't want to do it, I'll just maintain my own fork.


unable to run webpack reload

I keep getting this error for my cakephp setup
Exception: Folder does not exists! in [/var/www/html/vendor/grandfelix/cakephp-webpack/src/Shell/Task/ReloadTask.php, line 185]
2018-05-19 23:44:40 Error: [Exception] Folder does not exists! in /var/www/html/vendor/grandfelix/cakephp-webpack/src/Shell/Task/ReloadTask.php on line 185
Stack Trace:
#0 /var/www/html/vendor/grandfelix/cakephp-webpack/src/Shell/Task/ReloadTask.php(44): GrandFelix\Webpack\Shell\Task\ReloadTask->getAliasPath('', Array)
#1 /var/www/html/vendor/cakephp/cakephp/src/Console/Shell.php(507): GrandFelix\Webpack\Shell\Task\ReloadTask->main()
#2 /var/www/html/vendor/cakephp/cakephp/src/Console/Shell.php(500): Cake\Console\Shell->runCommand(Array, false, Array)
#3 /var/www/html/vendor/cakephp/cakephp/src/Console/CommandRunner.php(141): Cake\Console\Shell->runCommand(Array, true)
#4 /var/www/html/bin/cake.php(12): Cake\Console\CommandRunner->run(Array)
#5 {main}

what do I miss out?

Hi @liaogz82,
I think one of your config's is misconfigured. One of configured paths to resources does not exists. Are you sure that all configured paths exists?


Make Templates searchable for authors or institution

Is your feature request related to a problem? Please describe.
Make Templates searchable for authors or institution, so i can look for e.g. proteomics templates created from someone specific or from e.g. RPTU
i rely on some more than on others since they have more the same workflow as me, gets especially interesting if templates start to accumulate...
Describe the solution you'd like
add tag creator/submitter and affiliation to templates
Describe alternatives you've considered
none
Additional context
Add any other context or screenshots about the feature request here.

Does search by tags (b)  cover this case for you? If you create a template you can freely choose what tags to include and even create your own.
Or do you want this handled differently?

perfect, just never submitted a template,
until now all templates have just a methodology tagged as i see it?

The data stewards used methology, substrat and also enpoint repositories as far as i know. But there might be more @Brilator @omaus

To my understanding, there are currently four layers:

organisation: DataPLANT (=curated) or others (=community)
endpoint repository (ER): backed by ontology
tags: any free-text tag you would like to add (could at some point be backed by ontology)
authors: a block of info about the main contributors

Two things that were under discussion at some point (and I've lost the thread to that discussion) are Protocol Type and Protocol REF. Those are special kinds of building blocks (i.e. part of isa.assay sheet itself, not the metadata). However, I think they somewhat also relate to "methodology".

Actually, back to your original question whether templates are "searchable for authors or institution". They are currently not.
@Freymaurer can you implement that fields organisation, authors, ER are searchable?
This might required a redesign of the search fields. Rather than two fields "Search by protocol name" and "Search for tags" make it one and add a radio button selection for filters or the like.

Question: Why don't you encode the required fields as tags... The advantage would be not to change the search field whenever we need additional metadata. Would this be an option?


Added new event to the Search the audit log topic

Added a new event, MarkedMessageChanged, to the Yammer activities table under the "Search the audit log in the compliance portal" topic

Learn Build status updates of commit 69ea0b1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/search-the-audit-log-in-security-and-compliance.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 0977635:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/search-the-audit-log-in-security-and-compliance.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@robmazz Please merge this PR. Thanks

Learn Build status updates of commit 6d65798:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/search-the-audit-log-in-security-and-compliance.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Updated the branch - is this good to be merged? @yogkumgit @JohanFreelancer9 Thanks!

Learn Build status updates of commit cc53d56:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/search-the-audit-log-in-security-and-compliance.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 084e053:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/search-the-audit-log-in-security-and-compliance.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@robmazz Gentle reminder.

@ksenluu - thanks for the feedback. I'll confirm this with the PG team and update as applicable. Thanks again.


feat: moves library to TypeScript code generation

The basic API surface:
import {CloudBuildClient} from '@google-cloud/cloudbuild';
async function quickstart(
  projectId = 'YOUR_PROJECT_ID', // Your Google Cloud Platform project ID
  triggerId = 'YOUR_TRIGGER_ID', // UUID for build trigger.
  branchName = 'BRANCH_TO_BUILD' // Branch to run build against.
) {
  const cb = new CloudBuildClient();
  const [resp] = await cb.runBuildTrigger({
    projectId,
    triggerId,
    source: {
      projectId,
      branchName,
      dir: './'
    }
  })
  const [build] = await resp.promise();
  console.info(build);
}

@bcoe I have published an updated Docker image (tagged latest), if you re-run synthtool some of the change I made will be applied here.
Some others, such as gts and typescript versions in package.json, please just update manually (since, I'm guessing, package.json won't be touched by synthtool).


Image EXIF data required

I am using DKImagePickerController for picking and uploading images to my server. However my server is not able to detect image orientation because its EXIF data is missing.
Can you please advise how can I get exif data along with the image. Any code example would be highly appreciated.
Here is the code that I am using:
dkAsset.fetchOriginalImageWithCompleteBlock({ (orignalImage, dict) in
                        if let image = orignalImage {

//Upload UIImage to server
                        }
})

Thanks.

Hi @harishchopra86 Thanks a lot! I'm glad you like the library!
DKImagePickerController handles EXIF as expected:

There's one problem in your code:
fetchOriginalImage will bring you an orignalImage, however orignalImage is an UIImage that just simply represents generic image data in memory, regardless of its source file format (eg PNG or JPEG). As a result, EXIF data isn't actually included with UIImage.
So use fetchImageData instead of fetchOriginalImage if you want to get the full EXIF.

@zhangao0086
I am using fetchImageData  for fetching image and it returns a PNG image data. It is a full size image returned even if we pass any value for compressionQuality which I think is because it is a Png image.
Is there a way to get a jpeg version of the image with some compression applied and EXIF data included? Please advise.


find or recreate binprint in JS

In Rust I have this function to log untrusted data (such as the contents of the Origin HTTP header) in order to prevent log attacks:
https://github.com/ArtemGr/gstuff.rs/blob/0e42dcddf25dd9cd53f25ee75ec50e417310f9d4/gstuff.rs#L584
/// Helps logging binary data (particularly with text-readable parts, such as bencode, netstring)
/// by replacing all the non-printable bytes with the `blank` character.
pub fn binprint (bin: &[u8], blank: u8) -> String {
  let mut bin: Vec<u8> = bin.into();
  for ch in bin.iter_mut() {if *ch < 0x20 || *ch >= 0x7F {*ch = blank}}
  unsafe {String::from_utf8_unchecked (bin)}}

Let's reproduce and/or find it in JS.
discussion
In JS a regular expression might be appropriate, given they JIT them.

There is a $39 open bounty on this issue. Add to the bounty at Bountysource.

Here it is, in the pull request #27

Interesting, thanks!

Excuse me please, can you accept my claim at BountySource? Need money.

Done!

Thank you!


Fix “S.”

Description
This one-character PR fixes a prominent capitalization error, unless the package is intended for Chief Ministers, Cable Modems, Case Managers, etc.

Why thank you.


.proto file wrappers updated to include UART.proto

Auto-generated by GitHub Actions on Protobuf Repo

Holding, we'll take the next PR


Needs testing.

Thanks for the contribution! Merged with some fixes to flags necessary for curl to work with the optional metadata settings: https://github.com/GoogleCloudPlatform/dataproc-initialization-actions/commit/9fd1f05778507f9534c1ca335a6c7c2df1896360


docs(build): removed the unnecessary js files

docs(build): removed the unnecessary js files
Signed-off-by: Ali Sajid Imami<EMAIL_ADDRESS>build: update the blast radius for prettier
Signed-off-by: Ali Sajid Imami<EMAIL_ADDRESS>docs(build): remove the unnecessary default docusaurus images
Signed-off-by: Ali Sajid Imami<EMAIL_ADDRESS>docs(reuse): added license information to the repository for REUSE compliance
Signed-off-by: Ali Sajid Imami<EMAIL_ADDRESS>docs: update documentation subdir readme
Signed-off-by: Ali Sajid Imami<EMAIL_ADDRESS>fix(deps): update docusaurus monorepo to v3.6.2
docs: add JSDoc documentation to the functions
ci: harden security for the sonar-cloud and scorecard workflows
docs: add JSDoc documentation to the functions
ci: harden security for the sonar-cloud and scorecard workflows
docs: add JSDoc documentation to the functions
ci: harden security for the sonar-cloud and scorecard workflows
docs: add JSDoc documentation to the functions
ci: harden security for the sonar-cloud and scorecard workflows
docs: add JSDoc documentation to the functions
ci: harden security for the sonar-cloud and scorecard workflows
docs: add JSDoc documentation to the functions
ci: harden security for the sonar-cloud and scorecard workflows
docs: add JSDoc documentation to the functions
ci: harden security for the sonar-cloud and scorecard workflows
docs: add JSDoc documentation to the functions
ci: harden security for the sonar-cloud and scorecard workflows
docs: add JSDoc documentation to the functions
ci: harden security for the sonar-cloud and scorecard workflows

#468
#467
#466  👈 (View in Graphite)
next

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

Merge activity

Nov 21, 11:39 AM EST: A user started a stack merge that includes this pull request via Graphite.


Add Hymba and DoRA support

Hi @Dominic789654 ,
Thanks for your hard work! The code looks great to me. Just a few comments:

Can we add a self-contained script to run hymba fine-tuning at experimental/Hymba? It is just the run_finetune.sh with the hymba arguments.
Do you think it is better to include the loss curve for sharing?

Thanks!

Thank you so much for your hard work! Looks great to me!


[feature request] make elp eqwalize return nonzero on found type errors

Describe the bug
If invoking eqwalizer results in type errors, it would be nice if elp returned nonzero.  A few cases come to mind where that could be beneficial:

eqwalizing in a loop or otherwise against multiple modules and breaking on the first failure
eqwalizing while editing/rebasing a long history of commits (e.g., elp eqwalize X && git rebase --continue)
eqwalizing as a condition of a git bisect run

I know that finding type errors is not a failure of the tool, but think this would make sense from a user perspective.
To Reproduce
-module(some_mod_with_errors).
-spec x(y) -> z; (term()) -> undefined.
x(_) -> z.

elp eqwalize some_mod_with_errors

Expected behavior
% elp eqwalize some_mod_with_errors && echo ok || echo failed
...
failed

Actual behavior
% elp eqwalize some_mod_with_errors && echo ok || echo failed
...
error: incompatible_types
  ┌─ some_mod_with_errors.erl:3:9
  │
4 │ x(_) -> z.
  │         ^ 'z'.
Expression has type:   'z'
Context expected type: 'undefined'

1 ERROR
ok

It makes sense to me. If we want to ensure backward compatibility, we could implement this behaviour via an optional -f (--fail) flag. @alanz @VLanvin opinions?

Makes sense to me, but as you said @robertoaloi it should definitely be a flag. There are contexts where we don't want this behaviour.

Came to ask for the same thing but for usage in CI. In projects using elp for type checking before PR merges they are getting the false impression by doing this https://github.com/open-telemetry/opentelemetry-erlang/blob/main/.github/workflows/erlang.yml#L148-L149 that there aren't any eqWAlizer errors in the code being merged :)

Also, while I'm happy with whatever doesn't require me to write a pipe -> grep of the stdout to check for "# ERROR" I am curious why this shouldn't be the default? What scenario would you want it to always return 0 @VLanvin ? In the case of not wanting a script to fail if elp command fails you can just | true right? Are there non-script cases you are thinking of that this is needed to be the default?
I also think if its the default to always return 0 then the issue of people putting it in CI and not realizing it is passing because it will never fail will take a while to realize, even if its documented.


sbt 1.1.1

Can you please push release of sbt 1.1.1. Thank you!

Do you still need this version? We upgraded to 1.1.4

Thank you!


chef-cli, inspec, serverspec: Fix Gemfile deprecation warnings

Description of changes
This resolves a warning that shows in the output of these commands for three packages I recently added.
The warning message was:
[DEPRECATED] This Gemfile does not include an explicit global source. Not using an explicit global source may result in a different lockfile being generated depending on the gems you have installed locally before bundler is run. Instead, define a global source in your Gemfile like this: source "https://rubygems.org".

By changing the format of the Gemfiles, this issue is resolved.
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

I could make this PR three separate commits, one for each package if that would better fit the style of the repository, but I feel this is a bit cleaner.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/2172


How can I add components from different module than CoreComponents?

I would like to generate storybook files from my own components in a different module than CoreComponents, for example a module called DemoWeb.SiteComponents.
I can't find anything in the documentation, is this possible?
Thanks!
Chris

Hey Chris,
of course, you can showcase any components other than CoreComponents.
I can suggest you to have a look at the demo storybook repository, available here: https://github.com/phenixdigital/phoenix_storybook_demo
Custom components have been created in lib/phoenix_storybook_demo/components


Add hard line break that is unmodifed by 'grouped'

Addresses #76.  There are still a couple failing tests, but I figured I'd publish
my work so far so @olafurpg can see progress is being made, and
others can take a look.

All tests passing now.  I'll come up with some more Scala examples for @olafurpg's use case.

Codecov Report

Merging #99 into master will decrease coverage by 0.72%.
The diff coverage is 97.05%.

@@            Coverage Diff             @@
##           master      #99      +/-   ##
==========================================
- Coverage   98.21%   97.49%   -0.73%
==========================================
  Files           6        6
  Lines         280      279       -1
  Branches       42       35       -7
==========================================
- Hits          275      272       -3
- Misses          5        7       +2

Impacted Files
Coverage Δ

...re/src/main/scala/org/typelevel/paiges/Chunk.scala
96.42% <100%> (+0.06%)
:arrow_up:

core/src/main/scala/org/typelevel/paiges/Doc.scala
97.42% <96.87%> (-1.05%)
: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 0439c43...f38c91c. Read the comment docs.

Will stop updating this PR but leave this open for discussion.  I will make smaller PRs with the comments addressed.

looks like we have a law failure:
[info] - the left and right side of a union are the same after flattening *** FAILED *** (38 milliseconds)
[info]   TestFailedException was thrown during property evaluation.
[info]     Message: okay(a) was false
[info]     Location: (PaigesScalacheckTest.scala:209)
[info]     Occurred when passed generated values (
[info]       arg0 = Doc(...)
[info]     )

might help to turn up minSuccessful:
https://github.com/typelevel/paiges/blob/master/core/src/test/scala/org/typelevel/paiges/PaigesScalacheckTest.scala#L13
to maybe 5000 or something while we are refactoring and make sure we cover all the bases.

I added Fail in addition to FlatAlt, which simplifies the change considerably.  There's some remaining wonkiness, e.g. not knowing what to do with a Fail in the  isEmpty method, but I think this is a better approach overall.

Dropping this.  Will publish a clean solution in another PR taking these comments into account.


.mei files as .jpg files

when uploading a .mei file, it is saved in the squarenote folder as a .jpg file

Misunderstanding. .jpg just copies the name of the mei file. mei file still not uploading.


Azure OAuth not working

Duplicate Check

[X] I have searched the opened issues and there are no duplicates

Describe the bug
I copied the example from the documentation and modified it to make sure it would work with Azure. Then after providing the required IDs and secret, I ran into the following error:

Sorry, but we’re having trouble signing you in.

AADSTS9002325: Proof Key for Code Exchange is required for cross-origin authorization code redemption.

I can create a Flask application and login with it, but it would be nice to have this built-in solution working as well.
Code sample
Here is the code I took and modified from the documentation:
import os

import flet as ft
from flet.auth.providers import AzureOAuthProvider
import utils.config as config

def main(page: ft.Page):
    provider = AzureOAuthProvider(
        client_id=config.CLIENT_ID,
        client_secret=config.CLIENT_SECRET,
        redirect_url="http://localhost:8550/oauth_callback",
        tenant=config.TENANT_ID,
    )

    def login_click(e):
        page.login(provider)

    def on_login(e):
        print("Login error:", e.error)
        print("Access token:", page.auth.token.access_token)
        print("User ID:", page.auth.user.id)

    page.on_login = on_login
    page.add(ft.ElevatedButton("Login with Azure", on_click=login_click))

ft.app(main, port=8550, view=ft.WEB_BROWSER)

To reproduce

Create App registration in Azure Portal
Configure App registration appropriately according to the documentation. (Use the Single-page application option)
Run the code provided.
Try to login.

Operating System
Windows
Operating system details
Windows 10
Flet version
0.23.2
Regression
I'm not sure / I don't know
Suggestions
I can suggest taking a look at Microsoft's documentation:
https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-web-app-python-flask?tabs=windows

I still seem to have the same issue.
Note that I had to modify the code so the last line uses ft.AppView.WEB_BROWSER instead of ft.WEB_BROWSER.

We should update docs here on how to register Azure OAuth: https://flet.dev/docs/cookbook/authentication/#configuring-oauth-provider


BERT 输出问题

相同的输入 每次输出的结果都是不一样的是什么问题？
import paddle
from paddlenlp.transformers import *
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')
inputs = tokenizer("Welcome to use PaddlePaddle and PaddleNLP!")
inputs = {k:paddle.to_tensor([v]) for (k, v) in inputs.items()}
output, _ = model(**inputs,output_hidden_states=True)
print(output[-1])

There are a little bit of premise:

If the model is in training mode, the dropout will be disabled. you can refer to: dropout

可以设置 model.eval() 模型中的 dropout 会有一定随机性。

There are a little bit of premises:
If the model is in training mode, the dropout will be disabled. you can refer to: dropout
the unit test code will pass:
from paddle.nn import Dropout
tensor = paddle.randn((2,3))
dropout = Dropout(p=0.5)
dropout.training = False

first_tensor = dropout(tensor)
second_tensor = dropout(tensor)
assert paddle.all(paddle.equal(first_tensor, second_tensor)).detach().item()

So you can set model eval mode to disable dropout layer.
import paddle
from paddlenlp.transformers import *

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')
model.eval()
inputs = tokenizer("Welcome to use PaddlePaddle and PaddleNLP!")
inputs = {k:paddle.to_tensor([v]) for (k, v) in inputs.items()}
output, _ = model(**inputs,output_hidden_states=True)
print(output[-1])

so you will get the same output when you run it.  Hope that can help you understand it.


Set up rstudio.cloud environment in advance

It's possible to set up an rstudio.cloud project to share with folks. No need to have them specify GitHub repo or install packages.
Mine describes this in a Tweet:

i like this approach - joe and i discussed this wednesday night - we had already instructed some people to launch rstudio.cloud so we sort of went the way we did.
but ideally this is a super clean approach
there are actually some packages that have rstudio.cloud for testing, thinking about the targets package


The "Quick Start" page of one MongoDB account is opened in portal when executing "Open in Portal" action for the first time

OS: Mac/Linux
Build Version: 20201126.3
Repro Steps:

Create a MongoDB account.
Right click above account and execute "Open in Portal" action.
Check whether the "Overview" page is opened in portal or not.

Expect:
The "Overview" page is opened in portal .
Actual:
The "Quick Start" page is opened in portal.

More Info:

This issue also reproduces for SQL/Graph/Table accounts.
This issue does not reproduce for an account which executing "Open in Portal" more than one time.

I can only reproduce this with Table accounts.
Is it something that happens only the first time "Open in Portal" executed for a given account? Does this happen often?

This issue only reproduces for the first time. It does not reproduce after executing "Open in Portal" more than one time.
We can't reproduce this issue using the latest extension build 20201204.14. Will keep tracking this issue.

This issue has become stale and is at risk of being closed. The community has 60 days to upvote the issue. If it receives 5 upvotes we will keep it open and take another look. If not, we will close it. To learn more about how we handle issues, please see our documentation.
Happy Coding!

Verified on the latest build 20210610.3, this issue also reproduces for now.

Most likely this only happens with new accounts.  I'm pretty sure when you create an account on the Portal, the very first time, it'll take you from overview to quick start.  I'm not sure if this is behavior that we can (or want to) override.

I'm not sure if this is behavior that we can (or want to) override.

No, I don't think we can or want to override this


Release Management

Summary
I think as the project has matured we need to take our release tagging more seriously. This project is getting traction and I feel it's important to provide this consistency to allow easier tracking in issues, and for outside integrations.
I propose with merging this pull request we increment to version 1.0, as the first major release point. With subsequent pull requests (that we merge) we then follow the major.minor.patch model.
Major.Minor.Patch Explanation
Basically - if a change is a feature addition following this pull request, the version would become 1.1. If, however, it was a bugfix or minor refactor/linting,  the version would change to 1.0.1. With each feature change the patch number resets. So, for example, back to assuming that we release version 1.0.1 and then a new feature is merged, we increment to v1.1, tag the release, and publish a new binary.
Majors are incremented when code vastly differs from a previous point or implementation for outside data sources would change. For example, were we at v1.0 before #51 then we would have made a move to version 2.0 given the significant rewrite. Open to suggestions / feedback on this model though, as I think it's important for it to be intuitive.
Moving forward / the proposal for this pull request
With each release tag we should update the version notes with what changed, and release a new binary. We should also insure the version number is changed in main.go. I'm happy to take care of this if tagged on pull requests, but I think it's something we could manage between the three of us. Thoughts @Mzack9999 @Ice3man543?

I agree @codingo. This proposal make a lot of sense. I was also aware of the inconsistencies in the versions of SubFinder. I think it's for the best we follow your idea. Just one small change, keep the current version number 1.1 so that we can migrate to v1.2 when we have Finished adding Minor refactors and some features.
Thoughts?

I'm ok with that. Let's leave this open to give @Mzack9999 opportunity to comment and provide any suggested changes. Afterwards I'll write up a page on the wiki for release management and whoever merges this request can publish a binary and change list to date.

Further to this, here's an example where I've implemented this: https://github.com/codingo/VHostScan/releases
I didn't always publish a new release tag here, but I did always increment the version number on changes and we can make a tavis.io check for that. Once I created a release tag I would review closed pull requests and publish a version history.

It seems like a nice scheme. @codingo or maybe we can do this new release as v1.0


fix: make diff.sh executable

chmod a+x diff.sh

Fixed with https://github.com/yannbertrand/macos-defaults/commit/0a72105c7a2e03e7c2880c9e4cf55ab2956e104f. Thanks!


Updated the README to show correct markup for the activation script.

It used to render like this:
<pre>
  ...
</pre>

Now it renders like this:
<script type="text/javascript">
  ...
</script>

Thanks! Merged in.


fixes #31

This fixes #31 in an Python 3.7 environment

Thanks for the contribution! It looks like this has been broken since 3.6 when os.path.commonprefix stopped accepting a set of paths.


Group list view contains items from all userstores even Primary userstore is selected by default

Describe the issue:

How to reproduce:
Create a new userstore and add some groups
Access groups section list view
The very first time the list contains the items from the secondary userstore as well
Expected behavior:
Only groups from the primary userstore(Selected userstore)  should be queried and listed here.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [e.g., IS 5.10.0, IS 5.9.0]
OS: [e.g., Windows, Linux, Mac]
Database: [e.g., MySQL, H2]
Userstore: [e.g., LDAP, JDBC]

Optional Fields
Related issues:

Suggested labels:

Tested with console version 2.9.36. Issue is resolved.
(plugged secondary userstore type: MYQL JDBC Read/Write)
https://github.com/wso2/product-is/assets/75057725/f2d3035d-37cc-4e06-bd27-2da1abf8f296

Closing as it's done - https://github.com/wso2/product-is/issues/18140#issuecomment-1835913167


Update Secrets

Probably best to test this one first. Version Nr was 7.0.0 on the app

Closing this until I know whats going on

Has there been any progress here? I would like to help discuss this issue with GM and find a formal support approach.

Has there been any progress here? I would like to help discuss this issue with GM and find a formal support approach.

Good luck with that. They've appeared completely unwilling to support the enthusiast community by sharing any details of their API.
If do you happen to have an in with GM and the ear of somebody who can help, I think most of us would be willing to sign some kind of waiver to get API access, if they were so willing.

@CamSoper You're talking about a company that is getting rid of the much beloved Apple Carplay and Android Auto only to force their customers to pay subscription fees to OnStar. Lets be honest - they won't give access.

@WritesWithBadCode I completely agree with you, I only said that last part on the extremely outside chance that @almoney is Mary Barra's cousin or something! 😁

GM "Envolve" is their commercial/fleet side of OnStar. They're advertising full API access to OnStar via Envolve. I signed up for a 'free' trial account in Envolve, but it requires adding a vehicle (at $16/mo) in order to gain full access. As it's only $1 more per month than a consumer OnStar remote/fob plan, it may be worth trying it. I'm unsure if I'm willing to go down that rabbit hole at the moment as I've got several years free on the consumer plan, plus being a dealer employee I don't pay anywhere near retail for that plan anyway. Has anyone tried Envolve?

@snackpack85 I have not, but it sounds interesting.
I've been thinking about grabbing a free SmartCar API account. With the low API request quota, I figure we could get updates every 6 hours or so and still have another 100 requests left for start/stop, lock/unlock, etc. Problem is middle age malaise and being halfway addicted to doomscrolling has me struggling to get my actual work done to my satisfaction, much less any side projects. And tbh I don't really enjoy Python.

I've done some digging and the JWT is now signed with RS256 instead of HS256. I'm not sure the app secret is even used for the JWT anymore, and I'm not sure what key they're using for the RS256.
Here's the new JWT header
{
  "jku": "https://sec-authz-mobile.na.onstar.cpi.gm.com/api/v1/oauth/keySets/",
  "kid": "sec-authz-mobile-jwt-token-prod-na-20250425-3",
  "typ": "JWT",
  "alg": "RS256"
}

I've done some digging and the JWT is now signed with RS256 instead of HS256. I'm not sure the app secret is even used for the JWT anymore, and I'm not sure what key they're using for the RS256.
Here's the new JWT header
{
  "jku": "https://sec-authz-mobile.na.onstar.cpi.gm.com/api/v1/oauth/keySets/",
  "kid": "sec-authz-mobile-jwt-token-prod-na-20250425-3",
  "typ": "JWT",
  "alg": "RS256"
}

Can you give us your method to be able to find the keys whenever they are rotated i’ve been trying to decrypt it for the last couple of days.

Sure but, as @nilathedragon already discovered, they aren't working with a simple drop and replace.
I hooked frida into these functions to dump the parameters in the mychevy app on a jailbroken iphone.
com.gm.myChevrolet on (iPhone: 15.8.3) [usb] # ios hooking watch method "-[OSAuthenticationConfig setClientSecret:]" --dump-args --dump-return
(agent) Found selector at 0x10304f31c as -[OSAuthenticationConfig setClientSecret:]
(agent) Registering job 491780. Type: watch-method for: -[OSAuthenticationConfig setClientSecret:]
com.gm.myChevrolet on (iPhone: 15.8.3) [usb] # (agent) [491780] Called: -[OSAuthenticationConfig setClientSecret:] 1 arguments(Kind: instance) (Super: NSObject)
(agent) [491780] Argument dump: [OSAuthenticationConfig setClientSecret: OgpDnThUgkBokuKyN83jPsZfR7gIZATg]
(agent) [491780] Return Value: 0x0
(agent) [491780] Called: -[OSAuthenticationConfig setClientSecret:] 1 arguments(Kind: instance) (Super: NSObject)
(agent) [491780] Argument dump: [OSAuthenticationConfig setClientSecret: OgpDnThUgkBokuKyN83jPsZfR7gIZATg]
(agent) [491780] Return Value: 0x0

I think I've found the asymmetric RSA key in the app's keychain. Not sure how to test it.
com.gm.omnibus.encryption.cryptokit.symmetric_key.256-accessible-after-first-unlock-this-device-only

The big problem is going to be that this looks to be a keypair generated by microsoft when you first log in. So onstarjs would need to be able to simulate that process to get the key.

Tried to jam my key into the test code just to see if it would even work, but the key type appears to be unsupported by the crypto in the project.
const privateKey = fs.readFileSync(path.resolve(__dirname, './gm256.pem'), 'utf8');
...
return jwt.sign(payload, privateKey, { noTimestamp: true, algorithm: "RS256" });

Unknown key type "ed25519".


Require canonical URL if generating RSS

After #4499, when generating RSS feeds without a canonical URL set, we have this exception.
Let's mitigate this problem by requiring a canonical URL when we create a RSS with the PageList block

It's a new game: will be @aembler faster accepting pull requests or @mlocati creating them? 😆

This seems like an easy solution, but unfortunately the sample content builds a sample RSS Feed, and I like that the RSS feed functionality is turned on for sample sites.
I suppose we could add canonical URL to the installation, and detect it based on how you're accessing the installation script (prepopulating the input field)

An alternative could be to use the request URI...

Yeah, what if we just modified the RSS controller to use that URL if a canonical wasn't set?

This is how it used to work, we are stopping this because the request URL
can get cached and can be nefarious. I say make it impossible to create
them without a canonical URL set, but make the block still fallback to
using the request. That way we can cheat and add the request based one on
install but users can't add them unless they have the proper settings for
it to work.
I really like the idea of defining the canonical URL and pretty urls on
install. It could be a checkbox that defaults to off and an input that
contains the request url.
On Mon, Oct 17, 2016 at 9:43 AM Michele Locati<EMAIL_ADDRESS>wrote:

I agree. A similar approach could be done for the site map generation job:

use the canonical url if set, otherwise
use the request url if available, otherwise
output an error that explains that a canonical url is requested
(for instance: for CLI commands)

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/concrete5/concrete5/pull/4518#issuecomment-254263101,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA9fOwyDHAKyEfcxwYSYtcWWhgE52cttks5q06XLgaJpZM4KYt-A
.

I suppose we could add canonical URL to the installation, and detect it based on how you're accessing the installation script (prepopulating the input field)

Done in #4528. BTW I'd keep this #4518 in case the users remove the canonical URL(s) and after they want to add a RSS feed...

I think we need to make the feeds themselves work like they used to, with the request URL. Because the page feed is already created on installation whether there's a canonical URL or not.


Adding Contributors Section in readme

Adding the Contributors section in the README.md to display all contributors of the project.
It can be above to the Code of Conduct section.

@payaldutta GitHub has this feature already which is present on each repo, where anyone can see the contributors.


Test PR - do not merge

What does this PR do?
What issues does this PR fix or reference?
Is your PR tested? Consider putting some instruction how to test your changes

/lgtm

/approve cancel

/approve

/approve cancel

LGTM

LGTM

Closing a test PR.


add polyfill and attack tools to sandbox container

Some attackers user various attack tools to execute their attack installing tools such as Wget, Curl and other polyfill, along with attack tools such as nc, tcpdump and other tools commonly used by attacker will allow better visibility over the behavior of the malicious package.

Currently the sandboxes have curl, git, wget and sudo. Sounds like we should add nc and tcpdump. Are there any other specific packages you can think of?
Also, can you explain more what you mean by polyfill?

polyfill is any tool which might further support the full execution of the attack, In my opinion we should add

powershell
libssl-dev
wget
curl
unzip
zip
apt-transport-https
build-essential
cmake
protobuf-compiler
git
netcat
telnet
sudo
iputils-ping
iproute2

and known tools used by attackers:

tcpdump
tshark
sshpass
auditctl
arp
ifconfig
ipmaddr
iptunnel
mii-tool
nameif
netstat
plipconfig
rarp
route
slattach
trap
kubectl
aws
modprobe
go
insmod
clang
gcc
sql

As well as "fooling" the attacker to thinking he landed on a windows host, thus allow him to further execute the attack.

Great ideas! Perhaps we should do #301 first so that we can deduplicate this work

@Alik-Kold when you mentioned trap, do you mean the shell command or something else?


Wait for multiple publishers in get_topic_qos()

This is an attempt to fix the flaky tests as described in #22.
Signed-off-by: Rebecca Butler<EMAIL_ADDRESS>

I've rebased on main to see if the latest changes make CI greener.

Looks like the only test failure is the known flake https://github.com/ros2/domain_bridge/issues/46


Memory Leak: Timer thread stacks endlessly

Timer threads are not clean up correctly and will stack forever. Find out yourself when checking the heap dump.
We use your framework for some animations in a our project and fixed it ourselves. If you are interested, we can share the source and you may apply the fix to your library as well.

Thanks, that'd be great. Please do a pull request.

@martijnvm @plattysoft has this been addressed since?


Please include the binary

A suggestion: We normally leave binaries out of repos for size and portability. In this case, saving those few bytes prevents less experienced users from giving it a go in a VM.

Hi! Both the binary and the generated floppy image are included in the releases section of the repo.
Do You maybe have any suggestions on how should I make this clearer?

OOPS!!!! Sorry, that is perfect. To answer your question, maybe swap "How to play" with "How to compile" so impatient silly people like me don't go the long route. Impressive work btw, thanks for sharing!

Thanks for the suggestion!
I think that swapping the sections is the sensible thing to do.
Fixed by f7ac8e2.


npm run dev -> EACCES: permission denied, open '/.config/postcssrc'

Information
node=16.9.0 from nodesource on Debian 11; npm=8.19.3
Help request
Problem
vue-cli-service serve src/nginxconfig/mount.js, called from npm run dev, tries to write to /.config/..., and from there on everything breaks.
$ git clone https://github.com/digitalocean/nginxconfig.io.git
$ cd nginxconfig.io/
$ npm ci
...
$ npm run dev
...
><EMAIL_ADDRESS>dev:tool
> vue-cli-service serve src/nginxconfig/mount.js

 INFO  Starting development server...
[95%] emitting (emit)
(node:27926) [DEP_WEBPACK_MODULE_ISSUER] DeprecationWarning: Module.issuer: Use new ModuleGraph API

 ERROR  Failed to compile with 1 error                                                                                4:17:18 PM

 error  in ./node_modules/prismjs/plugins/toolbar/prism-toolbar.css

Syntax Error: Error: EACCES: permission denied, open '/.config/postcssrc'

Error parsing bundle asset "/zram/user/1000/nginxconfig.io/dist/js/chunk-vendors.js": no such file
...

Note that I'm not requesting an NPM global install or anything like that.
What I have tried
I've tried to check if there's some missing path configuration (i.e. some DIR='' variable would explain the attempted acccess to $DIR/.config/... resolving to /.config/...). I couldn't find it.

We don't do anything custom with postcss, this sounds like an upstream issue with Vue's CLI service, or something specific to your local installation/config of Node and your system.

Thanks for the prompt response. I've bisected it to 895d448. That's where the EACCESS error starts to appear. Before that commit, it runs without errors.

I've also tried nodejs=18.12.1-deb-1nodesource1 as recommended by nodejs.org. Same error, also starting at 895d448 (with node 18 I also get an EBADENGINE Unsupported engine during npm install, which seemingly doesn't matter).

I had the similar error in a project and could fix either by disable the automatic configuration of the postcss loader  in the webpack config file (in my case the vue.config.js):
module.exports = { ...    css: { ...       loaderOptions: { postcss: { postcssOptions: { config: false } } }    }
or by creating a simple postcss configuraton file in the project root directory postcss.config.js  :
module.exports = {};

Nice one @jonaswjs :^)

When your system is Linux, and your code is on a disk with an NTFS partition, you may encounter this issue, which can be resolved using the method provided by @jonaswjs 。
Possibly, adding support for ntfs-3g could also solve the problem?

When your system is Linux, and your code is on a disk with an NTFS partition, you may encounter this issue, which can be resolved using the method provided by @jonaswjs 。
Possibly, adding support for ntfs-3g could also solve the problem?


Cleanup from a quickly merged PR

Addressing comments from #14423

****************************************************************

libgrpc.so

     VM SIZE                                                                      FILE SIZE
 ++++++++++++++ GROWING                                                        ++++++++++++++

 -------------- SHRINKING                                                      --------------
  -0.0%     -64 [None]                                                             -32  -0.0%
  -1.3%     -32 src/core/ext/filters/client_channel/http_connect_handshaker.cc     -32  -1.3%
      -3.9%     -32 http_connect_handshaker_do_handshake                               -32  -3.9%

  -0.0%     -96 TOTAL                                                              -64  -0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences


⚠ Bofrost.at has degraded performance

In 6264fa0, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 3907 ms

Resolved: Bofrost.at performance has improved in 1f76f69 after 6 minutes.


Raven dynamic import not supported

https://github.com/getsentry/raven-node/blob/master/lib/instrumentation/instrumentor.js#L37
This is not supported as mentioned in the README. But how do I include these files in the project? I imagine that Raven has to be added to the dictionary, correct?

This is fixed by including them in the build process

and how do you include them in the build process? is there any option you can pass?


Update tensorboard tests

tensorboard just pushed a new release today (2.2.2) and broke tests/tensorboard_test.py. Looks like they're indexing differently, but didn't have time to look into more detail.
@mohitreddy1996 would you mind taking a look at the release and confirming the changes I've made are semantically correct?
Unfortunately, short of pinning tensorboard, this PR needs to get in before any others will pass.

Wow finally this change was released :)
I was confused when I was trying to debug the issue of why there were '4' entries when I wrote summaries for 2 entries.
Thanks for the fix!

Codecov Report

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

@@           Coverage Diff           @@
##           master     #298   +/-   ##
=======================================
  Coverage   79.33%   79.33%
=======================================
  Files          34       34
  Lines        2255     2255
=======================================
  Hits         1789     1789
  Misses        466      466

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 37b196d...4aec10d. Read the comment docs.

Good! I was reading the code and I was like...two audio files...length 4...what??


Cryptically doesn't work if no -out param is used

It would be nice if this could work without needing the Path:  string to find the start of the plan, but failing that could you add a note the the readme or the error text which mentions that -out is required for this tool to work?
It might be possible to begin processing from the first line which looks like a resource header instead?
Cheers!

Thanks for the report, @glenjamin!
This was a silly oversight on my part. We've fixed the issue and rolled out a new release.


OPENJPA-2832 DROP COLUMN does not use delimiters and always add double quotes

think we should do that for all dictionary methods before merging to avoid a PR ping pong, wdyt?

Merging but would be great to review default dictionary more globally since some other columns need it too


DBeaver not opening after Office extention re-install

Description
Because I received an error message Export to excel fails " Processor 'stream.xlsx' not found in 'Files' (like in issue #21893) I reinstalled the office package. However, after closing DBeaver and reopening it, I receive a pop-up message that the start of DBeaver fails and that I should look in the logs. They state the following:
SESSION 2024-04-26 10:40:25.113 -----------------------------------------------
eclipse.buildId=unknown
java.version=17.0.6
java.vendor=Eclipse Adoptium
BootLoader constants: OS=macosx, ARCH=aarch64, WS=cocoa, NL=en
Framework arguments:  -keyring /Users/jbe/.eclipse_keyring
Command-line arguments:  -os macosx -ws cocoa -arch aarch64 -keyring /Users/jbe/.eclipse_keyring

!ENTRY org.eclipse.osgi 4 0 2024-04-26 10:40:25.725
!MESSAGE An error occurred while automatically activating bundle org.eclipse.ui.workbench (176).
!STACK 0
org.osgi.framework.BundleException: Error starting module. osgi.identity; type="osgi.bundle"; version:Version="3.131.0.v20231201-0512"; osgi.identity="org.eclip$
        at org.eclipse.osgi.container.Module.doStart(Module.java:614)
        at org.eclipse.osgi.container.Module.start(Module.java:468)
        at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
        at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
        at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
        at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)

I am now unable to open DBeaver
DBeaver Version
Community Edition 23.3.2
Operating System
macOS Ventura 13.6.1
Database and driver
No response
Steps to reproduce
No response
Additional context
No response

Please, provide full log file
You can find instructions here https://dbeaver.com/docs/wiki/Log-files/

@E1izabeth Well... I couldn't find any log files in either workspace/workspace6/.metadata/.log nor workspace/workspace6/.metadata/dbeaver-debug.log. Also no files in <install-path>/configuration or
${HOME}/.eclipse/org.jkiss.dbeaver.product_<dbeaver-version> (the hidden folder .eclipse doesn't exist it seems). And Java fatal logs I couldn't find as well...

Hmm. OK, thank you

What are my options now? Reinstall? How about all the settings I have once I reinstall DBeaver, are they still kept somewhere (like connections or code style)?

Yes, you could try reinstall. All settings will remain. They're stored in the workspace directory.

By reinstalling the bug disappears. Thanks


Document DbSet.Local and related concepts

This issue tracker is for documentation
For product issues, use https://github.com/aspnet/EntityFramework/issues

Also Find.


Fix StoreResults spec; added required PhysicsGroup argument

Fixes #8075
As you can see, we update the MergedLFNBase inside the spec such that it reflects the PhysicsGroup the user is member of. I'm not sure there is a store results namespace after each of those physics groups? @ericvaandering would you know?

So, my question is, should we automatically map a PhysicsGroup to a MergedLFNBase? E.g.
PhysicsGroup: HIN
MergedLFNBase has to be '/store/results/hin' instead of '/store/results'
Otherwise, we can leave the default value '/store/results' and let P&R team, or whoever creates/assigns these workflows to properly find out and set the MergedLFNBase.
Maybe @thongonary can comment on it (please add Matteo too, I have no idea what's his GH user)

Thinking twice about it I am not sure it is what we really want. It looks to us that:

not all the physics groups appear there
it is not clear if we should treat elevated datasets differently from other datasets that get /store/result by default

I did one more minor change that isn't tested, but it should be good to go to further integration tests @ticoann

@ticoann @ericvaandering @mcremone @thongonary I've also just made this wiki
https://github.com/dmwm/WMCore/wiki/StoreResults-requests
feel free to correct/suggest any improvements.

I made a few minor ones. Thanks, Alan.


Fix broken spec - Y2024 bug

Context
I think we should be asserting based on the current recruitment cycle rather than the current calendar year.
Changes proposed in this pull request
Use current recruitment cycle.
Guidance to review
Important business

[x] Does this PR introduce any PII fields that need to be overwritten or deleted in db/scripts/sanitise.sql?
[x] Does this PR change the database schema? If so, have you updated the config/analytics.yml file and considered whether you need to send 'import_entity' events?
[x] Do we need to send any updates to DQT as part of the work in this PR?
[x] Does this PR need an ADR?

NB: Please notify the #twd_data_insights team and ask for a review if new fields are being added to analytics.yml

Closing this one because the fix is already in main from a different PR


esp32c3 Rust board returns Ack error

As mentioned in the PR https://github.com/esp-rs/esp-hal/pull/862 the I2C impl of the icm42670 currently throws an Ack. error when initialising the sensor.
I managed a few times to get acceleration data but only single reads. I believe there might be some timing issue.
! A panic occured in 'examples/i2c_icm42670.rs', at line 44, column 76

PanicInfo {
    payload: Any { .. },
    message: Some(
        called `Result::unwrap()` on an `Err` value: BusError(AckCheckFailed),
    ),
    location: Location {
        file: "examples/i2c_icm42670.rs",
        line: 44,
        col: 76,
    },
    can_unwind: true,
}

Not sure if this is relevant but accordingly to the datasheet

To write the internal ICM-42670-P registers, the master transmits the start condition (S), followed by the I2C
address and the write bit (0). At the 9th clock cycle (when the clock is high), the ICM-42670-P acknowledges the
transfer

@jessebraham any luck trying to figure out why this ACK error happens?

Sorry it's been awhile since you commented @elpiel 😅 Did we determine that this was an issue with the Rust board? I seem to recall that being the case, so I'll assume my memory is correct and close this issue. Feel free to re-open if I am mistaken.

Yes, correct @jessebraham , it was hardware related issue.


refactor: move analyticGroupoid to a new file AnalyticManifold.lean

It used to be in SmoothManifoldWithCorners.lean, but this makes no sense as nothing downstream of that file uses analyticGroupoid. In #10853, I will rewrite the definition of analyticGroupoid and define AnalyticManifold on top of it.

Thanks for the swift response! I still think this looks good, so let's
maintainer merge


Execution failed for task ':app:mergeDebugNativeLibs'

Environment
    "react": "17.0.2",
    "react-native": "0.65.1",
    "react-native-vlc-media-player": "^1.0.39"

Step
npx react-native init project
yarn android 运行成功
yarn add react-native-vlc-media-player
yarn react-native link react-native-vlc-media-player
yarn android 运行失败
Error
* What went wrong:
Execution failed for task ':app:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction
   > 2 files found with path 'lib/arm64-v8a/libc++_shared.so' from inputs:
      - /Users/chen/.gradle/caches/transforms-3/7cdf8de9c37004713d4017747f452054/transformed/jetified-react-native-0.65.1/jni
      - /Users/chen/.gradle/caches/transforms-3/898b95b6b68efa9dcaafff9d6039811e/transformed/jetified-libvlc-all-3.1.12/jni
     If you are using jniLibs and CMake IMPORTED targets, see
     https://developer.android.com/r/tools/jniLibs-vs-imported-targets

Question
How to fix it ?

See this post - https://github.com/razorRun/react-native-vlc-media-player-test/issues/3


This fixes two issues with our state handling when querying state via

CallSim and CallCodeSim.
State is separated into a mutable write side and an immutable read side
(from last commit/height) via RWTree and then via MutableForest in an
MVCC style manner. Reads should hit the last committed version. However
there were two bugs in TransactServer's CallTxSim and CallCodeSim:

During the execution of a simulated call if a block is committed
reads can be made from consecutive blocks and so may not see a
consistent view of the state.

ImmutableForest's loadOrCreateTree was unsynchronised and
committed a multitude of sins: creating and returning multiple trees for the
same prefix when it should ensure one instance exists in cache and most problematically allowing access to uninitialised trees by pushing into LRU
cache before Loading the tree from DB.

The fix for 1 is to pull a snapshot ImmutableForest when Call*Sim are
called which is fixed to the latest height at the time of the call.
The fix for 2 was to synchronise loadOrCreateTree and only push
initialised trees into the treeCache.
simulated_call_test.go adds a test that triggers the second bug
(requires a cold cache and a prefix with previous existing versions)
Signed-off-by: Silas Davis<EMAIL_ADDRESS>

I'm going to push a few other changes to this, namely:

Add a concurrency test to forest_test.go so we aren't just testing it indirectly
Add a bunch of comments to forest.go
Rather than have a complicated contract of 'single writer multiple readers' I'm going to make forest completely concurrency safe. Since reads are already mostly lock-free and uncontended write mutexes are low overhead we just might as well and avoid possible footguns. I think there may be some other subtle read-side issues in forest.


Adding a list to an empty taggle results in wrong block size / squishing

Here, I've just added AIDS_Countries, nothing else. When I click on that column it resolves.

Yes, that's because the aggregated vis for string columns is not implemented yet.
Related to #311.

Duplicate of #311.


Question about AVA performance

Hi,
Thanks for your contribution of mmaction which is an awesome open-source project on the GitHub! I have a few questions about the performance of AVA model which is in the model zoo.
My questions are:

How many epochs do I need until achieving the score 21.2 by<EMAIL_ADDRESS>Can I utilize the default setting file in order to achieve this score?
If I use default batch_size=2, then my GPU memory will be full. So I change the batch_size to 1. Should I change the learning rate etc? Because with the default setting except for the batch size, I cannot achieve 21.2<EMAIL_ADDRESS>after 12 epochs.

Hi @happyjin

12 epochs as specified in https://github.com/open-mmlab/mmaction/blob/master/configs/ava/ava_fast_rcnn_nl_r50_c4_1x_kinetics_pretrain_crop.py.
You can use the default setting file to get the score. If you see any difference, let me know in this issue.
3.Lr should be proportional to your effective number of sample. In your case, try halve your lr and see if it works out.

Hi @zhaoyue-zephyrus Thanks for the amazing repository. I tried with the default settings, but I use 4 gpus. I trained for ~ 2.5 days (12 epochs) with learning rate halved. Unfortunately, I get only 0.04 mAP.
Things I changed: halved learning rate, doubled warmup iterations, doubled warmup steps.
My guess (I have yet to experiment) is that the number of epochs need to be doubled.

@TheShadow29 Sorry I haven't got enough facilities on hand to reproduce that. I will figure it out a little bit later.

@zhaoyue-zephyrus I tried with more epochs (another 10 epochs), the result is still the same map ~ 0.03.
I also noticed the following in the log just before report of the scores:
2019-07-17 10:43:49,392 - INFO - The following classes have no ground truth examples: [ 2 16 18 19 21 23 25 31 32 33 35 39 40 42 44 50 53 55 71 75]
I am not sure how to interpret this.
Also, do you have the log file for the training of ava model? Comparing the logs might reveal something.
Again, cheers for creating such an amazing repository and thank you for your patience.

@TheShadow29
Hi , the line [ 2 16 18 19 21 23 25 31 32 33 35 39 40 42 44 50 53 55 71 75] means that AVA is evaluating 60 classes out of the whole 80 classes. You don't need to worry about it.
Before we figure out the training issue, could you please first run the testing code to check if you could reproduce the reported results?  I will try to reproduce yours configuration soon.

@TheShadow29  BTW, what GPU are you using? Do you halve the videos_per_gpu as well?

Yes, I used the testing code and using your pretrained model from the model zoo I get 21 map.
<EMAIL_ADDRESS>     0.21313359468022483
I am using 4 gpus, each being a 1080Ti. I use videos_per_gpu=2 and workers_per_gpu=2

How can I achieve 21.3 mAP. I use 8 gpus, cuda 10.0, python 3.7, pytorch 1.1.0
Thank you.

Yes, I used the testing code and using your pretrained model from the model zoo I get 21 map.
<EMAIL_ADDRESS>0.21313359468022483
I am using 4 gpus, each being a 1080Ti. I use videos_per_gpu=2 and workers_per_gpu=2.
The config file is as it is for the model, data part. Here is the optimizer config:
optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=1e-6)
optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
# learning policy
lr_config = dict(
    policy='step',
    warmup='linear',
    warmup_iters=1000,
    warmup_ratio=1.0 / 4,
    step=[16, 22])
checkpoint_config = dict(interval=1)
# yapf:disable
log_config = dict(
    interval=50,
    hooks=[
        dict(type='TextLoggerHook'),
        # dict(type='TensorboardLoggerHook')
    ])
# yapf:enable
# runtime settings
total_epochs = 24
dist_params = dict(backend='nccl')
log_level = 'INFO'
work_dir = './work_dirs/ava_fast_rcnn_nl_r50_c4_1x_f32s2_kinetics_pretrain_crop_multiscale'
load_from = None
resume_from = None
workflow = [('train', 1)]

I performed diff between original config and my current config, here are the differences:
lr=0.02, warmup_iters=1000, step=[16,22], total_epochs=24

Have you soveled your problem, i can not reproduce the results 21.3 mAP.. thanks

How can I achieve 21.3 mAP. I use 8 gpus, cuda 10.0, python 3.7, pytorch 1.1.0
Thank you.

hi, have your reproduced 21.3 mAp results..

How can I achieve 21.3 mAP. I use 8 gpus, cuda 10.0, python 3.7, pytorch 1.1.0
Thank you.

hi, Have your ever reproduced the 21.3 mAP results.

How can I achieve 21.3 mAP. I use 8 gpus, cuda 10.0, python 3.7, pytorch 1.1.0
Thank you.

hi, Have your ever reproduced the 21.3 mAP results.

It is not over 0.16 mAP. Have you training?

How can I achieve 21.3 mAP. I use 8 gpus, cuda 10.0, python 3.7, pytorch 1.1.0
Thank you.

hi, Have your ever reproduced the 21.3 mAP results.

It is not over 0.16 mAP. Have you training?

How can I achieve 21.3 mAP. I use 8 gpus, cuda 10.0, python 3.7, pytorch 1.1.0
Thank you.

hi, Have your ever reproduced the 21.3 mAP results.

It is not over 0.16 mAP. Have you training?

only 0.3~0.4 mAP.. Then I use other network as backbone, it could get about 12 mAP.


Explorer cannot display folder contents properly

Does this issue occur when all extensions are disabled?: Yes/No

version: 1.95.3 (user setup)
提交: f1a4fb101478ce6ec82fe9627c43efbf9e98c813
日期: 2024-11-13T14:50:04.152Z
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Windows_NT x64 10.0.22631

Explorer cannot display folder contents properly
Steps to Reproduce:

open vscode
use custom setting，don't use default setting

use custom setting，don't use default setting

/needsMoreInfo

I deleted the custom setting and then re-created a setting. The problem was solved. If i still encounter this problem, I will remember to provide the setting information. I am very sorry for not providing more detailed information.


large image not displayed in slack attachment thumbnail

eg http://img0.mxstatic.com/wallpapers/5314e2794404342f45cefbecc12ed0cc_large.jpeg?347884887882784
small images seem to work fine.
could be some other issue, eg http headers from slack...

we addressed this by refusing to use large images.


Added user avatars to bid bots

hmm..
I only meant to merge user avatars commit.
Not sure why other commits got included.


Wipe-Lab Should NOT delete other configurations

If you have created multiple lab configurations and run Wipe-Lab on one of them, that command kills the NAT config which might be used by other configurations and it wipes out ALL hard VDHX files, or at least tries to. This can't happen. Wipe-Lab should only remove the VM files for the virtual machines in the specific configuration.

Totally agree.  Will correct in next release.


fxtwitter stripping tweet description on Telegram

Summary
Currently, when using fxtwitter on telegram, it seems to remove the description and instead shows the MotD.
Telegram left, Discord right

Not really sure what the best way to tackle this problem would be because the issue exists because of how telegram is serving the material.
Would it be possible to investigate how to keep the tweet description?

feel free to subscribe to this issue just in case they ever do something about it
https://github.com/discord/discord-api-docs/discussions/3418


Show tags (like branches) in Explorer commit history

Hi,
Disclaimer :wink:
Please accept my apologies if the feature is already there or has already been requested, I wasn't able to find something related.
In the Explorer view, when browsing the commits history under a given branch, we already have mentions of other branches.
e.g.
Explorer
  + Branches
    + master - origin/master
      - (origin/master)> commit 1
      - commit 2
      - (anotherbranch)> commit 3

It would be really nice to have tags displayed the same way.


Added CBOR map creation functions and tests.

Tested to build on Mac OS 10.9 and passes tests.

Coverage decreased (-2.47%) to 93.26% when pulling 3c5850c8231ba36e753a53467b14952eacd24935 on joerango:master into bc2fdca84e2edbb147da1abb93fc662e20402161 on iptube:master.

I had to re-work the internals a little bit to ensure that the structures were all linked up correctly, but I got it to work.  Tests added for the edge cases brought coverage up to 100% on the cn-create.c file.


Copyright Infringment

From Version  0.0.2-hotfix2 to  0.0.2-hotfix3
@Skau
Do not include Librarys owned by Taleworlds
TaleWorlds.MountAndBlade.View.dll
TaleWorlds.MountAndBlade.GauntletUI.dll
ill be taking the mod down on mod.io until that issue is fixed, and please remove it from github before taleworlds sends a dcma notice

Fixed. Thanks for letting me know.


Some suggestion from a reader/user

Thanks for having developed per4m: it is a really useful tool!
Here are some suggestions from my usage and reading.
I have not scoped python-tabulate versions for the installation because the setup with its current one is working, but it would potentially be better to.

LGTM, thanks!


[manuf] Fix JTAG problems in manufacturing tests

See #19086
Several manufacturing tests suffer from random JTAG issues because
they try to connect over JTAG while the device is rebooting in a
loop. Since a chip reset kills the JTAG, it can make the test fail
when a reboot occurs during the JTAG session. This is particular
problematic for the trigger_lc_transition() function that performs
an LC transition, a reboot and attempts to connect over JTAG: it
can happen that the initial LC state has CPU execution disabled
but that the target test has execution enabled. When this happens,
and unless a program was bootstrapped that can prevent a reboot
loop, connecting over JTAG is unsafe.
This commit solves this issue by

make trigger_lc_transition() only optionally reconnect over JTAG,
carefully documenting for each trigger_lc_transition() usage
what the execution situation is after the transition,
fix the problematic ones.

There are two problematic tests:

manuf_cp_device_info_flash_wr gets into a reboot loop after the
transition: since the host already bootstraps a program that
check that the transition was successful, simply remove the JTAG
based test to avoid the program.
personalize_functest: the device program go into a reboot loop
after personalizing the device and can cause the JTAG connection
to break during the entire LC transition (it's unsafe even before
the transition). Fix this by adding a loop in the device code after
personalizing to wait for the transition, and after the transition
when the RMA state is detected.

Thanks for cleaning these up!


Improve Config Setup

Got rid of controlType in the config files and separated configs into 3
different files depending on the type of motor controllers used (CTRE,
SparkMax, and Simple). This should remove unnecessary parameters for each
different type of config.
Made it so declaring encoder ports for smart motor controllers
(e.g. Spark Max and Talon SRX) makes the template use Encoders from the
RoboRIO rather than the motor controller.
Removed the need to declare the CANSparkMax motor controller type when
working with the SparkMax control type under the assumption that the
vast majority of uses will not require mixing SparkMaxes with other
motor controller types.
Also clarified config file documentation.
I need to do some extra testing to make sure nothing breaks, but this should be the bulk of the changes.

Is there a way we could generate projects in CI to make sure the templates compile?

There's no straightforward solution that I know off the top of my head since the generation is done through the UI. This might be something we should abstract with the math analysis when creating Unit Tests and test cases.

Is there a way we could generate projects in CI to make sure the templates compile? It would have caught the bug the most recent fixup commit addressed.

Yeah, that's definitely doable. We might have to factor the generation code into some more independent functions, but it should be quite straightforward (and could probably fit into a doctest.) That, plus some doctests for data loading and processing, would go a long way for reliability and dev effort. I don't think it's a ton of work beyond refactoring some of the code into more standalone functions.

Should this PR handle that?

No, I don't think that's in the scope of polishing the project generator config.

In the meantime, we need someone to test this PR for correctness.

Would the following test cases be good (the different encoder types for the SparkMax cases are each separate cases)?

[ ] Simple 2 motorcontroller config
[ ] Simple 2 motorcontroller per-side drive
[ ] CTRE Talon, Victor setup w and w/o Rio-side encoder
[ ] CTRE Talon, Victor setup per-side drive w and w/o Rio-side encoder
[ ] SparkMax 2 NEO setup with Integrated, External, and Rio Side encoders
[ ] SparkMax 2 Brushed Motor setup with External and Rio Side encoder
[ ] SparkMax 2 NEO per-side, drive setup with Integrated Encoder and External encoders
[ ] SparkMax 2 Brushed Motor per-side drive setup with External and Rio Side Encoder

What's a CTRE Talon, Victor setup per-side drive?

What's a CTRE Talon, Victor setup per-side drive?

A drivetrain config that uses a Talon with a Victor follower setup on each side.

Then what's the difference between CTRE Talon, Victor setup w and w/o Rio-side encoder and CTRE Talon, Victor setup per-side drive w and w/o Rio-side encoder? Maybe you should just use complete sentences, because I'm really confused.

Then what's the difference between CTRE Talon, Victor setup w and w/o Rio-side encoder and

That one is just a simple-motor setup.

CTRE Talon, Victor setup per-side drive w and w/o Rio-side encoder?

This one is a drivetrain setup.
Would A drivetrain setup using a Talon with a Victor follower on each side with and without a Rio-side encoder vs A simple motor setup using a Talon with a Victor Follower with and without a Rio-side encoder  make the test cases clearer?

That's much clearer, yeah.

Would the following test cases be good (the different encoder types for the SparkMax cases are each separate cases)?

[ ]  A simple motor setup with 2 simple motorcontrollers (e.g. Spark)
[ ]  A drivetrain setup with 2 simple motorcontrollers on each side
[ ]  A simple motor setup using a Talon with a Victor Follower with and without a Rio-side encoder
[ ]  A drivetrain setup using a Talon with a Victor follower on each side with and without a Rio-side encoder
[ ]  A simple motor setup with 2 NEOs using Integrated, External, and Rio Side encoders
[ ]  A simple motor setup with 2 Brushed SparkMax motorcontrollers using External and Rio Side encoders
[ ]  A drivetrain with 2 NEOs on each side using Integrated encoders, External encoders, and Rio Side encoders
[ ]  A drivetrain with 2 Brushed SparkMax motorcontrollers on each side using External and Rio Side Encoders

Are these test cases clearer?

That list looks good so far. Do we want to do anything in particular involving the gyro?

I can use the NavX and Pigeon for all of the drivetrain cases

Does that cover a CCW positive gyro and a CW positive one? I don't know what coordinate systems those use.

Does that cover a CCW positive gyro and a CW positive one? I don't know what coordinate systems those use.

I believe the NavX is CW positive and the Pigeon is CCW positive.
Is there anything I should be looking out for in terms of the generated code relating to the orientation?

Yea. If it's a CW positive gyro, we have to throw on a negative sign to make it CCW positive.

Hopefully once vendors implement GetRotation2d() correctly, we can just use that.

I assume AnalogGyro is CCW Positive?

Oh, and we could use the simulation physics to verify the stats stuff gives the right Kv and Ka.

Oh, and we could use WPILib's simulation physics to verify the stats stuff gives the right Kv and Ka.

Would this serve as an additional check to the LQR Unit Tests?

Would this serve as an additional check to the LQR Unit Tests?

The feedforward gains and feedback gains should be tested separately.

I assume AnalogGyro is CCW Positive?

The analog gyro 3512 used in 2013 was CW positive, but it really depends on the gyro you plug into the analog input pin.

but it really depends on the gyro you plug into the analog input pin.
Should that be another template field, or should we ask the users in the documentation to flip the sign on the template if the analog gyro isn't CCW positive?

So few teams use analog gyros nowadays that I'd rather just document it.

It handles all the test cases now, but could somebody look at the 3 new config files and see if they are understandable?


fix: passing styles to heading component

Types of Changes
What types of changes does your code introduce? Put an x in all the boxes that apply:

[ ] Bug fix (non-breaking change which fixes an issue, please reference the issue id)
[ ] New feature (non-breaking change which adds functionality, make sure to open an associated issue first)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] My change requires a change to the documentation
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] All new and existing tests passed

Description
[Place a meaningful description here.]

:tada: This PR is included in version 4.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


clip-path weird issue

this is really weird issue, the three below forms produces the same markup but only the third one display the correct result (Chrome Version 48.0.2564.103 (64-bit))

(ns geom.clip-path-bug
  (:require-macros [hiccups.core :as hiccups :refer [html]])
  (:require
    [hiccups.runtime :as hiccupsrt]
    [thi.ng.domus.core :as dom]
    [hipo.core :as hipo]))

; doesn't clip the rectangle
(comment
  (->> js/document.body
       (dom/create-dom!
         [:svg
          {:width 300 :height 300}
          [:defs [:clipPath {:id "myClip"}
                  [:circle {:cx 50 :cy 50 :r 10}]]]
          [:rect {:x 0 :y 0 :width 200 :height 200
                  :fill "black" :clip-path "url(#myClip)"}]])))

; doesn't show at all
(comment
  (.appendChild  js/document.body
                 (hipo/create [:svg {:width 300 :height 300}
                               [:defs [:clipPath {:id "myClip"}
                                       [:circle {:cx 50 :cy 50 :r 10}]]]
                               [:rect {:x 0 :y 0 :width 200, :height 200
                                       :fill "black" :clip-path "url(#myClip)"}]])))

; works
(comment
  (aset js/document.body
        "innerHTML"
        (html [:svg {:width 300 :height 300}
               [:defs [:clipPath {:id "myClip"}
                       [:circle {:cx 50 :cy 50 :r 10}]]]
               [:rect {:x 0 :y 0 :width 200, :height 200
                       :fill "black" :clip-path "url(#myClip)"}]])))

;; now if we reevaluate the first form it works as intended

I had to write a little function as a workaround

(defn svg
  "in order to avoid clip-path wrong rendering"
  [parent-selector attrs & childs]
  (let [p (dom/query nil parent-selector)]
    (aset p
          "innerHTML"
          (html [:svg (dissoc attrs :defs)
                 [:defs (seq (:defs attrs))]
                 childs]))))

;; rendered as intended
(svg "#app"
       {:width 300 :height 300 :defs [[:clipPath {:id "myClip"}
                                       [:circle {:cx 50 :cy 50 :r 10}]]]}
       [:rect {:x    0 :y 0 :width 200, :height 200
               :fill "black" :clip-path "url(#myClip)"}])

This might have to do with the fact, that I've only included a small subset of SVG tags: https://github.com/thi-ng/domus/blob/master/src/core.org#constants - which get special treatment and are generated with document.createElementNS() and the correct SVG XML namespace. IIRC that's also the reason why hiccups doesn't work at all for SVG. In Clojurescript you should be able to reset that thi.ng.domus.core.svg-tags variable though and try adding more tags before using create-dom!:
(set! thi.ng.domus.core/svg-tags #{....})

If this works I'm happy to accept a PR for this. Thanks! :)

ok thank you, it do the trick.
do you want the complete list of svg tags in this var?
entire list from https://developer.mozilla.org/en-US/docs/Web/SVG/Element
just remove

just made a PR with this


Community.md : adding KataContainer on MicroK8s

Hi there,
I propose to add this repo that shows how to implement Kata Containers with MicroK8s. It's v1 but subsequent improvements to come: see head of README.md
Thanks
Didier

@ktsakalozos : Thanks for the positive feedback. My next step will be to inplement K8s RuntimeClass on this repo to allow parallel use of runc and kata-runtime with MicroK8s.


Get all tool ids for all tools in a suite

The script currently gets the 'Galaxy wrapper id' from the .shed file, this matches the tool id in many cases, but for multiple tools in a suite this is not the case. In order to check if a tool is also available on a galaxy server, we need the tool id:
https://github.com/bio-tools/biohackathon2022/blob/353570d03a3cccc73294b907c7c79ac9f814d815/scripts/workflowhub_galaxy_biotools.py#L24-L32
then we can query the tool ids on the servers, we could then state if the suite is available fully, partially or not ...
This way we do not need a fuzzy match.

That might work: https://github.com/bebatut/galaxy_tool_extractor/pull/8


Suggestion: Please add an option to simply move the Dynamic Island down and not hide it

Or have an option to press in where it would move to to show it
Every since DynamicCow came around I just wanted to be able to move it down below the notch.

It already do that, just hide when you're not using it

Added in lastest release


[#166282717] Enable concatenate_cas in credhub

What
Enables concatenate_cas in credhub so we can combine active versions of a CA. This will allow us to rotate CA certs stored in credhub.
How to review
Code review
Who can review
Not me

This deployed OK to miki.

I talked to Miki and they are happy for me to deploy :) 🚀 :shipit:


User matching algorithm

Describe the feature
To be defined
Describe the solution you'd like
A clear and concise description of how you want it to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@all-contributors please add @Miapurho for ideas and docs

@all-contributors please add @tanjarasanen for ideas


Corrected the double quotes for the Windows Firewall setup.

There was a typo in the "Configure Windows Defender Firewall with Advanced Security" section of the article.
Received value: 5. On the Program page, select This program path, and type "%SystemRoot%\system32\svchost.exe' then select Next.
Expected value: 5. On the Program page, select This program path, and type "%SystemRoot%\system32\svchost.exe" then select Next.

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

Looks good; thanks


Buttons not showing correctly

Hi,
The buttons on TaskBoard, not appearing correctly, any suggestions?
Tahnk very much

Looks like the fonts aren't downloading. Are you getting any 404 errors in dev tools?

Closing due to lack of response.