fix(Dockerfile): update location of "mc" binary

The old URL for fetching mc was replaced by a new server and paths, which broke the deis/minio build.

This passed Travis CI but wouldn't re-build in Jenkins for some reason:
 [8] System error: exec: "/bin/sh": stat /bin/sh: not a directory

:confused:


Add option to wait for schema changes to batch

This PR adds an option to batch to allow to wait until all schema changes are done:
await schemaClient.batch(["ALTER TABLE users ADD COLUMN test_column text"], {
  wait: true,
});

Currently, batch supports a transaction mode parameter, so I keep support for it but also added a new object parameter that supports a transactionMode property. The code below is equivalent:
// Previous API, still supported
await schemaClient.batch(["ALTER TABLE users ADD COLUMN test_column_2 number"], " write")

// New API
await schemaClient.batch(["ALTER TABLE users ADD COLUMN test_column_2 number"], {
  transactionMode: "write"
});

// You can mix transaction mode and the new wait option
await schemaClient.batch(["ALTER TABLE users ADD COLUMN test_column_2 number"], {
  transactionMode: "write",
  wait: true,
});

You can test these changes locally with this command:
cd packages/libsql-core && npm run build && cd - && cd packages/libsql-client && npm run build && cd - && node test.ts

It builds and run a test using the new wait parameter while I add automatic tests.
Please note that the API returns frequent 500 errors which are being investigated internally.
If everything works as expected, you should see an output similar to the one below.
Waiting for migration jobs
json: {
  schema_version: 4,
  migrations: [
    { job_id: 2, status: 'RunSuccess' },
    { job_id: 1, status: 'RunSuccess' }
  ]
}
lastMigrationJob: { job_id: 2, status: 'RunSuccess' }
Finished waiting for migration jobs

I decided to move (at least for now, we can still discuss this!) the code to wait for schema changes to the execute function as an optional object parameter, so if you want to run a schema migration, you can run a command like this:
await schemaClient.execute(
  "ALTER TABLE users ADD COLUMN test_column number;",
  { wait: true },
);

I think this is a better approach than adding the parameter to batch because the batch function wraps the whole SQL code in a transaction, which makes the schema SQL to fail in the server. This means that we need to remove the transaction from the SQL code if { wait: true }, which makes all these combinations equivalent:
// All these operations would be the same
batch('...', { transactionMode: 'write', wait: true })
batch('...', { transactionMode: 'read', wait: true })
batch('...', { transactionMode: 'deferred', wait: true })

This is not bad per se, but having a configuration object parameter with options that can't be mixed doesn't seem the correct way to implement this because it may cause confusion to users. For now, I moved the implementation to execute, since it seems a better place to implement this logic. However, it's quite easy to move it to any other function in case we want to. If there's anything wrong with this please let me know!
I also added some tests for the waitForLastMigrationJobToFinish using msw to simulate responses for the job-related endpoints and make sure that it works as expected.
I've been testing these changes with my own databases using the test file as a reference and it's working as expected, so if everything looks good, I just need to remove the test.ts file and the extra console.log calls!

Update about the final implementation: we don't require users to manually provide a new parameter like { wait: true }.
We determine automatically if a database is a schema database or not by calling an API endpoint so users are not required to do manual changes in order to make this work!


scipy.interpolate.interp1d complains about invalid value in subtract

I don't understand the warning "RuntimeWarning: invalid value encountered in subtract".  I understand how subtraction can produce loss of precision, but that doesn't seem to be what's happening here.
Reproducing code example:
# Running this script produces the error (which would ordinarily be a warning)
# "RuntimeWarning: invalid value encountered in subtract".

from scipy.interpolate import interp1d

import sys, warnings
warnings.simplefilter('error', RuntimeWarning)

python3= sys.version_info[0] >= 3

if python3:
   import pickle
else:
   import cPickle as pickle

with open('bug.pkl', 'rb') as IN:
   D= pickle.load(IN)

theta_rad    = D['theta_rad']
y            = D['y']
theta_out_rad= D['theta_out_rad']

y_out= interp1d(theta_rad, y, axis=1) (theta_out_rad)

Error message:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  ...

Scipy/Numpy/Python version information:
('1.0.0', '1.13.3', sys.version_info(major=2, minor=7, micro=13, releaselevel='final', serial=0))

The warning is issued when a ufunc (in this case subtract) encounters a NaN value. Do you have a code example?

I had to edit your post as there was an HTML comment-start marker that hid the code example. Now I see it. However, without the data that you are loading from a pickle file, there's no way for me to tell what specifically is giving you NaNs. It could be that two infs are being subtracted from one another somewhere in the interpolation process.

Sorry about the HTML comment marker.
Also, I've now uploaded the file: bug.zip

I've upgraded to newer versions of SciPy and NumPy:
('1.1.0', '1.15.4', sys.version_info(major=2, minor=7, micro=13, releaselevel='final', serial=0))
Post-update, the issue is still there.
If indeed the presence of a NaN is the sole condition that can produce this warning, a change of wording to the message would be helpful.  Thanks!

Strictly speaking, what we're capturing here is catching when a floating point exception signal (SIGFPE) is issued. We check the appropriate flag to see why it was issued; this particular case is consistently referred to as an "invalid operation" (e.g. 0/0, inf/inf, inf-inf, NaN-NaN, etc.). It's not always because a NaN is input. If the SIGFPE does not halt execution, then an invalid operation returns a NaN as well, which is what I meant when I mentioned NaNs.
It looks like you do have some NaNs in y, and that's why y_hi - y_lo issues the warning.
By the way, you can more directly control how to deal with these FPEs with np.errstate():
with np.errstate(invalid='raise'):
    y_out = interp1d(theta_rad, y, axis=1)(theta_out_rad)

np.errstate is a nice solution.  Thank you!
On Wed, Feb 20, 2019 at 7:16 PM Robert Kern<EMAIL_ADDRESS>wrote:

Strictly speaking, what we're capturing here is catching when a floating
point exception signal (SIGFPE) is issued. We check the appropriate flag
to see why it was issued; this particular case is consistently referred
to as an "invalid operation"
https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/com.ibm.aix.genprogc/floating-point_except.htm
(e.g. 0/0, inf/inf, inf-inf, NaN-NaN, etc.). It's not always because a NaN
is input. If the SIGFPE does not halt execution, then an invalid
operation returns a NaN as well, which is what I meant when I mentioned
NaNs.
It looks like you do have some NaNs in y, and that's why y_hi - y_lo
issues the warning.
By the way, you can more directly control how to deal with these FPEs with
np.errstate()
https://docs.scipy.org/doc/numpy/reference/generated/numpy.errstate.html
:
with np.errstate(invalid='raise'):
y_out = interp1d(theta_rad, y, axis=1)(theta_out_rad)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/9851#issuecomment-465845785, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABBBxBlxRY5Br8Ik-NkJ0EcHH9BONCWwks5vPg-DgaJpZM4bEWV_
.

I encountered a similar problem when two x values where the same
  unique_x = np.unique(x)     unique_y = [np.mean(y[x== x_i]) for x_i in unique_x ]     f = scipy.interpolate.interp1d(unique_x , unique_y , fill_value="extrapolate", assume_sorted=False)     new_y= f(new_x)


Update Heads up Display to Floating Style

This PR updates the HUD to use a floating style display.

Oof, this definitely needs a merge from main 😆


refactor(semantic/jsdoc): Misc fixes for JSDoc related things

Sorry for the rather large size of PR. 😓 But essentially, not changed so much.
1. Reorganize directories and namings
src/jsdoc
├── builder.rs 👈🏻 for SemanticBuilder
├── finder.rs  👈🏻 `semantic.jsdoc()`
├── mod.rs
└── parser
   ├── jsdoc.rs     👈🏻 `JSDoc` struct which has `comment` and `tags`
   ├── jsdoc_tag.rs 👈🏻 `JSDocTag` struct
   ├── mod.rs
   ├── parse.rs     👈🏻 parsing logic by `JSDocParser`
   └── utils.rs

Now mod.rs has only export things.
2. Introduce JSDocTagKind::Unknown(name)
We need to keep their name as-is to check valid tag names are used.(e.g. jsdoc/check-tag-names rule)
3. Support multiline description

Comment for JSDoc
Comment for each JSDocTag

/**
 * @foo this comment continues
 * here but leading * should be ignored!!
 */

Please correct me if I am doing something wrong... 🐰

Thank you! I'm just going to trust you on this one :-)

Oh, I'll do my best! 😲 (It would be perfect if I wasn't a Rust beginner...)


Applications list based on call volume.

Hey,
We have around 500 applications in AppD. Is there any way to pull the applications list based on load (calls) from the past three or six months? I only need call count and application name, nothing else. Could you please tell me the steps to get this data ?
Thanks,
Sravan

Now:
Target with Type=APM
ApplicationName=.*
NameRegex=true
Input\DetectedEntities=true
Input\Metrics=true
Input\MetricSelectionCriteria="TransactionApplication"
Output\DetectedEntities=true
Output\Metrics=true
Specify timeframe you want
Everything else to false
It will take a long time as it extracts hourly chunks but it'll get done
In the next release:
Target with Type=APM
ApplicationName=.*
NameRegex=true
Input\DetectedEntities=true
Input\Metrics=true
Input"MetricsSelectionCriteria": {
"MetricSets": [ "TransactionApplication"],
"IncludeHourAndMinuteDetail": false
},
Output\DetectedEntities=true
Output\Metrics=true
Specify timeframe you want
Everything else to false
This will be incredibly fast.
Not available for probably another 2 weeks

Thank you so much for the prompt response. I do have a question regarding the time frame.
Let's say if I want to get the data from the past 3 months ? what values do I need to use?
I don't see any attribute for the end date.
"MarkDate": "TODAY",
"MarkTime": "PREVIOUS_HOUR",
"Duration": "1:00:00"

https://github.com/Appdynamics/AppDynamics.DEXTER/wiki/Job-File#timeframe makes it pretty easy
You specify when you want to start or end via MarkDate/MarkTime. You specify duration in Duration. If your MarkDate/MarkTime is start date, duration is positive, otherwise it is negative.
Say you want April, May and June and you want to start in the beginning. These will be all equivalent:
"MarkDate": "2020-05-1",
"MarkTime": "00:00:00",
"Duration": "90.0:00:00"
or
"MarkDate": "2020-05-1",
"MarkTime": "00:00:00",
"Duration": "P3M"
or
"MarkDate": "2020-05-1",
"MarkTime": "00:00:00",
"Duration": "P90D"


enable signing multiple files

@JordanValdma @ErkoRisthein Hi!
Why did you close this PR? Are you going to rework it, or is there any other cause?
Can I help with that?

Needs proper unit tests using mock data and some other cleanups before it's good enough to review.


network = grnboost2(.. takes too long. Something wrong?

Hi!
I'm trying to run the GRNBoost2 - GRN algorithm on a matrix of shape (11744, 9031) in my cluster of 104GB RAM / Intel(R) Xeon(R) CPU @ 2.30GHz / 16 CPU (s). So far it's running for +20h.
I have a couple of questions:

Should I use the raw expression matrix? Or should I use the log-transformed/normalized expression matrix?

I don't have the list of TF? Can I put all the genes present in the dataset? Or leave it blank?

Thanks in advance for any help!
Best,
Francisco Grisanti

I have the same question. grnboost2 takes too long.

It's 2023 and I have the same question.

I have this problem every time I do a run,.  When I try a run on data 2835 cells by 26048 genes it will run for a week before I abandon it (Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz 2.30GHz 64.0GB installed RAM).   I always cut the data down with highly_variable genes to about 30K elements (eg. 7K genes if I have 4K cells) to get it to run within a reasonable time frame.  I always wonder if I am losing important data when doing that ...


Publish Documentation on ReadTheDocs

To make the project more accessible, the documentation should be published somewhere so a newcomer can read it without needing to clone the repo, install dependencies, etc...
Read The Docs (RTD) is a good place that hosts Python open source projects for free and handles the doc builds and publishing of different versions all on their own infrastructure.  They host the HTML version and also make available PDF and EPUB versions.
We can stop building it ourselves in Github Actions and offload that to RTD.

Read The Docs is now hooked up to this repo, including webhooks to build the documentation automatically on updates to dev or master.  I'm still looking into setting up a documentation build as a check on pull requests.

I submitted a request to RTD support to enable pull request checking for our project.

I heard back today that the pull request checking feature is now enabled for us.
The docs for the feature are here: https://docs.readthedocs.io/en/latest/guides/autobuild-docs-for-pull-requests.html
Since it's a newer feature, they are interested in feedback. Once we've tried it out a bit let me know if you'd like to pass anything on to them.

Confirmed new docs build on pull request feature works. See #160 for an example of this working.


new workflows

@ksgriggs Can you take a look at this one, I broke it.   It says it is dispatching the job to aws-integration and it's a success but the job is never showing up.  Oh yea, I changed all the dispatch names.

@ksgriggs Can you take a look at this one, I broke it. It says it is dispatching the job to aws-integration and it's a success but the job is never showing up. Oh yea, I changed all the dispatch names.

Figured it out, it was permissions on the bot user.


🐛 The time shown against “Recently Updated” rules is different from that shown in the "Latest Rules" list

Describe the Bug
The time shown next to each rule in the “Recently Updated” list can be different from that shown for the same rukes in the "Latest Rules" list, which is potentially confusing.
To Reproduce
Steps to reproduce the behavior:

Go to https://www.ssw.com.au/rules/
Click on "Latest Rules" and select "Recently updated"
The time shown against rules in this list can be different from that shown in the "Latest Rules" list, e.g.

The time shown in the "Recently updated" appears to be the time since the rule was created, not since it was updated.
Expected Behavior
The time against each rule should be the time since it was last updated when "Recently updated" is selected as the sort order.

done

Figure: Times are now consistent


(#110) darwin support - plugin_group: wheel

All it takes to make this class run out of the box on MacOSX

Fixes #110

That's awesome, when there's an issue please make the commits format (#110) Setup 'wheel'.....
thanks

thanks!


fix(migrations): update types that are not set on the schema

What kind of change does this PR introduce?
This changeset updates the migrations schema that's causing trouble on new supabase/auth installations whether it's using docker or not. The types are not set on the schema which causes the migrations to fail. And it adds residual types to public schema.
What is the current behavior?
Issue #1729 was closed despite not resolving the problem.
What is the new behavior?
Add the relevant types to the proper schema.
Additional context

It seems the main problem here is the migrator-cmd executes the sql migrations in public schema. That's why when the next sql instruction comes up, it tries to find it in public and that's the reason it fails. That's why I force the schema migrations to use the namespace types.

Would be nice if this merge request would fix the migration errors. Right now it is not possible for me to start a new docker container because i get always an error that the factor_type doesn't exists.
I can only fix it by manually creating that type in the DB.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 56.998%

Totals

Change from base Build<PHONE_NUMBER>7:
0.0%

Covered Lines:
9546

Relevant Lines:
16748

💛  - Coveralls

@patrickwjh you might need to create the auth user before doing the migration and set its search path to auth or your custom DB_NAMESPACE.
This PR only solves the problem like if the auth user is not created before doing the migration and that would result in the above screenshots which scatters the types to default schema. A scenario where user will move all created item ownership to auth user afterwards (after running the migration).


How to find root of an item and expand it?

I want to find the root node of an item and call the "setCollapsedRecursive" method to expand the whole node recursively....any thoughts?

You can write code yourself, as I wrote code to find parent of a item: https://github.com/leovo2708/ngx-treeview/blob/master/src/lib/treeview-helper.ts#L47

Can i fork your code and add this feature?

Yes, it's ok

Would it be better if i create a pull-request and modify this solution ? or should i fork it? what do you say?

Fork and then create a pull-request

And also write unit test if able


Envoy envoy.config.core.v3.HeaderValueOption deprication

the proxy or logging this at high volume:
[source/common/protobuf/message_validator_impl.cc:21] Deprecated field: type envoy.config.core.v3.HeaderValueOption Using deprecated option 'envoy.config.core.v3.HeaderValueOption.append' from file base.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/version_history/version_history for details. If continued use of this field is absolutely necessary, see https://www.envoyproxy.io/docs/envoy/latest/configuration/operations/runtime#using-runtime-overrides-for-deprecated-features for how to apply a temporary and highly discouraged override.

Thank you for reporting this. It will be fixed in the next release by https://github.com/knative-extensions/net-kourier/pull/1076


Tuxedo

🚨 The issue tracker is not for questions 🚨
If you have a question, please ask it on https://stackoverflow.com/questions/tagged/visual-studio-code.

Was not expecting to see that as a profile photo today.


Possible solution for crafting interface lag?

Issue: The crafting interface lags both with and without recursive craft when there are a lot of recipes to calculate.
Solution: Not sure how plausible this would be but its an idea; Offload the recipe calculations to have the server perform them and send the results back as a mod packet? This way the client doesn't have a massive drop in fps and is still able to search through recipes with ease. Of course this would only be a multiplayer solution as single player wouldn't be able to offload the calculations to a server.

Unfortunately, at least afaik, calculating recipes is exclusively client side


Fix go vet issues flagged by go 1.9

revendor testify
go vet: Fix issues detected by go vet in go 1.9
Fixes https://github.com/clearcontainers/runtime/issues/586

lgtm

lgtm

lgtm.


[DealabsBridge - HotUKDealsBridge - MydealsBridge] Update Groups

The bridges has been updated with the newest "groups" available on every
website !

Some of the existing links (like 'image-son-video') are redirected to another URL on the website, and some (like 'microsoft-surface') don't exists anymore.
But some (like 'maison-et-jardin') are still existing, even I think I crawled the whole website using a script...
I'll check if some of them are still visible in the "Similar Groups" box.
I must check my crawling script again !

Hello !
I double checked : I extended my crawling script, to get more "sources" : some of the existing groups (like 'maison-et-jardin') does still work, but there are not on the website anymore. I think those are abandoned groups : the last deal in this group is from 2019.
The group order changed a bit, because I fixed a duplicate entries issue in my crawling script, and did not need to use the sort command to fix them.
IMHO, the feed this pull request will break are already broken, or does not return anything new since a while.

Did I miss something ? :)

Hello !
Am I missing some changes ?

gj!

Btw, just pushed https://github.com/RSS-Bridge/rss-bridge/commit/877707f7b2bf283298694687954773fe6503438a, so you can add your script crawling scripts to contrib/ directory


Feature/openstack network with terraform

@andersla it seems like the network folder is missing. Is it possible to have the ssh key created and the security group as well?

I had forgotten to add it:)
I'll do the keys later.

@andersla I synched this PR with the master, you may need to pull. It misses a couple of things:

updated version of openstack/main.yml
updated version of terraform.tfvars.os-template
documentation for the new parameters (security group name, and ssh key path)

Look forward to test it :)

fixed it!

  On 2016-11-02 17:41, Marco Capuccini wrote:

  @mcapuccini requested changes on this pull request.
  some files are missing
  —
    You are receiving this because you were mentioned.
    Reply to this email directly, view
      it on GitHub, or mute
      the thread.

  {"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/mcapuccini/KubeNow","title":"mcapuccini/KubeNow","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/mcapuccini/KubeNow"}},"updates":{"snippets":[{"icon":"PERSON","message":"@mcapuccini requested changes on #14"}],"action":{"name":"View Pull Request","url":"https://github.com/mcapuccini/KubeNow/pull/14#pullrequestreview-6857107"}}}

@andersla good job! It worked great!


How to import solution with PackageDeployer and force Stage for Upgrade

Hi.
I am importing managed solutions with PackageDeployer.
When I import a new version of the solution, I want that PackageDeployer does't delete the Holding Solution, I need to aply Stage for Upgrade
Example:
I have the solution test v <IP_ADDRESS> already instaled.
I want to install a new version test v <IP_ADDRESS>

I need to avoid this phase.

@dga205 so you want the package deployer not do the stage for upgrade? As in just import the new version of the solution.


Remove Deprecated Lifecycle Methods.

Hi @gujral1997, I assume you're referring to the deprecated React lifecycle methods. This is already done and should go out with the next release.


Why use np.roll(g[:-1], j)  instead of padding zero in autoregression?

For line 131 at
https://github.com/pySTEPS/pysteps/blob/4a14e00fa56d43686c977bfcbbeb9c3412bda0b3/pysteps/timeseries/autoregression.py#L128-L134
G.append(np.roll(g[:-1], j))

Why use np.roll instead of padding zero?
//Yule=Walker Equation: http://www2.econ.osaka-u.ac.jp/~tanizaki/class/2014/model_analysis1/08.pdf P109

The Yule-Walker equation could also be solved by padding with zeros. However, using np.roll allows a more compact representation of the equation.


24bit I2S unable to reach full range in output stream

Using a logic analyser, I can confirm that at 24bit does not reach full volume when used with either  an Android phone ("Signal generator app" set to full volume with square wave) or Windows 10 PC ("Frequency generator app set to square wave full volume). Both devices exhibit the same max values of ~+-5,142,528 (decimal), where closer to 8,388,608 is expected.

I am not sure if this is an issue and nothing in any spec in the IDF (for A2DP and I2S expansion) would describe the effective value range.
Do you know, what would be the effective range with 16 bits ?
Just to double check are you using the volume functionality of this library ?

As an experiment, I changed settings to 16 bit. as before range is limited, to ~60% of full, now max is 17136 (below) when we would expect 2^(BITS-1) = 32768. Note (BITS-1) as this allows for the polarity bit. The full range is of course 2^(BITS) = ~65,000, or 0xffff.
I also note that with 16bit set, now only one channel is broadcast:

I've also followed these steps to ensure that andoird isn't reducing gain somehow:
https://www.reddit.com/r/GooglePixel/comments/8hbcuu/the_100_solution_to_bluetooth_volume_issues/
I can confirm that no functionality other than that shown in the code block below is in use- so no additional volume settings:
#define BITS 16

// ==> Example to use external 32 bit DAC - We demonstrate how to create a subclass and override the audio_data_callback method

#include "BluetoothA2DPSink32.h"

BluetoothA2DPSink32 a2dp_sink; // Subclass of BluetoothA2DPSink

void setup()
{
  static i2s_config_t i2s_config = {
  .mode = (i2s_mode_t) (I2S_MODE_MASTER | I2S_MODE_TX),
  .sample_rate = 48000,//44100, // updated automatically by A2DP *** Note this change has no impact
  .bits_per_sample = (i2s_bits_per_sample_t)BITS,
  .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
  .communication_format = (i2s_comm_format_t) (I2S_COMM_FORMAT_STAND_I2S),
  .intr_alloc_flags = 0, // default interrupt priority
  .dma_buf_count = 8,
  .dma_buf_len = 256,//64,
  .use_apll = true,
  .tx_desc_auto_clear = true // avoiding noise in case of data unavailability
  };
  a2dp_sink.set_i2s_config(i2s_config);

  //a2dp_sink.set_bits_per_sample(BITS);
  a2dp_sink.start("MyBTAudio");
}

void loop() {
}

I also note that noe only one channel is working:

Can confirm that one channel drops out if chennel bits is set to 16, but with sample_rate left at 441000:
#define BITS 16

// ==> Example to use external 32 bit DAC - We demonstrate how to create a subclass and override the audio_data_callback method

#include "BluetoothA2DPSink32.h"

BluetoothA2DPSink32 a2dp_sink; // Subclass of BluetoothA2DPSink

void setup()
{
  static i2s_config_t i2s_config = {
  .mode = (i2s_mode_t) (I2S_MODE_MASTER | I2S_MODE_TX),
  .sample_rate = 44100, // updated automatically by A2DP
  .bits_per_sample = (i2s_bits_per_sample_t)BITS,
  .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
  .communication_format = (i2s_comm_format_t) (I2S_COMM_FORMAT_STAND_I2S),
  .intr_alloc_flags = 0, // default interrupt priority
  .dma_buf_count = 8,
  .dma_buf_len = 256,//64,
  .use_apll = true,
  .tx_desc_auto_clear = true // avoiding noise in case of data unavailability
  };
  a2dp_sink.set_i2s_config(i2s_config);

  //a2dp_sink.set_bits_per_sample(BITS);
  a2dp_sink.start("MyBTAudio");
}

void loop() {
}

Side note, while not full rail, windws 10 with "Frequency generator"  able to reach slightly higher levels than android (~20k vs 16k):

One more question: when you set the log-level to debug in Arduino and you change the volume: Do you see any AVRC or volume related entries.
There are different ways to handle the volume depending on the capability of the partner and the ESP32-Arduino version.
ps. on 16 bits, I definitly get 2 channels. You should get the same result (instead of using an oscilloscope) by running the following example:
https://github.com/pschatzmann/ESP32-A2DP/blob/main/examples/bt_music_receiver_datacallback/bt_music_receiver_datacallback.ino
This will show the PCM values which are received.

Having done more research, it appears my pixel 3 is part of the issue. It only transmits with SBC "quality". I don't know what A2DP then does, but this might explain why the PC  performed slightly (though still poorly) better.
In short, this is very unlikely to be an issue with the wrapper class, bluetooth audio has a long way to go before I can use it in pro audo gear. Thanks for the assistance.


Issue regarding Maps with null fields a generic custom mapper on third party class

Thanks you for this great package. It has been a delight to use.
When creating a generic custom mapper for the Option type from fpdart everything works well for toMap and fromMap when the field is not null. However, when the field of the Map is null, I get the following error: MapperException: Failed to decode (ClassWithOption).optional: Parameter optional is missing.
Here is the custom mapper:
class OptionConverter extends SimpleMapper1<Option> {
  const OptionConverter();
  @override
  Option<T> decode<T>(dynamic value) {
    final content = MapperContainer.globals.fromValue<T>(value);
    return content == null ? none<T>() : some<T>(content);
  }

  @override
  dynamic encode<T>(Option<T> self) {
    return MapperContainer.globals.toValue<T>(self.match(() => null, (t) => t));
  }

  @override
  Function get typeFactory => <T>(f) => f<Option<T>>();
}

and here is a snippet of a class using the custom mapper:
@MappableClass(includeCustomMappers: [OptionConverter()])
class ClassWithOption with ClassWithOptionMappable {
  ClassWithOption({
    required this.optional,
    required this.name,
  });

  final Option<String> optional;
  final String name;

  static const fromMap = ClassWithOptionMapper.fromMap;
}

It fails with the following snippet:
ClassWithOption.fromMap({'name': 'bob', 'optional': null})

I cannot tell if I am doing something wrong or if this is a bug.
Thanks again!

The reason this fails is because the null check (that triggers the MapperException you get) is done before invoking the mapper. This is because usually a mapper only works with non-null values. Option here is a special case.
I would propose a workaround to use a default value in the constructor like this:
class ClassWithOption with ClassWithOptionMappable {
  ClassWithOption({
    Option<String>? optional,
    required this.name,
  }) : optional = optional ?? none();

  final Option<String> optional;
  final String name;

  static const fromMap = ClassWithOptionMapper.fromMap;
}

Thanks for the solution. It works as intended.


phosphoricons.com offline

https://phosphoricons.com
Other than creating a local directory, is there another place to search/browse the icons?

Our hosting service is in the middle of an outage: https://www.dreamhoststatus.com/
All raw SVG assets can always be found at https://github.com/phosphor-icons/phosphor-icons/tree/master/assets if you need to find anything immediately.

Our icon library is also mirrored on various aggregators, like Iconfinder.

And of course, if you need the real site for any reason, archive.org from 2 days ago.


[BUG] attribute 'android:name' in  tag must be a valid Java class name.

Information

Apktool Version (apktool -version) - 2.7.0
Operating System (Mac, Linux, Windows) - Ubuntu Linux 22.10
APK From? (Playstore, ROM, Other) - Playstore

Stacktrace/Logcat
No stacktrace
Steps to Reproduce

apktool d specific.apk

Frameworks
No.
APK
https://m.apkpure.com/de/dexcom-g7/com.dexcom.g7
Questions to ask before submission

Have you tried apktool d, apktool b without changing anything? -> Yes
If you are trying to install a modified apk, did you resign it? -> Yes
Are you using the latest apktool version? -> Yes

Hi,
i am just doing apktool d x.apk and apktool b ./src -o x.apk --use-aapt2 without changing anything.
It results in following error message:
I: Using Apktool 2.7.0
I: Checking whether sources has changed...
I: Checking whether sources has changed...
I: Checking whether sources has changed...
I: Checking whether sources has changed...
I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
W: /home/selcuk/Development/diakem/dexcom-g7-apk-patcher/dexcom-dev/AndroidManifest.xml:118: error: attribute 'android:name' in <service> tag must be a valid Java class name.
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [/tmp/brut_util_Jar_17111223174942836834772828358268041007.tmp, link, -o, /tmp/APKTOOL1736694331414508062.tmp, --package-id, 127, --min-sdk-version, 29, --target-sdk-version, 31, --version-code, 3906, --version-name, <IP_ADDRESS>06, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, --allow-reserved-package-id, -e, /tmp/APKTOOL14278644911617600319.tmp, -0, arsc, -I, /home/selcuk/.local/share/apktool/framework/1.apk, --manifest, /home/selcuk/Development/diakem/dexcom-g7-apk-patcher/dexcom-dev/AndroidManifest.xml, /home/selcuk/Development/diakem/dexcom-g7-apk-patcher/dexcom-dev/build/resources.zip]

The AndroidManifest at line 118 looks like:
<service android:exported="false" android:isolatedProcess="true" android:name="kz.\u0871᫛" android:process=":zzwzdzmztzpzqzlzizszjzvzbzgzuzxzfzyzrzzwdwewtwpwqwowlwhwiwjwvwgwxwywkdzdwd"/>

Unfortunetaly i have no idea why the filename is looking that weird - is it obfuscation?! Is it fixable?
Kind regards
Selcuk

A small update on this issue:
if skipping decompiling resources "-r" it builds at least but does not solve the initial problem.

Any ideas?

As you discovered. This service has an odd name that limitations on older build tools probably ignored and/or was changed to ignore.
          E: service (line=0)
            A: http://schemas.android.com/apk/res/android:name(0x01010003)="kz.ࡱ᫛" (Raw: "kz.ࡱ᫛")
            A: http://schemas.android.com/apk/res/android:exported(0x01010010)="false" (Raw: "false")
            A: http://schemas.android.com/apk/res/android:process(0x01010011)=":zzwzdzmztzpzqzlzizszjzvzbzgzuzxzfzyzrzzwdwewtwpwqwowlwhwiwjwvwgwxwywkdzdwd" (Raw: ":zzwzdzmztzpzqzlzizszjzvzbzgzuzxzfzyzrzzwdwewtwpwqwowlwhwiwjwvwgwxwywkdzdwd")
            A: http://schemas.android.com/apk/res/android:isolatedProcess(0x010103a9)="true" (Raw: "true")

So I don't think there is anything for Apktool do here. It can't be a perfect bullet for every disassemble/rebuild. This is an easy enough think to remove/change.

Renaming an odd name to something else will give problems when the odd name is also used in reflection or via the java native interface.
As I understood it, apktool is not made to create new apps, but to patch existing apps, so it should be able to handle the particularities of existing apps.


Regarding updated information for dotnet 5.

Page looks pretty good. However this page does not contain latest information for dotnet 5.0

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

ID: 81fe5242-e3b2-6cfe-5308-63fc96272657
Version Independent ID: 1abaaeb7-d7ed-5522-c16f-409f22a074cc
Content: .NET Framework & Windows OS versions
Content Source: docs/framework/migration-guide/versions-and-dependencies.md
Product: dotnet-framework
Technology: dotnet-appcompat
GitHub Login: @gewarren
Microsoft Alias: gewarren

The naming seems to have caused a bit of confusion, but .NET 5 is not the next version of .NET Framework after .NET Framework 4.8. It's really the next version of .NET Core. .NET Framework 4.8 is the last version of .NET Framework, as the page states, but it will continue to get monthly security updates.

I'm going to close the issue. If you still think the article needs to be updated, let us know what you think is missing.


Problem installing date-fns

After git cloning and running yarn, it has a problem with installing date-fns package. Yarn error log report as follows:
Arguments:
  C:\Program Files\nodejs\node.exe C:\Program Files (x86)\Yarn\bin\yarn.js

PATH:
  C:\Python311\Scripts\;C:\Python311\;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Python310\Scripts\;C:\Python310\;C:\Python39\Scripts\;C:\Python39\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\ProgramData\chocolatey\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\dotnet\;C:\ORANT\BIN;C:\Program Files\Microsoft VS Code\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\HashiCorp\Vagrant\bin;C:\ProgramData\nvm;C:\Program Files\nodejs;C:\Program Files (x86)\Yarn\bin\;C:\Program Files\Calibre2\;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk1.8.0_211\bin;C:\Program Files\Tailscale\;C:\Program Files\PowerShell\7\;C:\Program Files\Docker\Docker\resources\bin;C:\Users\abdul\.pyenv\pyenv-win\bin;C:\Users\abdul\.pyenv\pyenv-win\shims;C:\Users\abdul\AppData\Local\Microsoft\WindowsApps;C:\Program Files\heroku\bin;C:\Users\abdul\AppData\Roaming\Python\Python310\Scripts;C:\Program Files\Haulmont\CUBA Studio 2020.2\bin;C:\Users\abdul\.dotnet\tools;C:\Program Files\Oracle\VirtualBox;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3.2\bin;C:\Program Files\Java\jdk-<IP_ADDRESS>;C:\Program Files\OpenSSL-Win64\bin;C:\Program Files\Java\jdk-<IP_ADDRESS>\bin;C:\Program Files\Okteto;C:\Program Files\Carnac;C:\tools\neovim\nvim-win64\bin;C:\Program Files\win32yank-x64\;C:\Users\abdul\AppData\Local\Programs\oh-my-posh\bin;C:\Users\abdul\AppData\Local\BraveSoftware\Brave-Browser\Application;C:\ProgramData\nvm;C:\Program Files\nodejs;C:\Users\abdul\AppData\Local\Yarn\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin;C:\Users\abdul\AppData\Roaming\npm;C:\Users\abdul\.pyenv\pyenv-win\bin;C:\Users\abdul\.pyenv\pyenv-win\shims

Yarn version:
  1.22.19

Node version:
  20.2.0

Platform:
  win32 x64

Trace:
  Error: https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz: ESOCKETTIMEDOUT
      at ClientRequest.<anonymous> (C:\Program Files (x86)\Yarn\lib\cli.js:141517:19)
      at Object.onceWrapper (node:events:625:28)
      at ClientRequest.emit (node:events:511:28)
      at TLSSocket.emitRequestTimeout (node:_http_client:840:9)
      at Object.onceWrapper (node:events:625:28)
      at TLSSocket.emit (node:events:523:35)
      at Socket._onTimeout (node:net:583:8)
      at listOnTimeout (node:internal/timers:573:17)
      at process.processTimers (node:internal/timers:514:7)

npm manifest:
  {
      "name": "navigator-app",
      "version": "0.0.1",
      "private": true,
      "scripts": {
          "android": "react-native run-android",
          "ios": "react-native run-ios",
          "start": "react-native start",
          "pod-reset": "rm -rf ios/Pods/ ios/Podfile.lock && npx pod-install",
          "yarn-reset": "rm -rf node_modules/ package-lock.json yarn.lock && yarn install",
          "full-reset": "yarn yarn-reset && yarn pod-reset && npx jetify",
          "kill-android-build": "./android/gradlew --stop",
          "jetify": "npx jetify",
          "test": "jest",
          "lint": "eslint .",
          "generate-app-icon": "npx app-icon generate -i ./assets/app-icon.png",
          "generate-launch-screen": "npx react-native generate-bootsplash ./assets/splash-screen.png --background-color=#111827 --logo-width=100 --flavor=main"
      },
      "dependencies": {
          "@babel/plugin-proposal-async-generator-functions": "^7.17.12",
          "@fleetbase/sdk": "1.2.5",
          "@fortawesome/free-brands-svg-icons": "^5.15.4",
          "@freakycoder/react-native-bounceable": "^0.2.5",
          "@homee/react-native-mapbox-navigation": "^1.1.0",
          "@react-native-async-storage/async-storage": "^1.15.5",
          "@react-native-community/datetimepicker": "^6.1.2",
          "@react-native-community/masked-view": "^0.1.11",
          "@react-native-community/push-notification-ios": "^1.8.0",
          "@react-native-picker/picker": "^1.16.3",
          "@react-navigation/bottom-tabs": "^6.3.1",
          "@react-navigation/native": "^6.0.10",
          "@react-navigation/stack": "^6.2.1",
          "autoprefixer": "^10.2.6",
          "axios": "^0.21.1",
          "countries-list": "^2.6.1",
          "country-locale-map": "^1.8.0",
          "date-fns": "^2.28.0",
          "i18n-js": "^3.8.0",
          "postcss": "^8.3.5",
          "react": "17.0.2",
          "react-native": "0.66.4",
          "react-native-actions-sheet": "^0.5.4",
          "react-native-animated-radio-button": "^2.0.6",
          "react-native-bootsplash": "^4.0.2",
          "react-native-bouncy-checkbox": "^2.1.2",
          "react-native-calendar-strip": "^2.2.6",
          "react-native-calendars": "^1.1278.0",
          "react-native-camera": "^4.2.1",
          "react-native-collapsible": "^1.6.0",
          "react-native-config": "^1.4.2",
          "react-native-device-info": "^8.1.3",
          "react-native-event-listeners": "^1.0.7",
          "react-native-fast-image": "^8.5.11",
          "react-native-fs": "^2.18.0",
          "react-native-geolocation-service": "^5.3.0-beta.1",
          "react-native-gesture-handler": "^1.10.3",
          "react-native-google-places-autocomplete": "^2.2.0",
          "react-native-image-picker": "^4.4.0",
          "react-native-image-resizer": "^1.4.5",
          "react-native-localize": "^2.1.5",
          "react-native-location": "^2.5.0",
          "react-native-maps": "0.28.0",
          "react-native-maps-directions": "^1.8.0",
          "react-native-mmkv-storage": "^0.6.3",
          "react-native-modal": "^12.0.2",
          "react-native-open-maps": "^0.4.0",
          "react-native-permissions": "^3.0.5",
          "react-native-picker-module": "^2.0.4",
          "react-native-push-notification": "^7.4.0",
          "react-native-qrcode-scanner": "^1.5.5",
          "react-native-reanimated": "^2.2.0",
          "react-native-render-html": "^6.0.5",
          "react-native-safe-area-context": "^3.2.0",
          "react-native-screens": "^3.4.0",
          "react-native-signature-capture": "^0.4.12",
          "react-native-swipe-list-view": "^3.2.9",
          "react-native-toast-message": "^2.1.5",
          "react-native-youtube": "^2.0.2",
          "react-redux": "^7.2.5",
          "socketcluster-client": "^16.0.4",
          "tailwind-rn": "^3.0.1",
          "tailwindcss": "^2.2.4",
          "yarn": "^1.22.17"
      },
      "devDependencies": {
          "@babel/core": "^7.12.9",
          "@babel/runtime": "^7.12.5",
          "@fortawesome/fontawesome-svg-core": "^1.2.35",
          "@fortawesome/free-solid-svg-icons": "^5.15.3",
          "@fortawesome/react-native-fontawesome": "^0.2.6",
          "@react-native-community/eslint-config": "^2.0.0",
          "babel-jest": "^26.6.3",
          "babel-plugin-module-resolver": "^4.1.0",
          "babel-plugin-preval": "^5.0.0",
          "eslint": "7.14.0",
          "inflector-js": "^1.0.1",
          "jest": "^26.6.3",
          "language-name-map": "^0.3.0",
          "locale-emoji": "^0.3.0",
          "metro-react-native-babel-preset": "^0.64.0",
          "react-native-svg": "^12.1.1",
          "react-test-renderer": "17.0.1"
      },
      "jest": {
          "preset": "react-native"
      }
  }

yarn manifest:
  No manifest

Lockfile:
  No lockfile

I deleted the node_modules, and redid the yarn. It installed OK. Closing ticket.


Images clicked in portrait mode are rotated.

When I take a picture from the camera in portrait mode the picture gets rotated. When the picture is taken by the camera in landscape mode the picture doesn't get rotated and looks the way it was clicked.

@kundank191 Thanks for the update. Will take a look.

yup i'm having the same issue. Picture from camera gets rotated and croped on Capture.

Im having the same issue also

I think this bug is an Android framework bug. I was working on retrieving URI after picking the image and I was facing the same issue. The weird part is, it only does that for pictures taken from camera.

Used .cropSquare() as quick solution.

Duplicate of #56


Allow mutually exclusive required options

As this option in picocli, it would be nice to have a way to provide mutually exclusive options :
https://picocli.info/#_mutually_exclusive_options
I will make a PR for this one

Thanks for your interest in your project. We've actually planned on deprecating this for a while, and have ourselves switched to Picocli. We recommend Airline 2 or Picocli as a replacement.

Ok I didn't see this information before 😞
Presto is still using it for its CLI spark launcher. I will recommend them to migrate !
Cheers,

Presto is a legacy Facebook project. All of the creators (including me) and the community have moved on to Trino. We encourage you to do the same!

Presto is one of the most active, very much community-driven, and fueled by Facebook, Uber, Twitter, and many other active Linux foundation members and a widely used, pure open source community. If I am not wrong Trino is a Starburst project.
@rguillome, Thanks for bringing this up. We will take care of your request and you do not have to move to Trino. Stay tuned ✌

Hi @electrum, it's not the best place to discuss between Presto and Trino but since we run on AWS and I thought Athena and EMR (with presto-on-spark) don't rely on trino but on presto. I would be pleased to have an exchange with you. What would be the best place for it ?


Ensure we feed all data to the SSLEngine during handshaking in our tests

Motivation:
Due a bug in our test we may dropped data on the floor which are generated during handshaking (or slightly after). This could lead to corrupt state in the engine itself and so fail tests. This is especially true for TLS1.3 which generates the sessions on the server after the "actual handshake" is done.
Modifications:
Contine with wrap / unwrap until all data was consumed
Result:
Correctly feed all data to the engine during testing

Let me just merge this as its only a test change


Storage abstraction

Description
Introduces a new layer of abstraction between Corpus components (Utterance, Speaker, Conversation, ConvoKitMeta) and concrete data storage. Data storage is now handled by a StorageManager instance variable in the Corpus. StorageManager defines an abstract class interface that can have concrete implementations with varying storage scheme; this pull request implements MemStorageManager which stores all data in in-memory dicts, thus replicating the existing behavior.
Motivation and Context
In previous versions of ConvoKit, Corpus components have stored their data and metadata directly as instance variables. This scheme inherently means that the data must live directly in memory. Plans are currently underway to introduce alternative data backings such as database-backed storage. Introducing an abstraction layer for data storage will allow these alternative data models to be implemented without having to reimplement every Corpus component class from scratch.
How has this been tested?
Besides ensuring that all existing unit tests pass, tests have also been expanded to add new checks for StorageManager integrity after complex operations such as merges.

@jpwchang Can we merge this?


Version 0.0.5

Codecov Report

Merging #2 (3a3c9bf) into master (c17ea0f) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff            @@
##            master        #2   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           20        20
  Lines          408       405    -3
=========================================
- Hits           408       405    -3

see 3 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Remove name from Resource model because is not used

Name field in the Model is not used, this field was here as a friendlier way of visualizing the ID, but our IDs are friendly enough (api_version/kind/ns/name). So we are removing it.

Codecov Report

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

@@            Coverage Diff             @@
##           master     #111      +/-   ##
==========================================
- Coverage   75.47%   75.45%   -0.03%
==========================================
  Files          23       23
  Lines        1056     1055       -1
==========================================
- Hits          797      796       -1
  Misses        201      201
  Partials       58       58

Impacted Files
Coverage Δ

internal/model/resource.go
45.00% <ø> (ø)

internal/storage/fs/fs.go
70.07% <ø> (-0.24%)
: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 3d32447...5a7ef91. Read the comment docs.


Vector2Property to get units?

For PhET-iO, it was requested that some Vector2 Properties could get units. I think it would be awesome to add this. @samreid what do you think? I was just going to use units.js and copy the same sort of pattern as NumberProperty. Then add that to studio.
See https://github.com/phetsims/projectile-motion/issues/219 for the requests for places like:

Units to:
projectileMotion.introScreen.model.measuringTape.basePositionProperty: m
projectileMotion.introScreen.model.measuringTape.tipPositionProperty: m
projectileMotion.introScreen.model.tracer.positionProperty: m

Units are already implemented in Property, not in NumberProperty, so it is possible Vector2Property already has support for units.


merge snapshot and releated logic into 3.4.0

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

Merge #2300 can fix branch develop-3.4.0.


Build working group charter document

Expected Behavior
We should have a wg charter document to describe the overall vision, mission and scope for each wg, and https://github.com/knative/docs/blob/master/community/WORKING-GROUPS.md should point readers to such doc.
I'm opening an issue for each wg to track this need.
Actual Behavior
There is no high level intro for each wg on WORKING-GROUPS page.

/kind doc


Throws error "Results object was not created from this ESLint instance." after eslint executes properly

Description
I setup the GitHub action pretty simply. I'm running Node 22 with pnpm. I checkout the repository, install dependencies, and run your action. That's it.
I'm trying to find a workaround, but the bin paths look correct. I just don't know what else is resolving to the deeply nested pnpm dependency. pnpm which spits out the same location as the eslint-lib-path and eslint-bin-path.
Details
It seems like this line is what's throwing
https://github.com/CatChen/eslint-suggestion-action/blob/e39bfd688787d413f36b354d5b4960e2ac6c6279/src/index.ts#L50C16-L50C38
Configuration
Run CatChen/eslint-suggestion-action@v2
  with:
    request-changes: true
    fail-check: false
    github-token: ***
    directory: ./
    targets: .
    eslint-lib-path: ./node_modules/eslint/lib/api.js
    eslint-bin-path: ./node_modules/.bin/eslint
  env:
    PNPM_HOME: /home/runner/setup-pnpm/node_modules/.bin

Full Logs Below
  Working directory is: /home/runner/work/docs/docs
  Working directory is changed to: /home/runner/work/docs/docs
  Notice: Using ESLint from: /home/runner/work/docs/docs/node_modules/eslint/lib/api.js
  Notice: Using ESLint binary from: ./node_modules/.bin/eslint
  /home/runner/work/docs/docs/node_modules/.bin/eslint . --no-error-on-unmatched-pattern --format json
  [{"filePath":"/home/runner/work/docs/docs/app.config.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/app.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/button/Button.global.vue","messages":[{"ruleId":"vue/require-default-prop","severity":1,"message":"Prop 'variant' requires default value to be set.","line":8,"column":3,"nodeType":"TSPropertySignature","messageId":"missingDefault","endLine":8,"endColumn":38},{"ruleId":"vue/require-default-prop","severity":1,"message":"Prop 'size' requires default value to be set.","line":9,"column":3,"nodeType":"TSPropertySignature","messageId":"missingDefault","endLine":9,"endColumn":3[2](https://github.com/neverendingsupport/docs/actions/runs/11376211642/job/31648300033#step:4:2)},{"ruleId":"vue/require-default-prop","severity":1,"message":"Prop 'class' requires default value to be set.","line":10,"column":[3](https://github.com/neverendingsupport/docs/actions/runs/11376211642/job/31648300033#step:4:3),"nodeType":"TSPropertySignature","messageId":"missingDefault","endLine":10,"endColumn":3[4](https://github.com/neverendingsupport/docs/actions/runs/11376211642/job/31648300033#step:4:4)}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"<script setup lang=\"ts\">\nimport type { HTMLAttributes } from 'vue'\nimport { Primitive, type PrimitiveProps } from 'radix-vue'\nimport { type ButtonVariants, buttonVariants } from '.'\nimport { cn } from '@/lib/utils'\n\ninterface Props extends PrimitiveProps {\n  variant?: ButtonVariants['variant']\n  size?: ButtonVariants['size']\n  class?: HTMLAttributes['class']\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n})\n</script>\n\n<template>\n  <Primitive :as=\"as\" :as-child=\"asChild\" :class=\"cn(buttonVariants({ variant, size }), props.class)\">\n    <slot />\n  </Primitive>\n</template>\n","usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/button/index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/Toast.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/ToastAction.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/ToastClose.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/ToastDescription.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/ToastProvider.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/ToastTitle.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/ToastViewport.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/Toaster.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/index.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/components/ui/toast/use-toast.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/eslint.config.mjs","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/lib/utils.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/nuxt.config.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/pages/404.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/pages/[...slug].vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/pages/index.vue","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/runner/work/docs/docs/tailwind.config.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]}]
  ESLint exit code: 0
  File name: app.config.ts
  File name: app.vue
  File name: components/ui/button/Button.global.vue
    [1] Prop 'variant' requires default value to be set. @ 8
    [1] Prop 'size' requires default value to be set. @ 9
    [1] Prop 'class' requires default value to be set. @ 10
  File name: components/ui/button/index.ts
  File name: components/ui/toast/Toast.vue
  File name: components/ui/toast/ToastAction.vue
  File name: components/ui/toast/ToastClose.vue
  File name: components/ui/toast/ToastDescription.vue
  File name: components/ui/toast/ToastProvider.vue
  File name: components/ui/toast/ToastTitle.vue
  File name: components/ui/toast/ToastViewport.vue
  File name: components/ui/toast/Toaster.vue
  File name: components/ui/toast/index.ts
  File name: components/ui/toast/use-toast.ts
  File name: eslint.config.mjs
  File name: lib/utils.ts
  File name: nuxt.config.ts
  File name: pages/404.vue
  File name: pages/[...slug].vue
  File name: pages/index.vue
  File name: tailwind.config.js

  /home/runner/work/docs/docs/node_modules/.pnpm/eslint@9.12.0_jiti@2.3.3/node_modules/eslint/lib/eslint/eslint.js:399
      return new TypeError("Results object was not created from this ESLint instance.");
             ^
  TypeError: Results object was not created from this ESLint instance.
      at createExtraneousResultsError (/home/runner/work/docs/docs/node_modules/.pnpm/eslint@9.12.0_jiti@2.3.3/node_modules/eslint/lib/eslint/eslint.js:399:12)
      at ESLint.getRulesMetaForResults (/home/runner/work/docs/docs/node_modules/.pnpm/eslint@9.12.0_jiti@2.3.3/node_modules/eslint/lib/eslint/eslint.js:621:27)
      at file:///home/runner/work/_actions/CatChen/eslint-suggestion-action/v2/webpack:/eslint-suggestion-action/src/index.ts:48:1
      at Generator.next (<anonymous>)
      at fulfilled (file:///home/runner/work/_actions/CatChen/eslint-suggestion-action/v2/webpack:/eslint-suggestion-action/src/index.ts:[5](https://github.com/neverendingsupport/docs/actions/runs/11376211642/job/31648300033#step:4:5):1)
      at processTicksAndRejections (node:internal/process/task_queues:95:5)

This is only an issue with v2, which the README references.


Check Mate in Workbook Mode

Could be useful if we have a comment here in Workbook box (sign # for mate) and Notes box. I played 4.Qh5 x below:

When the user runs Evaluate Line maybe then we can add those. Note # checkmate is made so maybe a sign # can be added to Workbook box and Current game box

Fixed


Don't return irrelevant search results if there are no matches

For instance, https://beta.lbry.tv/$/search?q=sadasfshagflkjshg should not return any claims since that text does not match anything in the results.

Done


If a username already exists during registration, the whole form is cleared

This could be rather annoying for new users - having to re-input the form data despite only one field being unacceptable.  The ideal would probably be a real-time check that informs on availability as the user types instead of after submitting the form.
000.zip

Other fields in the signup form also cause the whole form to be cleared upon failed validation (e.g., email field)


[2.3.0] More identification middleware

[x] Request data
[ ] Path

I wanted to add path identification middleware too but that is probably better done just like this:
Route::prefix('/tenant/{tenant}')->group(function () {
    // ...
});

With
Route::bind('tenant', function ($id): Tenant {
    try {
        return tenancy()->find($id);
    } catch (TenantDoesNotExistException $e) {
        abort(404);
    }
});


Remove use of $GLOBALS['HTTP_RAW_POST_DATA']

Fixes #10

Note: Prior to PHP 5.6, a stream opened with php://input could only be read once

This change is a go now that minimum php version is bumped to 5.6
@RobLoach would you rebase and update tests that are dependent on HTTP_RAW_POST_DATA?

Closing in favor of #74, which builds on this one, but updates the tests accordingly as well.


load resolves before models are loaded

If a model has been loaded then load('relationship') resolves sync (next tick). Should be async.

Sorry to necro an old issue, but I'm having a similar issue on Ember Data 3.4.4 and I'm wondering if you figured out what was causing this?

No worries! Could you share some sample code that's causing the issue. I can get a test case coded up.

Hey @mwpastore! Wondering if this is still an issue for you. I'm going to close it for now, but feel free to reopen if it is.


Pub.Dev Packages Template

New checklist template for publishing packages to Pub.Dev

- What I did
Created a new publishing packages checklist template for Pub.Dev
- How I did it
Added to the at_widgets repo under .github directory
- How to verify it
Review the checklist and ensure its created properly and add any comments if you think we missed something
- Description for the changelog
 Initial version template

@sarika01 this seems to reflect the discussion from yesterday, but not merging yet so that you have a chance to review.


chore: clean README.mds & generate changelog

Codecov Report

Merging #57 (5413357) into develop (3e00476) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           develop     #57   +/-   ##
=======================================
  Coverage     5.99%   5.99%
=======================================
  Files           58      58
  Lines         4117    4117
=======================================
  Hits           247     247
  Misses        3859    3859
  Partials        11      11

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 3e00476...5413357. Read the comment docs.


nasa-veda: added access to sentinel-cogs bucket

Output of terraform plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # aws_iam_policy.extra_user_policy["staging"] will be updated in-place
  ~ resource "aws_iam_policy" "extra_user_policy" {
        id          = "arn:aws:iam::444055461661:policy/nasa-veda-staging-extra-user-policy"
        name        = "nasa-veda-staging-extra-user-policy"
      ~ policy      = jsonencode(
          ~ {
              ~ Statement = [
                  ~ {
                      ~ Resource = [
                            # (27 unchanged elements hidden)
                            "arn:aws:s3:::usgs-landsat/*",
                          + "arn:aws:s3:::sentinel-cogs",
                          + "arn:aws:s3:::sentinel-cogs/*",
                        ]
                        # (2 unchanged attributes hidden)
                    },
                    {
                        Action   = "s3:ListAllMyBuckets"
                        Effect   = "Allow"
                        Resource = "*"
                    },
                ]
                # (1 unchanged attribute hidden)
            }
        )
        tags        = {}
        # (5 unchanged attributes hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Applied successfully


Support Debian-based servers.

I would like to use this serverspec gem to test my Ubuntu server.
So, I've implemented following changes.

Extract shell commands from RSpec matchers to new Serverspec::Commands::Redhat class.
Create new Serverspec::Commands::Redhat class to support Debian-based servers.
Add specs for serverspec itself

Released as v2.9.1.


vt partition reporting no overlap

Hi,
I'd like to use vt partition to identify the similarities and differences between variants called by different variant callers on the same set of samples.
However I'm having some issues...

using VT to compare platypus and freebayes
vt partition platypus_chr22_normal_filt.vcf.gz freebayes_chr22_normal_filt.vcf.gz

returns this:

partition v0.5
Options:     input VCF file a   platypus_chr22_normal_filt.vcf.gz
input VCF file b   freebayes_chr22_normal_filt.vcf.gz
A:         663 variants
B:         609 variants
ts/tv  ins/del
A-B        663 [3.04] [1.20]
A&B          0 [-nan] [-nan]
B-A        609 [3.12] [1.50]
of A      0.0%
of B      0.0%
Time elapsed: 0.02s
i.e. there are zero overlaps between variants in the two files
However, using vcftools I can see there are ~565 variant overlaps between variants in the two files:
vcf-isec -f platypus_chr22_normal_filt.vcf.gz freebayes_chr22_normal_filt.vcf.gz | grep -v ^# | wc -l
565
Any thoughts as to why vt partition would not be working? It appears to be an issue with the Freebayes VCF as when I do a comparison with a VCF generated with VarScan2 I get results as expected from vt parition:
vt partition varscan_chr22_normal.vcf platypus_chr22_normal_filt.vcf.gz
partition v0.5
Options:     input VCF file a   varscan_chr22_normal.vcf
input VCF file b   platypus_chr22_normal_filt.vcf.gz
A:         673 variants
B:         663 variants
ts/tv  ins/del
A-B         97 [2.36] [1.00]
A&B        576 [2.93] [1.50]
B-A         87 [3.73] [0.75]
of A     85.6%
of B     86.9%
Time elapsed: 0.02s
Using vt partition +  varscan vcf + freebayes vcf returns 0 overlap hence why I think it is an issue with the freebayes VCF.
I have run vt partition comparing the freebayes vcf to itself and that returns as expected results:
vt partition freebayes_chr22_normal_filt.vcf.gz freebayes_chr22_normal_filt.vcf.gz
partition v0.5
Options:     input VCF file a   freebayes_chr22_normal_filt.vcf.gz
input VCF file b   freebayes_chr22_normal_filt.vcf.gz
A:         609 variants
B:         609 variants
ts/tv  ins/del
A-B          0 [-nan] [-nan]
A&B        609 [3.12] [1.50]
B-A          0 [-nan] [-nan]
of A     100.0%
of B     100.0%
Time elapsed: 0.03s
Commands for generating the Freebayes VCF were this:

call variants
freebayes --genotype-qualities -f $ref --region chr22 -L $bam_list > $out_dir/test_out_freebayes_chr22.vcf
limit to cds regions & sort
vt view -I test.intervals test_out_freebayes_chr22.vcf.gz -o tmp_freebayes_chr22.vcf
vt sort tmp_freebayes_chr22.vcf -o freebayes_chr22.vcf
normalise
vt normalize freebayes_chr22.vcf -r $ref -o freebayes_chr22_normal.vcf
filter
vt view freebayes_chr22_normal.vcf -f "INFO.DP>=30&&QUAL>=20" -o freebayes_chr22_normal_filt.vcf
bgzip freebayes_chr22_normal_filt.vcf
tabix -p vcf freebayes_chr22_normal_filt.vcf.gz

Any help with this much appreciated
BW
Chris

bcftools isec platypus_chr22_normal_filt.vcf.gz freebayes_chr22_normal_filt.vcf.gz -p dir
Also works as expected reporting ~561 shared variants using the freebayes vcf

The contigs in the headers of the vcf files have to be the same for vt partition to work.  Are the headers the same?

Bingo, that did the trick! Thanks very much! Chris

Thanks for reporting this, I'll add a check for that later.

fixed.


Update contribution guidelines.

Includes a starter contributing.md, contributor ladder, code of conduct.

@olivekl Also, please acknowledge that I'm putting you down as doc maintainer on the contributor ladder =) Thanks.

Fixes #238

Why is a parallel Code of Conduct being developed?  I'm fine with a group self-managing and laying out how they want their collaborators/contributors to "level up", but as an OpenSSF project we should not set up a bifurcated CoC for a workgroup or project.  It all should align point to the Foundation's CoC.  If the OSSF has a gap, or could be improved by some additional ideas, let's amend that and not start up something else please.

@SecurityCRob The CoC meant to be a copy/paste. I grabbed it from another OpenSSF repo. I'll double check that it is in fact the same one and add a link.

First of all, I'm very glad to see contribution guidelines getting updated.
I agree with previous comments about the CoC, and would like to add, please do not copy-paste it as this will lead to bit-drift if the original is ever changed. Please simply link to the top-level CoC.
I am concerned about a few aspects of this contributor ladder:

there is not a clear description of the project's decision-making process, but the "expectations" column for the "leader" role appears to indicate that the leader "makes final decisions on all large proposals" and is, thus, essentially a benevolent dictator. As a general rule, I (and I believe this to be true org-wide) prefer consensus-driven models with rotating leadership over time.
the "leader" tier appears to be singular. Is that intentional? If not, I'd like to see this PR outline the path to elect new leaders, define term-length and electorate, etc.
basically, the contributor guide should describe how someone can "climb" the ladder.

Lastly, I would like to point out that the OpenSSF definition of a sandbox project requires it to have at least two maintainers from different organizations, and the proposed set of maintainers does not appear to meet that bar. While we didn't expressly comment on "partial maintainership" (e.g., having someone only be a maintainer on a subset of a project, like docs) in PR112, it was not my intent to support that scenario in the OpenSSF's project progression policy.
Is there someone else within the project who can share the highest tier today?

Thanks for the feedback!

I agree with previous comments about the CoC, and would like to add, please do not copy-paste it as this will lead to bit-drift if the original is ever changed. Please simply link to the top-level CoC.

Updated

there is not a clear description of the project's decision-making process, but the "expectations" column for the "leader" role appears to indicate that the leader "makes final decisions on all large proposals" and is, thus, essentially a benevolent dictator. As a general rule, I (and I believe this to be true org-wide) prefer consensus-driven models with rotating leadership over time.
the "leader" tier appears to be singular. Is that intentional? If not, I'd like to see this PR outline the path to elect new leaders, define term-length and electorate, etc.

Pluralized the titles, added some group/consensus description to the leader(s) role.

basically, the contributor guide should describe how someone can "climb" the ladder.

Elaborated on the promotion process.

Is there someone else within the project who can share the highest tier today?

Not currently, hoping that this ladder will help in this area.

@olivekl Also, please acknowledge that I'm putting you down as doc maintainer on the contributor ladder =) Thanks.

Unfortunately, I don't think I can take on a docs maintainer role. I look forward to contributing when possible, but I don't think I can make a larger commitment at this time.


Opensource_Documentation_Intel_OpenSourceCommunity

Description 📜
I'll provide all the details about Intel Opensource community in documentation format.

Domain of Contribution 📊

[x] Open Source

Documentaion

/assign

We don't need this issue now, Thanks


fix: namespace storage key

What kind of change does this PR introduce?

Fixes #332
See gotrue-js PR for reference (https://github.com/supabase/gotrue-js/pull/303)

Great concept!
However, this could make the storage key a guessing game as its being inferred and as such might introduce a breaking change for unaware users (pulling from localStorage manually).
I'd recommend leaving it up to the user to define it in createClient().
createClient(URL, KEY, {
   // Options
   storageKey: "myproject-sb" // or authStorageKey
})

hey @sannajammeh, it wouldn't be a guessing game because the developer would know what the storage key is based on the project-ref from the supabase url provider when the client is initialised

To me that PR looks good. But - as @sannajammeh says - it is a breaking change. Strictly following semver, this PR would require the release of supabase-js v2.0.0 (breaking change -> new major).
Until v2.0.0 #332 could be partially fixed by letting consumers pass in a custom storageKey to createClient and pass it down to gotrue-js. Basically the same as @kangmingtay already did in supabase/gotrue-js/pull/303. So consumers that have multiple clients on the same domain, can set unique keys for them.
This current PR could always be added in next major and serve as a default, when there is no storageKey set in the createClient options. I'd really like to see namespaced storage keys!
Also an update to a version containing this PR would log out every user session as soon as users get the new code (new key !== old key). And there would eventually also be garbage sessions left in storage under the old key.
This could be solved with a migration. 1. reading session from the old key, 2. if the session is a session for the current authUrl store it under the new key and remove the old key. Although such a migration would be probably a bit over engineered.

Hey @pixtron and @sannajammeh, thanks for the feedback! I've made the necessary changes so you'll be able to pass in a custom storage key in the next major version release.


Cannot add favorite from queue items.

There seems to be no way to add to favourites...?  am I missing something...?
Standard LMS skin has an option to add a radio stream or file to favourites but there appears to be no way to do this in this skin...I have to revert to the default skin for this option.
Otherwise... yes ! this skin is wonderful..!

Use the vertical "..." button, selcet "Add to favourites"

To be honest, I could add 'Add to favorites' to queue - but the station cover would be missing. Adding the favourite from the browse page will correctly add cover.
Would not be possible to add artist/album/genre favorites (unless poluting the menu with too many options).
So, closing.

Fine, your code your choice. :)
I'll go back to the default skin where that option is available.
It might not be 'pretty' but it works and balances form and function.
When you've browsed through the radio lists and added several to the
queue to sample  it is counter-intuitive to not be able to add the one
you like from the queue to favourites.
Instead, having to traverse the browser and find the station just to
add it so it looks pretty is not my idea of fun.
As a user that's more important than function being abrogated in favour of form.
Regards,
bob.
On 3/1/19, CraigD<EMAIL_ADDRESS>wrote:

To be honest, I could add 'Add to favorites' to queue - but the station
cover would be missing. Adding the favourite from the browse page will
correctly add cover.
Would not be possible to add artist/album/genre favorites (unless poluting
the menu with too many options).
So, closing.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/CDrummond/lms-material/issues/85#issuecomment-468257635

I have stated my reasons for not implementing this - none of which have to do with being "pretty". I have looked at the default skin - the only way I can save a favourite from the queue is to press the "M" button, this shows more info on the left, and on there is a heart button. I press that button, and a favourite is added - BUT it has neither the station name nor logo. Now neither may be important to you, but I do not find these being missing to be very user friendly. If I could get the station logo, then I'd quite happily add a "Save to favorites" - I'd even written 1/2 the code. But this missing logo stopped me.
However, I'm glad the default skin works for you. I have no issues with it either - apart from it not working on mobile devices.

"I'd even written 1/2 the code. But this missing logo stopped me."
See, you even thought it a useful addition....until it wouldn't look good...
That's "pretty" in my book.
Still, thanks for considering my request and enjoy your day.
Cheers,
bob.
On 3/1/19, CraigD<EMAIL_ADDRESS>wrote:

I have stated my reasons for not implementing this - none of which have to
do with being "pretty". I have looked at the default skin - the only way I
can save a favourite from the queue is to press the "M" button, this shows
more info on the left, and on there is a heart button. I press that button,
and a favourite is added - BUT it has neither the station name nor logo. Now
neither may be important to you, but I do not find these being missing to be
very user friendly. If I could get the station logo, then I'd quite happily
add a "Save to favorites" - I'd even written 1/2 the code. But this missing
logo stopped me.
However, I'm glad the default skin works for you. I have no issues with it
either - apart from it not working on mobile devices.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/CDrummond/lms-material/issues/85#issuecomment-468388505

Wow! You really have "issues".  If looks are so not important, why even consider using this skin? The default web UI actually looks OK to me, and provides what you want - so please use that and leave me alone.


Increased memory usage and memory leak in Traefik v3

After upgrading to Traefik 3 (v3.0.3) I noticed it uses a lot more memory (70 MB vs 5 GB) than v2 did. And it keeps increasing, indicating a possible memory leak.

Switching traefik container back to 2.11 fixes the issue.
I have 20 routers, 17 services and 12 middlewares (all HTTP). Most from docker container labels.
What version of Traefik are you using?
3.0.3
What is your environment & configuration?
traefik.yml
metrics:
  prometheus:
    entryPoint: metrics
    addEntryPointsLabels: true
    addRoutersLabels: true
    addServicesLabels: true
    buckets:
      - 0.1
      - 0.3
      - 1.2
      - 5.0
global:
  checkNewVersion: true
  sendAnonymousUsage: false
log:
  filePath: /var/log/traefik/traefik.log
  format: json
accessLog:
  filePath: /var/log/traefik/access.log
api:
  dashboard: true
  insecure: false
certificatesResolvers:
  le:
    acme:
      email: ***
      dnsChallenge:
        provider: cloudflare
        delayBeforeCheck: 0
      storage: /acme/acme.json
entryPoints:
  metrics:
    address: :8899
  web:
    address: :80
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https
          permanent: true
  websecure:
    address: :443
    http:
      tls:
        certResolver: le
    forwardedHeaders:
      trustedIPs:
        - ***
ping:
  entryPoint: websecure
providers:
  docker:
    exposedByDefault: false
    endpoint: "unix:///var/run/docker.sock"
  file:
    directory: /etc/traefik
    watch: true

experimental:
  plugins:
    real-ip:
      moduleName: github.com/Paxxs/traefik-get-real-ip
      version: v1.0.3

dynamic.yml
http:
  middlewares:
    test1:
      chain:
        middlewares:
          - compression
          - real-ip-plugin

    test2:
      retry:
        attempts: 1
        initialinterval: 100ms

    redirect-to-www:
      redirectregex:
        regex: ^https://(?:www\.)?(.*)
        replacement: https://www.$${1}

    auth:
      basicAuth:
        users:
          - "***"

    compression:
      compress:
        excludedContentTypes:
          - text/event-stream

    security:
      headers:
        accessControlAllowOriginList:
          - "*"

    real-ip-plugin:
      plugin:
        real-ip:
          Proxy:
            - proxyHeadername: ***
              proxyHeadervalue: ***
              realIP: ***
              OverwriteXFF: true
            - proxyHeadername: "*"
              realIP: ***

  serversTransports:
    insecure:
      insecureSkipVerify: true

docker-compose.yml
networks:
  traefik:
    name: traefik
    enable_ipv6: false
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: <IP_ADDRESS>/24
          gateway: <IP_ADDRESS>

services:
  traefik:
    #image: traefik:v2.11
    image: traefik:latest
    container_name: traefik
    restart: unless-stopped
    networks:
      - traefik
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./config/:/etc/traefik/
      - ${DOCKER_DATA}/traefik/acme:/acme
      - ${DOCKER_DATA}/traefik/logs:/var/log/traefik
    environment:
      BASE_DOMAIN: ${BASE_DOMAIN}
      CF_ZONE_API_TOKEN: ${CF_ZONE_API_TOKEN}
      CLOUDFLARE_DNS_API_TOKEN: ${CF_ZONE_API_TOKEN}
    labels:
      - "traefik.docker.network=traefik"
      - "traefik.enable=true"
      - traefik.http.routers.traefik.rule=Host(`traefik.${BASE_DOMAIN}`)
      - traefik.http.routers.traefik.entrypoints=websecure
      - traefik.http.routers.traefik.service=api@internal

      # Forward auth
      - traefik.http.middlewares.auth-traefik.forwardauth.address=http://authentik-outpost:9000/outpost.goauthentik.io/auth/traefik
      - traefik.http.middlewares.auth-traefik.forwardauth.trustForwardHeader=true
      - traefik.http.routers.traefik.middlewares=security@file, test1@file, auth-traefik@docker
      # Route logout pages
      - traefik.http.routers.traefik-auth.middlewares=security@file, test1@file
      - traefik.http.routers.traefik-auth.rule=Host(`traefik.${BASE_DOMAIN}`) && PathPrefix(`/outpost.goauthentik.io/`)
      - traefik.http.routers.traefik-auth.service=authentik-proxy@docker
      - traefik.http.routers.traefik-auth.entrypoints=websecure
      - traefik.http.routers.traefik-auth.tls.domains[0].main=${BASE_DOMAIN}
      - traefik.http.routers.traefik-auth.tls.domains[0].sans=*.${BASE_DOMAIN}

      - com.centurylinklabs.watchtower.enable=true
      - com.centurylinklabs.watchtower.scope=daily

I checked it on another server where v3.0.3 is running with almost the same configuration but even more routers and services, but it doesn't have that issue. Any recommendations on what to check?

Hello,
Could you share both configuration (static and dynamic) for the 2 use cases?
Could you try to enable the debug endpoints and to export pprof for heap (https://doc.traefik.io/traefik/operations/api/#debug)
enable debug endpoints by adding:
--api.debug

( if you are in an isolated environment, you should add --api.insecure to simplify the router configuration for this debug endpoints ) and then call
curl -o heap.pprof <traefik_ip>:<entrypoint_traefik_port>/debug/pprof/heap

I've been experiencing the same issue after upgrading to v3. Memory usage would just keep increasing until an OOM event. I found that when i set watch: false on the file provider, however, the problem went away. I'm not sure why exactly, as I haven't had a chance to investigate further, but perhaps try setting that to false and see if it helps?

@joekrill does this setting work only if use config file?
I tried this:

but got the error
ERR Cannot start the provider *file.Provider error="error using file configuration provider, neither filename nor directory is defined" ...

Forgot to mention it seems we are also hit with the memory issue ..

This is how it looks before upgrade/after upgrade to v3 (same command args for traefik):

ERR Cannot start the provider *file.Provider error="error using file configuration provider, neither filename nor directory is defined" ...

@deyanp I'm not sure, to be honest. I would try disabling it using the config file, instead. You must also be using the file provider in the first place, so if you don't even have it configured at all this won't matter.

@joekrill , I do not have the file provider configured at all, so I guess your workaround is not applicable to me.
Wondering how to get back to the very stable performance of Traefik v2 ...

@deyanp @Janhouse I also had a memory leak with the v3 version, when I removed the compress middleware the memory leak disappeared. Maybe you can try it.

@deyanp @Janhouse I also had a memory leak with the v3 version, when I removed the compress middleware the memory leak disappeared. Maybe you can try it.

I have the same here

I'm using traefik v3.1.2 and I'm experiencing the same issue with a high memory consumption. No issue in traefik v2.

@deyanp @Janhouse I also had a memory leak with the v3 version, when I removed the compress middleware the memory leak disappeared. Maybe you can try it.

I downgraded to v2 since this already is a big issue and I can't just disable compression, but some other weird things were also happening with v3 and sadly I don't have that much time to hunt bugs. :slightly_smiling_face:
Will check again once this gets fixed.

Seeing the same. Using Traefik 3.1.0.
Larger spike in memory usage with compression enabled.

Seeing same issue with Traefik 3.1.2. Seems related to the new zstd compression feature
Some local test showed high memory usage from the klauspost/compress library.
Documentation seems to suggest avoid creating too many encoders and re-using them instead (see this issue)
Showing nodes accounting for 92.75MB, 81.54% of 113.74MB total
Dropped 140 nodes (cum <= 0.57MB)
Showing top 10 nodes out of 151
      flat  flat%   sum%        cum   cum%
      48MB 42.20% 42.20%       48MB 42.20%  github.com/klauspost/compress/zstd.(*fastBase).ensureHist
    9.58MB  8.42% 50.62%     9.58MB  8.42%  github.com/klauspost/compress/zstd.encoderOptions.encoder

Anyone from Traefik team looking at this? @juliens @nmengin

@aas47 needs more time to analyze.
However, providing a pprof when the issue occurs could definitely help speed things up.

hello, i have  a similar problem memory consumption on traefi v3 @Janhouse , i 've inspecting your traefik configuration and i use Authentik sso , maybe a lead regarding our concern?

I have the same problem, I don't know how to debug.
If a log is needed, I have prometheus and grafana collecting metrics

Thank you all for your input and for sharing your experiences regarding the memory leak. After investigating on my end, I haven't been able to reproduce the memory leak issue with any compression method, including br and zstd. While it's true that compression does use additional memory, in my tests, memory usage returns to normal levels once traffic decreases.
However, there is one notable difference I would like to highlight between Traefik v2 and v3 regarding compression. In v2, only gzip was supported, whereas in v3, we added support for Brotli (br) and Zstandard (zstd). These newer compression algorithms are more memory-intensive compared to gzip. From my tests, I've observed that gzip consumes around 200MB, whereas Brotli and Zstandard can go up to 900MB.
To address this, a PR has been merged that introduces the ability to select which compression algorithms you want to enable. This feature will be available in the next major release, which is expected to be released very soon.
In the meantime, to further investigate this potential memory leak, could someone provide a complete reproducible case? This would greatly help us narrow down the issue. Ideally, here's what we would need:

Full Traefik configuration (including any middleware or specific settings related to compression).
Details about the backends you're using (e.g., type of services, behavior under load).
Traffic generation tool you're using to simulate load (e.g., curl, wrk, or other testing frameworks) and the exact parameters used during the tests.
If possible, any metrics or logs showing memory usage over time.

The more detailed the scenario, the quicker we can identify and resolve the issue.

Hello @Janhouse,
Thank you for your feedback.

traefik v3 ignoring wildcard cert config and leaking all internal subdomains to transparency logs by requesting cert for each separate subdomain, instead of using/updating the wildcard one.

Could you elaborate on the issues you are facing, please?

After some time of using v3 I noticed that my subdomains had appeared in transparency logs, after checking the acme file, I noticed it had acquired certs for each subdomain. I deleted them, started Traefik v3 again and they were requested again. Then I deleted the certs again, downgraded to Traefik v2 and it no longer reqested separate subdomain certs and used the wildcard one.
This was my 3rd or 4th big issue with v3 so I kind of gave up and did not spend more time debugging and reporting. I figured it was a beta quality release and I would not try v3 again for 6 to 12 months, or until thise other issues are solved first. I really like Traefik and v2 is great but tests apparently are missing a lot of scenarios.

seems related to wasm

Same problem here with memory usage, version 3.1.5 seems to fix the problem but it come back with 3.1.6 (despite the improvements reported by changelog).

No plugin used but a few middlewares (compress, basicauth, ratelimit, stripprefix....)

Is this going to be finally fixed ? 3.1.7 (again?) has the problem?? Had to increase the memory limits yesterday for traefik pods to 500Mi due to hitting 300Mi and restarting a couple of times ... this has never been the case for traefik 2.x, it has always been very memory-efficient!
No plugins, some middlewares, including compression ...
# https://doc.traefik.io/traefik/middlewares/http/compress/
# Enable gzip compression
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: compress-response
spec:
  compress: {}

@juliens , I assume traefik 2.x supported only gzip, that is why memory footprint was low, right?
Thinking of enabling only gzip once 3.2 gets released ...

@deyanp
Yes, brotli and zstd were introduce in 3.0. And yes I think the best solution to keep the same memory footprint will be to enable only gzip.

It still looks like a leak, not just a "larger memory footprint". When does it GC then? Never? How much memory has to be allocated?
Does enabling the different compression algos by default make any sense with the increased memory uage?

@Janhouse I wasn’t able to reproduce the leak, but I did reproduce the "larger memory footprint."

Does enabling the different compression algos by default make any sense with the increased memory usage?

Personally, if we change this now, it might feel like a breaking change. Some users may have higher memory limits and prefer to use more memory with all the compression enabled.
For me, the main issue was that we couldn’t configure it, but this will be possible in v3.2.

@Janhouse I understand your concern, but compression is not enabled by default. So, a new Traefik user won’t immediately use 5GB of RAM unless they enable the compression middleware. That said, this is just my personal opinion. I’ll share your feedback with the other maintainers during the next triage and get back to you as soon as possible.

This issue seems to have been fixed in the latest v3.2.0 release.

In v3.2.0, the problem has been optimized, but it is still not at the same level as v2.11.13.

Combined with the above problem analysis and solution, finally through the constraint of "preferential use of Gzip compression algorithm", the same result is obtained in v3.2.0 and v2.11.13. Thank you very much!

@mattbha With v3.2 we recommend to configure the encodings you need thanks to the encodings option.

After testing v3.2 with gzip only, I confirm the issue is solved.

There is still a memory issue with the zstd compression, not sure this issue can really be marked as solved.

We disabled zstd compression in Traefik v3 after we run into memory leak issues.
After upgrading from v2 to v3, memory usage was six times higher than before, so our pods were OOM killed. We gave them more memory and it was fully utilized. After switching back to gzip, everything was back to normal.

Same here; I had the same issue after upgrade from 2.11 to 3.2, memory usage reached up to >5 GB, the nodes were acting crazy, how did they miss this issue with zstd !
I set this to fix it for now as I can't rollback to 2.11 especially after the CRD api changes.
apiVersion: traefik.io/v1alpha1 kind: Middleware metadata:   name: compress   namespace: ****** spec:   compress:     defaultEncoding: gzip     encodings:       - gzip

I find quite a few issues regarding zstd memory usage throughout different projects.
I.e. https://github.com/open-telemetry/opentelemetry-collector/pull/9749
Eventually someone can spot an issue or solution skimming over those.

Hey folk,
We re-open an issue to check if we can provide a better solution on such a topic.


Firefox console warnings when navigating

Most of the time when navigating by clicking links an empty string is being passed to getElementById. I think it is from this line related to scrolling to hashes.
Firefox has a console warning:

I don't see any harm in adding a check for if(hash). Feel free to send a PR ❤

Yeah! Feel free to send a PR :)


Improve "first run" build & run time inside VS

Android application type
.NET Android (net7.0-android, net8.0-android, etc.)
Affected platform version
.NET 7,8,9
Description
When you build an Android project, we have logic that "finds" the property $(RuntimeIdentifier) for the attached device:
https://github.com/xamarin/monodroid/blob/867ef5e9ead84e407419e6a1f5d64a3d6583f6d5/tools/msbuild/Xamarin.Android.Common.Debugging.targets#L451-L475
If you have no device attached, it just builds all 4 $(RuntimeIdentifiers).
Problem
This can slow down the 1st time experience for MAUI on Android, as there would be no emulators running or Android devices attached. This builds 4 architectures for no reason.
Solution 1
The IDE passes $(RuntimeIdentifier) to builds. This could be problematic as right now project defaults are:
<RuntimeIdentifier></RuntimeIdentifier>
<RuntimeIdentifiers>android-arm;android-arm64;android-x86;android-x64</RuntimeIdentifiers>
<AppendRuntimeIdentifierToOutputPath>true</AppendRuntimeIdentifierToOutputPath>
<AppendRuntimeIdentifierToIntermediateOutputPath>true</AppendRuntimeIdentifierToIntermediateOutputPath>

This could have unforseen consequences, in trying to use RID for this. There are many general issues about RIDs in multi-targeted projects:

https://github.com/dotnet/sdk/issues/27253
https://github.com/dotnet/sdk/issues/21877

Solution 2
Invent a new property that would skip the <GetPrimaryCpu/> task and just set appropriate properties instead.
Steps to Reproduce

File > New MAUI project
Run in VS without an emulator running or device attached

Did you find any workaround?
No response
Relevant log output
No response

This scenario is also improved by:

https://github.com/dotnet/android/pull/9179

The current proposal is:

The IDE sets a new value -p:AdbTargetArchitecture
At this time, the emulator is closed, adb devices doesn't report anything
The IDE doesn't have the value for -p:AdbTarget at this time either

So, the build could:

Skip _GetPrimaryCpuAbi if $(AdbTargetArchitecture) is set
Set appropriate values for $(RuntimeIdentifiers), etc.

By the time the IDE Deploys, or runs the Install target:

Build is complete
Emulator is running
Install will be passed -p:AdbTarget as before, and passed -p:AdbTargetArchitecture for completeness (this way _GetPrimaryCpu is skipped).

/cc @dellis1972 @tondat

If the IDE knows what emulator it is going to launch before we do the build then this might work 👍


feat: move snapshot, timestamp, publish to branches

This PR moves the final snapshot, timestamp and publish workflow to the new flow of working on ceremony branches rather than folders.

Updates docs for the orchestrator
Adds a branch option to the reusable snapshot & timestamp workflow. The one that works at main (the automated one) uses main. The one for staging (a workflow dispatch) requires the branch name.
Updates ./scripts/step-4.sh - we no longer need the temporary move, since we operate on the same repository folder. (However, I know that it also worked for the same repository folder, since that's what the automated job performs on, but doing this for simplifying code. @kommendorkapten @haydentherapper this is the only thing I expect that might go wrong during testing).

Summary

Release Note

Documentation

I reckon we need updates to the utils.sh commit_and_push_changes function too? It now creates a new branch, and git add on ceremony then pushes that. It should just open a PR now from the current branch into main?


Adding FizzBuzz program

Thanks for the controbution !
Unfortunately, the same code already exists !
And u can refer those for creating a merge request .

Please refer to readme before contributing.


Add Ollama support

We should have Ollama support.
https://github.com/jmorganca/ollama/blob/main/docs/api.md

@tmc This is so cool! Seems this is a pure go llm runner.

@tmc I am interested in this . /assign @bjwswang

I started toy around here https://github.com/tmc/langchaingo/pull/327

Exciting! Can't wait to use it!

Closed via #327 ! Announced here: https://twitter.com/traviscline/status/1718400239441420391?s=61&t=mAFtj7oJZmLZnH-5yXho9w