Issues with syncing with TinyTinyRSS

While I love Newsb{oat,euter}, syncing updates with my TinyTinyRSS server always has been a lot of pain. A quick overview of what I've noticed so far, in the past few months to years (note that I'm often in a train, i.e. on an unstable connection):

Rendering issues (random chars, articles disappearing, ...) when viewing an article while updating (though this kind of thing has gotten better recently-ish)
Crashes (C++ exceptions) when doing the same (dito)
A lot of HTTP requests being done while syncing, and syncing being very slow on a bad network
Articles getting marked as unread again after having read them
The most frustrating one: Articles randomly getting marked as read again after "peeking" at them and marking them as unread with N.

The first two things have gotten better, and I realize I should submit a better bug report when I see them again - I know this isn't :wink:
As for the rest - I wonder if this just happens because of newsbeuter's sync "model"? I guess when I do N, it immediately sends a request to the server to mark it as unread again, and if that request gets lost, what I mentioned happens?
This has made me wonder: Maybe it'd be better to have some kind of explicit syncing, similar to what e.g. offlineimap does for mails? In other words, I could hit some key to update, then everything happens locally, and when I hit that key again, it tries to synchronize whatever has happened to the server?
If this is infeasible in Newsbeuter itself, I was wondering whether you think it'd make sense to write this as a separate utility, i.e. something that talks to TinyTinyRSS and updates newsbeuter's local files somehow.
I know this isn't really an actionable issue, but I'd love to hear your thoughts on it!

Rendering issues (random chars, articles disappearing, ...) when viewing an article while updating (though this kind of thing has gotten better recently-ish)

This is a general problem, not specific to remote APIs. Seems like it can be solved by changing some low-levels bits that hold feeds and items together; I keep postponing a dive into that part of the code. Maybe after the cache revamp?

Crashes (C++ exceptions) when doing the same (dito)

That's new! Will continue in #17.
The rest, I think, are indeed caused by our simplistic synchronization model. Newsboat doesn't even retry failed requests!
Ideally Newsboat would immediately apply user's actions to local DB and enqueue them to be sent to remote server. The sending itself will happen in a separate thread, and queue will be saved/restored when user quits Newsboat.
Manual syncing seems like a nice first step towards that ideal. Don't see any reason to make it a separate program—I do want this code as part of Newsboat itself.
This will most probably require a rework of our remote api interface (include/remote_api.h), but I'm ready to help out in any way I can. Seems like the only thing we're missing is a volunteer who will do the work. Maybe you're the one? :)

The rest, I think, are indeed caused by our simplistic synchronization model. Newsboat doesn't even retry failed requests!

Yeah, that explains it then! I wonder, what do you think about something like a peek command which opens an article but doesn't mark it as read?

Seems like the only thing we're missing is a volunteer who will do the work. Maybe you're the one? :)

I know that feeling! Probably not anytime soon I'm afraid - I'm more than busy with my own project.

I wonder, what do you think about something like a peek command which opens an article but doesn't mark it as read?

Sorry, I thought I answered this two weeks ago! Obviously I somehow didn't.
My view on such a command is two-fold:

if you're thinking of it just to work around the problem with unread status synchronization, I'd rather work on fixing the synchronization itself.

if you have a use-case for it, please describe it. Why can't it be implemented with a macro (open ; toggle-unread should do it)? What happens if I peek into an article and go to the next one without quitting the article view?

Getting back to the original problem:
The sync model of newsboat<->TTRSS is no real sync model. The flow is more like this: When you refresh your feedlist from TTRSS, currently newsboat will download the latest X (for X \in {60, 200}, depending on your TTRSS version, with 200 for newer versions) articles per feed including the full body using getHeadlines and then merge the results. Depending on the server side and your connection, there is certainly room for improvement and we have a rather slow sync.
Ideas that come to mind to alleviate the problem:
Since version 1.5.6 of the upstream api, there is a since_id operand that requests only articles that were added later than the most recent we have synced. But if we go down that road, synchronisation of read state as well as content updates for older articles have to be reconsidered.
Another note: The way we currently detect upstream feeds is also suboptimal. We currently enumerate all categories, and then request the feeds for each category. Since api-level 5, there is an getFeedTree api function that might allow us to do the whole thing in just one request instead.
I still intend to look into both issues one day, but I cannot give any guarantees :)
To add to the problem: Newsboats current sync model for read-state means that updates to the read state of articles might easily get lost. Whenever we read an article, we simply issue a short api-call to mark the resulting article as read. However, if this fails (e.g. because we are offline at the moment, ...), no further action is taken and read/write state gets out of sync. As far as I can tell, this holds for all remote apis. When discussing the design of the remote api, this should be considered as well.
Finally: Currently, we do funny things like constructing json payloads by string concatenation, which will fail in cases like usernames/passwords containing quotationmarks, etc.pp.. For newsbeuter, there has been an issue discussing switching to a "better" (for sufficient values of better) json library. When a decision is made there, we should consider using that library for constructing our json-payloads.
Ok, this got a bit longer than intended, but I hope this helps.


GNU ls and dircolors not detected by ZIM on Darwin

With the current zim version (41c2232) the utilities module has been changed, specifically the detection of BSD/Darwin.
Homebrew allows to install Coreutils which contain GNU versions of ls and dircolors, which were correctly detected by ZIM if symlinked to /usr/local/bin. With the new versions these aren’t detected anymore and ls stays colourless.
This is not a bug, but a regression in functionality. But would be nice if ZIM could detect a GNU version being available even on BSD systems.

Not exactly related, but I've fixed a bug related to color detection and support in abbeeb9.

@PatTheMav, previous code was not not able to detect GNU coreutils running on a BSD/Darwin OS, but rather was assuming that GNU was present when dircolors was present. That is not always true, since you can have GNU without dircolors (in Termux for example).
But you've got a point. What do you suggest?

Also, as briefly discussed in https://github.com/Eriner/zim/pull/225, we're now just calling dircolors in GNU if there's a ${HOME}/.dir_colors file...

Not exactly related, but I've fixed a bug related to color detection and support in abbeeb9.

@Eriner, I added my comments at the commit and at #125. We can continue the discussion at #125.

For the current issue, what we can do is test the commands with the different parameters.
ls
if ls --color=auto >/dev/null 2>&1; then
  # GNU

elif ls -G >/dev/null 2>&1; then
  # BSD

  # "-G" might also mean something else in other distributions,
  # so not sure if it's reliable to say "-G" mean "Enable colorized output" here
fi

Not sure how a stock OpenBSD would behave to ls -G. We currently have
# stock OpenBSD ls does not support colours at all, but colorls does.
if (( ${+commands[colorls]} )); then
  alias ls='colorls -G'
fi

so we would need to adapt the logic above according to this scenario too.
grep
I think it's worth using the same approach for grep too, as for example Termux uses a version of BusyBox that does not support grep --color=auto.
if echo -n 'zim' | grep --color=auto 'zim' >/dev/null 2>&1; then
  # Supports colour

fi

And the same care with OpenBSD would have to be taken, as we currently have
if [[ ${OSTYPE} == openbsd* ]]; then
  if (( ${+commands[ggrep]} )); then
    alias grep='ggrep --color=auto'
  fi
else
 alias grep='grep --color=auto'
fi

@Eriner, @PatTheMav, thoughts?

@ericbn Sounds good to me - I'm pondering if there's another way that avoids actually calling ls to check for features, e.g. checking if gls exists, as coreutils are using a prefix by default. Alas that prefix is user-changeable, so the check would fail for those users.
Maybe instead of checking for both features, you could do this (works on my local copy like a charm):
  if [[ ${OSTYPE} == (*bsd*|darwin*) ]]; then
    ...
  fi

  if ls --color=auto >/dev/null 2>&1; then
    unset LSCOLORS
    unset GREP_COLOR
    # GNU
    ...
  fi

So we set the ls options for BSD and only if a coreutils ls is available, we set those options (and remove the BSD environment variables to avoid polluting it with useless stuff). Would also keep the amount of conditional branches down.
On another note, what was the reasoning behind removing the ability to use dircolors' default settings? I don't feel the need to export the defaults into a separate file on all my machines just to make it exist, if evaluating the default output of dircolors achieves the same.

I think testing the commands is a more general (and IMHO more elegant) solution. BUT it makes the shell initialization slower.
I did my suggested changes at https://github.com/ericbn/zim/commit/d860aa4 and tested in my machine:
original code
$ bench "zsh -i -c exit"
benchmarking zsh -i -c exit
time                 269.5 ms   (263.2 ms .. 274.7 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 270.7 ms   (268.6 ms .. 272.5 ms)
std dev              2.194 ms   (835.1 μs .. 2.884 ms)
variance introduced by outliers: 16% (moderately inflated)

changed code
$ bench "zsh -i -c exit"
benchmarking zsh -i -c exit
time                 285.7 ms   (279.1 ms .. 295.3 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 280.9 ms   (279.2 ms .. 283.7 ms)
std dev              2.693 ms   (345.6 μs .. 3.443 ms)
variance introduced by outliers: 16% (moderately inflated)

@PatTheMav, as for your side comment:

On another note, what was the reasoning behind removing the ability to use dircolors' default settings? I don't feel the need to export the defaults into a separate file on all my machines just to make it exist, if evaluating the default output of dircolors achieves the same.

We're using "our" colors instead of the dircolors' default ones. See #225. If you want to stick with defaults, I hope zim can now provide better defaults than dircolors, so you don't need to worry.

@ericbn - got it, that change must’ve flown under the radar for me (I update my shell environment every day and it just calls zmanage updateto update the environment). Guess I’ll have to update/rerun the setup for ZIM to get the dircolors saved.
As for performance, that was the reason why I was trying to find a way to detect installed coreutils on BSD systems with its ls being available at a higher priority. Haven’t found any surefire way yet though..

I checked out the dircolors change now - so if I want to use Zim’s colours but also keep the file type colouring, I’d have to merge your settings with the default ones into a custom dir_colors file? Fair enough, can package that in my Dotfiles.
As for the ls issue, the best way in terms of performance could be a config switch in zimrc, telling ZIM that coreutils are available and used instead of BSDs own versions (so you can assume ls and dircolors are of the GNU flavour).

Reverted most of the changes. Kept the usage of "our" colors on top of the dircolors default ones though.
As a note: Current code only works for ls in a GNU with coreutils installed, and only with a grep that supports colors (not a Busybox one, for example). I think requiring coreutils in GNU and a complete grep is fair enough.

Fair enough - thank you for your efforts! 👍🏻

You can still use the dircolors default values by adding
eval "$(dircolors --sh)"

to your .zshrc file, either before of after sourcing zim's init.zsh script.

@ericbn to follow up on using the defaults, you can also run:
dircolors -p > ~/.dir_colors

to dump the defaults into a config. This might be worth noting somewhere, perhaps the readme?

As I'm using a base16-based theme for my Terminal.app, I've found a .dir_colors file based on those - works like a charm.


vendor: Pick up cilium v1.9.16

Release note: https://github.com/cilium/cilium/releases/tag/v1.9.16
Signed-off-by: Michi Mutsuzaki<EMAIL_ADDRESS>

@michi-covalent it needs a go mod tidy && go mod vendor apparently


Set particular options to be save in the config file using initconfig

As far as I can see the initconfig command save all the options inside a config file. Is there a way for specifying which particular options I want to save in the config?
Maybe the syntax could be something like
config_options_to_save 'blah'

Consolidated into #305


Use singleton-like Meta to store global state

Closes #34.

This release is NOT backwards compatable with v0.1.4. Specifically, in order
to initialize a session with postgresql, you no longer do
os.environ['SNORKELDB'] = 'postgres://localhost:5432/' + DBNAME
from fonduer import SnorkelSession
session = SnorkelSession()

which had the side-effects of manipulating your database tables on import (or creating a snorkel.db file if you forgot to set the environment variable). Now, you use the Meta class to initialize your session:
from fonduer import Meta
session = Meta.init("postgres://localhost:5432/" + DBNAME).SnorkelSession()

No side-effects occur until Meta is initialized.


build: do not use deprecated dependency

Also, it is never used afaik

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


CI: macos-11 [skip azp][skip circle]

The new error is an issue with the toolchain. I'll update a new build tomorrow morning.

@isuruf, the delocate step still fails:
  ERROR:delocate.libsana:
  /Users/idf2/miniforge/envs/gfortran-darwin-x86_64-native/lib/libgcc_s.1.1.dylib not found:
    Needed by: /opt/gfortran-darwin-x86_64-native/lib/libgcc_s.1.dylib
  ERROR:delocate.libsana:
  /Users/idf2/miniforge/envs/gfortran-darwin-x86_64-native/lib/libgcc_s.1.1.dylib not found:
    Needed by: /opt/gfortran-darwin-x86_64-native/lib/libgcc_s.1.dylib
  ERROR:delocate.libsana:/Users/idf2/miniforge/envs/gfortran-darwin-x86_64-native/lib/libgcc_s.1.1.dylib not found, requested by /opt/gfortran-darwin-x86_64-native/lib/libgcc_s.1.dylib

I'm still getting the other @rpath errors, along the lines of:
  ERROR:delocate.libsana:
  @rpath/libgfortran.5.dylib not found:
    Needed by: /private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/tmp__4m2a38/wheel/scipy/optimize/_cobyla.cpython-310-darwin.so
    Search path:

@isuruf, I think there's an issue with the gfortran cross compiler from that script as well.
In a different job I cross compile scipy for cp38-macosx_arm64. i.e. the host is x86_64 and the target is arm64.
I install the cross compiler with install_arm64_cross_gfortran. I then try and compile a test program, but the executable has the wrong architecture:
https://github.com/andyfaff/scipy/actions/runs/3410387310/jobs/5673291146#step:6:1059
When I supply the -arch arm64 flag the compiler complains: gfortran: error: this compiler does not support arm64
There is output further on in that run that indicates another problem:
-----
Compiler stderr:
/opt/gfortran-darwin-arm64-cross/bin/../libexec/gcc/x86_64-apple-darwin13.4.0/11.3.0/cc1: line 18: /Users/idf2/miniforge/envs/gfortran-darwin-arm64-cross/libexec/gcc/x86_64-apple-darwin13.4.0/11.3.0/cc1.bin: No such file or directory

-----

@andyfaff, can you try with https://github.com/MacPython/gfortran-install/pull/11/commits/b665c16e188be1ea551642d9fc678413db052eec ?

I'm not sure if there's still an issue with the cross compiler. gfortran-darwin-arm64-cross/lib contains libquadmath.dylib, but libgfortran.5.dylib is found in gfortran-darwin-arm64-cross 2/lib/gcc/arm64-apple-darwin20.0.0/11.3.0.
Should all the dylibs be located in the same lib directory?

Yes, I'll fix that and upload a new build.

Can you try https://github.com/MacPython/gfortran-install/pull/11/commits/d45403b708f751074ef64d19eebe58a30dca3851?

@isuruf the arm-cross compiler from https://github.com/MacPython/gfortran-install/commit/d45403b708f751074ef64d19eebe58a30dca3851 seems to work in
https://github.com/andyfaff/scipy/pull/38/commits/d20a1908717f06350e7ef3e14eb71e067e589c7b. I can't comment on whether there are other issues, but the build+delocate works.


Added self signed jwt service account credentials

Initial self signed jwt credential support #252.  Here is my thinking with this initial API:
-SelfSignedJWTCredentials class should not be on the OAuth2Client inheritance hierarchy, there are many oauth2 specific methods (like refresh) that don't apply to self signed credentials.
-SelfSignedJWTCredentials can be placed in the service_account module,  SelfSignedJWTCredentials are highly coupled with service account credentials, self signed jwts can only be signed using service account credentials
-get_access_token() can be the external interface for generating tokens, it is consistent with the GoogleCredentials API, and there is nothing OAuth2 specific about the naming.
-The fields contained in the JWT are Google specific as far as I can tell, so this should be considered a Google specific class

@kpayson64 Thanks for contributing this! :) 👍

@jtattermusch

@anthmgoogle @dhermes @nathanielmanistaatgoogle  Care to chime in on API and naming conventions here?
I'd personally prefer this API (which closely matches pyjwt's):
service_account = oauth2client.service_account.ServiceAccount.from_json_keyfile_name('service-account.json')
jwt = oauth2client.jwt.encode(service_account)

Additional claims:
jwt = oauth2client.jwt.encode(service_account, {'sub'<EMAIL_ADDRESS>
@nathanielmanistaatgoogle would probably be happy to see less classes. :D

We could also expose this as ServiceAccount.encode_jwt, since a lot of this logic is already in ServiceAccount._generate_assertion. ¯_(ツ)_/¯

@jonparrott That misses the mark. These credentials need to be able to be used as a swap-in replacement for credentials.

@dhermes interesting. Can you expand more on that? JWTs are not credentials, they are signed claims that can be used for authorization. The service account private key is the credential.

Is the desire to do something like this?
credentials = JwtCredentials(service_account_credentials)
credentials.authorize(http)
# http now sends the JWT in the Authorization header

If so, I don't see how this is distinct from just making the existing ServiceAccount accept a claims arg in its constructor.

For APIs like Cloud Bigtable, the JWT can be used as the access token (so-called scopless credentials). Hence, we want a class to allow this, and maybe have some built-in retry behavior which regenerates the local token (this PR doesn't quite get there either).

@jonparrott Sorry we posted at essentially the same moment.
The difference is that ServiceAccountCredentials uses the JWT to exchange for a bearer token (which requires a round trip).

Ah, I see, I should get more sleep before discussing auth.
So, I think I'd prefer "both". We should separate the logic of generating a JWT vs using the jwt.
I suggest we:

Add oauth2client.jwt.encode that accepts a signer and set of claims and returns a JWT.
Make this new class use it to generate its access token.
Make ServiceAccount use it to generate its assertion.

This covers all use-cases well and prevents duplicate code.

@jonparrott
I think the oauth2client.jwt.encode you are suggesting is essentially  crypt.make_signed_jwt.
@dhermes
Do we want the new class to implement client.Credentials?  Could you be more specific with the functionality that is missing?

Okay, after chatting with @jboeuf the API should shake out like this:
class JWTAccessCredentials(object):
    def __init__(self, service_account, additional_claims=None)
         pass

    def get_access_token(self, additional_claims=None)
          pass

    def create_with_claims(claims):
          pass

This allows for it to satisfy the oauth2client.client.Credentials interface as well as work for gRPC by allowing gRPC to explicitly call get_access_token(additional_claims={'aud': service_url}) without having to create tons of instances.

This latest commit has the new API.  Also, I have made JWTAccessCredentials inherit GoogleCredentials  .  I'm holding off on unit tests/documentation until I have an API nailed down.

API surface looks good, I completed a round of reviews. Please ping when you're ready for another review.
Side note: your file seems to have mixed indentation, please use 4 spaces.

@jonparrott
I've updated the pr from the feedback.

This mostly looks good to me, although I would really like to see the docstrings fleshed out.
Once my comments are addressed, feel free to ping @nathanielmanistaatgoogle to do the final review.

Let me caveat that: don't ping @nathanielmanistaatgoogle until you've written tests as well, because that'll be the first thing he asks for. ;)

I had a discussion with @jtattermusch, and another goal of this change is "Usable Auth".  The idea is that  when GoogleCredentials.get_application_default() is called, self signed jwt credentials will be used if no scope is specified.  This behavior is consistent with other google auth libraries.
I've attempted to do this is a fashion that minimally pollutes the API, and part of that includes having JWTAccessCredentials extend GoogleCredentials again.

Before I write doc strings/unit tests, could @nathanielmanistaatgoogle and @jtattermusch take a look over the API?

I've implemented the feedback and added unit tests.
One of the main changes is that JWTAccessCredentials now inherits ServiceAccountCredentials.  It is a natural extension, and makes it more reasonable to hide this class if we so choose.

@jboeuf
I'm looking to bootstrap an OpenAPI JSON/REST API that supports JWT authentication on GCE to have as a proof of concept for the httplib2 use case of this library.  Is there any guides/examples you are aware of?

@kpayson64 as an aside, you should probably avoid writing new stuff with httplib2 unless absolutely necessary.

@jonparrott
Is the following use case of this library deprecated?
http = httplib2.Http()
creds.authorize(http)

If so, is there any expected use case of JWT tokens outside of gRPC I should consider?

@kpayson64 no, but in general we want to move away from httplib2 (or rather, support urllib3) as soon as possible. If you're writing a net-new project and want thread-safety and proper https, urllib3 is a much more sane way to go. see #128 and gcloud-python#1364.

I think I really like the API change in the current draft - we're adding one new method to one existing class and that's it for changes to the public surface area of the entire library?
Is this the shape this change should have going forward or are there still design pressures pushing this in the direction of "no, a new public class is the right thing for this feature"?

@jonparrott
Sounds good, I can try to produce a POC using urllib3.
A side note, AFAICT credentials are not thread safe, and I assumed this was because the underlying httplib2 is not thread safe.  Should the new code be thread safe?

Credentials are thread-safe as long as their storage is thread-safe.
On Thu, May 5, 2016 at 11:24 AM kpayson64<EMAIL_ADDRESS>wrote:

@jonparrott https://github.com/jonparrott
Sounds good, I can try to produce a POC using urllib3.
A side note, AFAICT credentials are not thread safe, and I assumed this
was because the underlying httplib2 is not thread safe. Should the new code
be thread safe?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/google/oauth2client/pull/503#issuecomment-217233473

It seems like we have converged on an API.  I think the one unresolved issue is if JWTAccessCredentials should be public.  It should be a trivial change to make JWTAccessCredentials public in the future, so I think we should leave it private for now.
If we are comfortable with this API, could @jonparrott @nathanielmanistaatgoogle do a final review?

I have addressed the feedback.

Change content looks good!
Please squash commits.
Please compose a commit message with at least a paragraph explaining what's going on. Is this a Google-proprietary feature? Is this a Google-specific feature? Is there a publicly available open and unencumbered standard being implemented in this change that you can cite and to which you can link?

I've squashed the commits and updated the commit message.

I'm satisfied; @dhermes, @jonparrott, and @jboeuf: please either also make a final review or explicitly decline to do so?

I decline :grinning: I trust you

I'm satisfied.
On Wed, May 18, 2016, 8:26 AM Danny Hermes<EMAIL_ADDRESS>wrote:

I decline [image: :grinning:] I trust you
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/google/oauth2client/pull/503#issuecomment-220062800

LGTM. Thanks! Please CC me on the PR that will do the integration with grpc.

Woohoo!

@jonparrott
What is the process for releasing a new version?

I probably won't have time to cut a release this week. @nathanielmanistaatgoogle may be able to.

I'd like to see #506 merged before we release.

Can you make _JWTAccessCredentials public? Or how else would/show I do something like below. Please also not the hack to set 'aud'.
from oauth2client.service_account import _JWTAccessCredentials as JWTAccessCredentials
import httplib2

httplib2.debuglevel = 1

credentials = JWTAccessCredentials.from_json_keyfile_name(
    '/path/to/service-account-credentials.json', scopes=['https://www.googleapis.com/auth/datastore'])
# the class method does not pass through he kwargs to __init__()
# this needs to match the service name in the api-config:
credentials._kwargs['aud'] = 'myapi.endpoints.myproject.cloud.goog'

http_auth = credentials.authorize(httplib2.Http(disable_ssl_certificate_validation=True))
resp, content = http_auth.request('https://example.com/v1/myapi', 'GET')


Add Okta intel module.

@achantavy addressed feedback. Please approve

Looks like the CI linter is complaining.  To fix, rerun make test_lint (or just run make to rerun the whole suite if that doesn't work).

@ecdavis Mind doing another pass when free?


tier push URL output link returns 'Price Not Found' in Stripe Dashboard

What is the issue?
I thought that since the 'tier push' command ran successfully (and outputted a Stripe Dashboard URL) that when I visited the URL I should have been shown the plan.
Instead, the URL when visited told me: "Price Not Found"
Steps to reproduce

Used Model Builder to create a pricing.json:

johngannon@Johns-MacBook-Pro Downloads % cat pricing.json {   "plans": {     "plan:regular@4": {       "title": "Yearly Subscription",       "interval": "@yearly",       "features": {         "feature:emailblast": {           "title": "Email Blast",           "base": 100000         }       }     }   } }%

Pushed the plan (operation looked successful, based on the output)

johngannon@Johns-MacBook-Pro Downloads % tier push pricing.json ok	plan:regular@4	feature:emailblast	https://dashboard.stripe.com/acct_102xfJ2VniGt33G4/prices/price_1Mbcw62VniGt33G4QxG2CWBh	[created]

Attempted to visit the provided URL from Step 3, and received a 'price not found' message in my Stripe Dashboard.  I was not expecting to receive that message given the 'tier pull' seemed to work and I was provided a link to visit.

I recorded a short Loom (1min) video of these steps as I executed them (slightly different pricing.json file in that I changed the word 'regular' to 'foo'). Video is linked here.
Are there any recent changes that introduced the issue?
No response
OS
macOS
OS version
Ventura 13.2
Tier version
0.7.1

@jgannon Stripe will bit error if you do not have access to a resource you do not have access to and does not make it super obvious which account you're logged into when attempting to view the resource.
Do you mind confirming the account Tier is connected to (see "tier whoami") is the one in the dashboard you're looking at (see top left account icon)

Would you also mind trying hitting entering "Developer" mode in Stripe. I didn't see in your loom that the --live flag was used, and so Tier used the test mode to push to.

Thanks for the followup @bmizerany -- here's what I see from the tier whoami output:
johngannon@Johns-MacBook-Pro Downloads % tier whoami
ID:         acct_102xfJ2VniGt33G4
KeySource:  /Users/johngannon/.config/tier/config.json
Isolated:   false
Email:
Created:    2013-11-17T23:49:55-05:00
URL:        https://dashboard.stripe.com/acct_102xfJ2VniGt33G4

And here's a screenshot from Stripe, which shows the ID matches:

I flipped on Test Mode in Stripe Dashboard and then ran the push again, with a new pricing.json:
johngannon@Johns-MacBook-Pro Downloads % tier push pricing.json
ok	plan:wedsmorning@5	feature:newemailblast	https://dashboard.stripe.com/acct_102xfJ2VniGt33G4/prices/price_1MblvZ2VniGt33G4giceDWxI	[created]
johngannon@Johns-MacBook-Pro Downloads % cat pricing.json
{
  "plans": {
    "plan:wedsmorning@5": {
      "title": "Weds Subscription",
      "interval": "@yearly",
      "features": {
        "feature:newemailblast": {
          "title": "New Email Blast",
          "base": 100000
        }
      }
    }
  }
}

When I look at Stripe logs I see that the POST returned 200 this morning (right now) and also last night, when I originally filed the issue (and before I flipped on Test Mode). Here's what I saw in the logs just now. I've highlighted what I believe to be the successful results of the push:

Still getting the price not found page, though, when I try to visit it:

Thank you for the detailed response! It has not gone unnoticed. I can look into this tomorrow and will get back to you.

@jgannon If you click on the "Products" tab, do you see your product?

Still getting the price not found page, though, when I try to visit it:

It looks like this is in live mode. I don't see /test/ in the URL

@jgannon Any chance you've had a chance to check if changing the URL to a test URL helps?

@jgannon I finally saw the issue and have a fix incoming! It should land in main shortly.


lodash flatMap internals are affecting the cascade in Tailwind's output

Discovered this after digging into #1013
TL;DR Tailwind probably needs to avoid _.flatMap to avoid unexpected results in the cascade
What's the problem?
Right now, .border comes at the bottom of the border cascade, so it overrides .border-2 etc.
https://github.com/tailwindcss/tailwindcss/blob/beeaa65e4f1d046823766ca8f2410e14e12a205f/__tests__/fixtures/tailwind-output.css#L3145-L3167
This is inconsistent with the behavior of borderRadius and boxShadow, two other plugins that can use the default keyword to produce classes like .rounded and .shadow.
https://github.com/tailwindcss/tailwindcss/blob/beeaa65e4f1d046823766ca8f2410e14e12a205f/__tests__/fixtures/tailwind-output.css#L5815-L5825
https://github.com/tailwindcss/tailwindcss/blob/beeaa65e4f1d046823766ca8f2410e14e12a205f/__tests__/fixtures/tailwind-output.css#L2941-L2951
Why is this happening?
Tailwind's borderWidth plugin uses lodash's flatMap function, which uses lodash's identity utility internally.
https://github.com/tailwindcss/tailwindcss/blob/beeaa65e4f1d046823766ca8f2410e14e12a205f/src/plugins/borderWidth.js#L18-L20
I found out that when you use lodash identity on an object that has any keys that can be coerced to numbers (e.g. '1'), it will coerce those keys to numbers and sort them ascending:
const borderWidth = {
  default: '1px',
  '0': '0',
  '2': '2px',
  '4': '4px',
  '8': '8px',
}

console.log(_.identity(borderWidth))
// { 0: '0', 2: '2px', 4: '4px', 8: '8px', default: '1px' }

Therefore, when Tailwind iterates through the config object to generate CSS classes, default is the last key, and that translates to the .border class showing up last as seen above.
This same bug affects the margin and padding plugins, which reference the spacing key. According to the default config's spacing key, .m-px and .p-px should show up first in the CSS:
https://github.com/tailwindcss/tailwindcss/blob/beeaa65e4f1d046823766ca8f2410e14e12a205f/stubs/defaultConfig.stub.js#L129-L131
But, since margin and padding also use _.flatMap and in turn _.identity, .m-px and .p-px are at the bottom of the cascade:
https://github.com/tailwindcss/tailwindcss/blob/beeaa65e4f1d046823766ca8f2410e14e12a205f/__tests__/fixtures/tailwind-output.css#L3847-L3861
Which plugins are affected?

borderWidth
borderRadius
container
inset
margin
padding

This is actually just JavaScript, numeric keys are always automatically sorted first when an object is created:

In general Tailwind makes no guarantees about what should happen when you try to use two utility classes that affect the same property, you should really just only ever apply one class instead of hoping one overrides another in exactly the way that would be convenient for whatever situation you are in.
Nothing to really fix here IMO, if anything we could re-order the keys in the default config file to match the order JavaScript is going to coerce the items into so it's at least less surprising.

I think the most bulletproof solution would be to allow users to pass Map-like arrays in the config file if they want to enforce a certain cascade:
// tailwind.config.js
module.exports = {
  borderWidth: {
    ["default", "1px"],
    ["0", "0"],
    ["2", "2px"],
    ["4", "4px"],
    ["8", "8px],
  }
}

From there, we'd have to add some logic to the resolveConfig util to handle maps in addition to closures and objects.
This feels pretty nifty, but it raises the question of what the theme function would return.
One solution is for theme to resolve closures and just return the result, i.e. a map-like array or an object. whichever was passed by the user in their config. The downside is that every plugin, both core and custom, would have to add logic to deal with each data format.
Another solution is for theme to always return map-like arrays or even actual constructed Maps. Would make it simpler to write plugins, but much more annoying in config files—let's say you don't care about the cascade, and you're just trying to spread theme('myPlugin') into an object.
I think the best of both worlds is to allow the theme function to take another argument, e.g. a boolean flag indicating whether or not it should return a map (defaults to false and returns an object, even if the user passed a map-like array). If done carefully I think this solution would not be a breaking change and would give the end user full control over their cascade.

I think this would add a lot of unnecessary complexity honestly, and would rather just continue to discourage people from using two classes that target the same property at the same time.
Really appreciate you thinking the problem through though 👍🏻


improve yum workflow

When #82 is in place, we finally don't need to wrap yum calls with printf ... >/etc/yum.repos.d/.... I think we should improve the workflow to:

Add instruction after FROM/MAINTAINER:

either ADD *.repo /etc/yum.repos.d/
or RUN wget -O /etc/yum.repos.d/ http://.../*.repo

maintain yum cache and metadata during during build -- meaning, not interfering with present RUN.*yum.* calls
Add instruction at the end of dockerfile which erases all downloaded yum repos

After the final image is squashed, no build artifacts will leak.

ADD https://.../*.repo /etc/yum.repos.d/ was another idea, but it doesn't support authentication.
The current solution I have is to go with
RUN wget -O '/etc/yum.repos.d/repo1.repo' http://.../repo1.repo

after FROM/MAINTAINER, and
RUN rm -f '/etc/yum.repos.d/repo1.repo' ...

at the very end.

Looking at other plugins, maybe it should put the RUN rm -f line before any CMD line it sees?

maybe it should put the RUN rm -f line before any CMD line it sees?

Indeed. It shouldn't be much of a problem even if last instruction was the rm -rf call. Also, `ENTRYPOINT

I've updated it to use rm before CMD / ENTRYPOINT / EOF. Still uses wget at the moment.

OK, new commit using ADD instead. Think it's better?

Looks great! Let's give it a go.


Support async in template methods to indicate promise return value

Suggestion

🔍 Search Terms

template async method
✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
I would like to be able to use async in template definitions to indicate methods that return promises.
📃 Motivating Example
The following code is legal:
interface ITest {
  myAsyncFunction(): Promise<boolean>;
}

class Test implements ITest {
    async myAsyncFunction() {
        return true;
    }
}

But if the language supported it, it would be more consistent and convenient to write:
interface ITest {
  async myAsyncFunction(): boolean;
}

💻 Use Cases

There's a clear workaround here, but I think allowing async in templates to indicate Promise return values would be more intuitive than disallowing it.

Essentially a duplicate of #47630.

Our view of this is that async is an implementation modifier, the same way that parameter destructuring is -- from the outside, a caller has no legitimate reason to care if you wrote an async function or a regular function returning a Promise<T>. Type declarations in all places reflect that [non-]distinction


Add python 3.9 and 3.10 to tox.ini, recover doctest in tox. Move igno…

Cleaned up tox.ini and moved ignore-glob to pytest.ini

Superseded in 261591eff6b83ec7d59d9ad1ddc4d7abd0b8b831


Support Assume-Role with web identity

fix for #26097

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Run Java_Amazon-Web-Services2_IO_Direct PreCommit

This change works for batch pipelines which can be completed within id token expiration. But this may not work for long batch or streaming pipelines.

That's a good point, please add a comment to the example in AwsOptions 👍

I added a comment.

I confirmed that my pipeline runs as expected with this fix.


feat: pagination component

https://autoricardo.atlassian.net/browse/VSST-632
TODO:

[x] unit tests
[ ] align styles with designer

Motivation and context
Pagination component
PS: Styles still to be aligned with designer.
Before
N/A
After

How to test
https://boyarskiy-pagination.components-pkg.branch.autoscout24.ch/?path=/story/components-navigation-pagination--pagination

I think the sibling count is behaving unexpectedly. If I increase it by one, 2 numbers are added. Is this wanted? Also, could we try to make that the navigation buttons are not moving around when dots are added/removed? Maybe a fixed width or something like that

I think the sibling count is behaving unexpectedly. If I increase it by one, 2 numbers are added. Is this wanted? Also, could we try to make that the navigation buttons not moving around when dots are added/removed? Maybe a fixed width or something like that

Sibling count this is a count of siblings around current page, when you increase it by one, then two numbers will be added for both sides of current page.

We might not need it to have configured... Just to set it to have 1 siblings by default. What do you think @talamcol?

yes let's use sensible default values and remove the prop. We can still add it if needed. Maybe you would want different values for mobile/desktop?

We might not need it to have configured... Just to set it to have 1 siblings by default. What do you think @talamcol?

yes let's use sensible default values and remove the prop. We can still add it if needed. Maybe you would want different values for mobile/desktop?

Will check with designer if we want it different for mobile


refactor: combine files

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

146 of 182 (80.22%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.4%) to 89.177%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

writeConfigFile.ts
128
164
78.05%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
330

Relevant Lines:
366

💛  - Coveralls


fix: support hashbangs in commonjs modules

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[Refactor] Remove unused Bun availability check in CLI bin file

#4040  👈
main

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

Join @jnsdls and the rest of your teammates on  Graphite


Feature/scrollable dismissible

You can test the behavior by depending on the feature_branch or on the demo website (on the mobile or in the desktop with developers options opened)
Depending on the ScrollPhysics the behavior is different and I'm not sure what to do about that

Android (ClampingScrollPhysics)
iOS (BouncingScrollPhysics)

LGTM 🤘


Can't build Win64 due to inline assembly

EDIT: Sorry, just realised this is a modified version of gorilla audio, github doesn't have a way of deleting issues.
The title says it all, I set CMAKE to VS2017 Win64 and got a load of errors claiming __asm wasn't supported in the current architecture.

I will close this but tell me if this version works for you? I remember having similar problem and I think I have just updated upstream version of libvorbis or libogg and it worked fine. If you give me more output from compiler we can try to fix it together.

No, didn't work. The issues are with libogg.
They're pretty much all just:error C4235: nonstandard extension used: '__asm' keyword not supported on this architecture

Trie to look into this but there is no __asm keyword anywhere in libogg sources. Libvorbis has some asm code but it should be disabled on non 32bit architecture. Look into ext/libvorbis/lib/os.h header.
It may be something wrong with cmake invocation.
I close this issue for now. Feel free to reopen if you find anything new or want to provide more details.


Update to new gir

No real changes but let's keep them all in sync for the release?

@GuillaumeGomez This is as green as it gets until we merged all the PRs.


Start the journey towards null-safety

Caveats:

A lot of packages still require null-safety migration
The app cannot run with sound null safety yet.
Seeing https://github.com/dart-lang/intl_translation/issues/118 for localizations.
Some lint warning about legacy packages should be ignored.

@schima New translation string are ready to picked up after this change.


[messaging] condition fcm sending not work!

this code does not work.

Also above does not work too.
As you can see sending successfully, no notification on mobile!

PS: They were working code before a month.

Please file a support issue. If the server is responding with a successful response, the SDK to FCM handoff has been successful. Any further investigation has to be done at the backend.


Add option for number of suggestions

Currently, the maximum number of suggestions in the drop-down box is 5. Can we add that as a parameter to the API?

There are two types of suggestions which we provide through our API - for which we can add some controls :

Full Sentence Gist - How many full sentences should be sent? Default currently is 1.
Partial Sentence Suggestion - How many partial sentences should be sent? Default currently is 5.


Broadcast request

Codecov Report

Merging #145 (408a6ca) into develop (7993b0b) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##           develop    #145   +/-   ##
=======================================
  Coverage     6.48%   6.48%
=======================================
  Files           19      19
  Lines         4580    4580
=======================================
  Hits           297     297
  Misses        4283    4283

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Removing default integtest.sh (1.x).

Coming from https://github.com/opensearch-project/opensearch-build/issues/497, removing default integtest.sh.

Sorry dup from automation.


Add options to style settings to change inline dataview field front and colour

Is your feature request related to a problem? Please describe.
Currently inline dataview field rendering results is actively underemphasize visually. I often use inline fields for things of equal or great import to what they are inline with, often the name of a definition or section. By wrapping the whole thing in parenthesis it nicely hides the often unwanted key. At first I honestly thought it was a bug.
Describe the solution you'd like
I would like to at least allow the font to be the same size as surrounding text, right now it looks really odd:

Either I have a line that is massively de-emphasised from surrounding content for no semantic reason, or I have a line which looks like  - definition:: Name: Definition which looks quite ugly!

Found this css snippet, which de-styles inline fields. Works fine for me but will leave open as I feel this should be in the settings; imo this snippet makes much more sense as default behaviour.


Switching speakers

It would be great if groovebasin allowed to switch speakers. E.g. if I have a 5.1 audio interface, and I put 2 speakers into the livingroom and one into the kitchen. Now I would like to switch between the livingroom setup and the kitchen setup in the groovebasin webinterface/remote app. Another use case might be playing cinema soundtracks in 5.1 and normal hifi audio in 2.0. So this is not only about switching between speaker pairs, but also about switching mono/stereo/surround.
(In terms of audio quality, the livingroom/kitchen setup especially makes sense if you have a good audio interface with balanced audio output in the livingroom, and use that to drive active speakers in the kitchen, instead of putting something like a Raspberry Pi with lower quality audio output there, see https://en.wikipedia.org/wiki/Balanced_audio).
This is related, but not the same as #313 -- that one is about streaming digital data, this here is about switching the analog audio signal to different outputs (through PulseAudio or similar frameworks). Both are solutions for multiroom setups.

This feature makes sense. And I've been meticulously supporting channel layouts as I write libsoundio. So, once I switch out SDL for libsoundio in libgroove, then I can add ability to switch channel mixing settings to libgroove, then expose the feature in node-groove, then utilize it in Groove Basin.
So that's what the roadmap looks like.
How to expose the feature in the UI is another thing to think about. Do you have any ideas about that?
One of the options the user could select would obviously be choosing to mix whatever channels the song or cinema soundtrack has into the channels available. But the other option is a bit more complicated to expose; it almost means directly allowing the user to specify the channel mixing matrix.

Good to hear this is on the map :-)
I think the speaker selection should also allow for specific volume levels per destination. Then you could expose it in Settings/Sound, right where the volume settings are found. Choosing between the available pulseaudio sinks should be enough for a start. You could replace the on/off switch with a dropdown selection, showing the available sink names plus an "off" option. Then the user could define a profile "livingroom hifi" in 2.0, "livingroom movie" in 5.1 and "kitchen" in mono.
I guess ideally the interface should allow for features that fit together, like one of the "livingroom" choices plus "kitchen", but not two livingroom settings together, maybe with a series of toggles that get greyed out if they are excluded by the current selection. But i have no idea how to decide what fits together.


Update for main gallery file

Bumps the version of Language pack to the latest version (1.26.0)

Any particular reason these are split into two PRs? If it's going directly to stable then you can just combine them into one PR - we only need 2 PRs if the stable update is going to RC1 first.

@Charles-Gagnon I'm trying to get it into Insiders first, before putting it into the main branch, unless its okay to combine them in the same branch?


[BUG]: MSBuild Task stopped finding MSBuild.exe file correctly

New issue checklist

[x] I searched for existing GitHub issues
[x] I read pipeline troubleshooting guide
[x] I checked how to collect logs

Task name
MSBuild
Task version
All
Issue Description
I specified all task versions, as the problem is a combination of version used in assembly Microsoft.Build.Utilities.Core.dll and the powershell task
I have self hosted agent version 3.248.0 on my Azure DevOps account. it is hosted on a recently installed Win11 and I just have Visual Studio 2022 Enterprise Preview 17.13.0 Preview 2.0 and Visual Studio 2022 community edition Version 17.12.3 (Non Preview) installed. When I run a build against that build agent, it doesn’t pick up any of those editions, even though it detects them fine in the beginning, if you run it with debug=true
"C:\Agent\_work\_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824\1.246.3\node_modules\azure-pipelines-tasks-msbuildhelpers\tools\vswhere.exe" -version [17.0,18.0) -latest -format json
##[debug][
##[debug]  {
##[debug]    "installationName": "VisualStudioPreview/17.13.0-pre.2.0+35605.110",
##[debug]    "installationPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview",
##[debug]    "installationVersion": "17.13.35605.110",
##[debug]    "displayName": "Visual Studio Enterprise 2022",
##[debug]    "updateDate": "2024-12-10T18:54:55.7707095Z",
##[debug]    "enginePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\resources\\app\\ServiceHub\\Services\\Microsoft.VisualStudio.Setup.Service",
##[debug]    "resolvedInstallationPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview",
##[debug]  }
##[debug]]

I have debugged the powershell task and found out that the issue comes from \MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824\1.246.3\node_modules\azure-pipelines-tasks-msbuildhelpers\PathFunctions.ps1, it works if the script is execute from powershell core, but not when it is executed from powershell 5.1, which is that the task run is doing.
I did a bit more debugging and found out that this scripts dynamically loads the assembly “MSBuild\Current\Bin\Microsoft.Build.Utilities.Core.dll” from my Visual Studio 2022 Enterprise Preview 17.13.0 installation folder, and it calls the Microsoft.Build.Utilities.ToolLocationHelper method for finding the MSBuild.exe file for 64 bit edition. However inside Microsoft.Build.Utilities.Core.dll assembly recent changes have been done, so that will use a new assembly called MS. IO. Redist for doing a file.exists for the found msbuild.exe path. That method returns false, even when the path exists. it happens, because that assembly now requires System.Memory loaded and that doesn’t happen, hence it gets a FileLoadException exception, which gets swallowed and when it just returns false. This false value means that the agent code doesn’t think that the msbuild.exe path exists and attempts to find alternatives. This is better explained in this post https://github.com/dotnet/msbuild/pull/9223#issuecomment-2359007085
This means as more and more agents are upgraded to newer visual studios editions with new dependency for MS.IO.Redist, it would lead to more and more issues and resolving to lower editions.
I suspect that the same issue is present in vsbuild task, but I haven’t tried it out
I don’t know if the agent tasks, needs some assembly redirects or manual load of System.Memory, or if the issue should be fixed in MS.IO.Redist, so I will let the experts look into that
I have made a simple powershell script which can show the issue, depending if you are running it in Windows Powershell or Powershell core. I am guessing that it works in Powershell Core, because System.Memory is already loaded
msbuildbug.ps1.txt
Environment type (Please select at least one enviroment where you face this issue)

[x] Self-Hosted
[ ] Microsoft Hosted
[ ] VMSS Pool
[ ] Container

Azure DevOps Server type
dev.azure.com (formerly visualstudio.com)
Azure DevOps Server Version (if applicable)
No response
Operation system
Windows 11
Relevant log output
No error message, as it doesn't fail, just fallback to a very old MSBuild version 4.0, which is to old to build sdk style C# projects, so it fails in the build step.

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe" "C:\agents\_work\1\s\Source\Soendergaard.SqlValidator.sln" /nologo /nr:false  /p:platform="Any CPU" /p:configuration="Release"
  Building solution configuration "Release|Any CPU".
##[debug]Processed: ##vso[task.logdetail parentid=;name=Soendergaard.SqlValidator.App\Soendergaard.SqlValidator.App.csproj.metaproj;type=Build]
##[warning]C:\agents\_work\1\s\Source\Soendergaard.SqlValidator.App\Soendergaard.SqlValidator.App.csproj.metaproj(0,0): Warning MSB4078: The project file "Soendergaard.SqlValidator.App\Soendergaard.SqlValidator.App.csproj" is not supported by MSBuild and cannot be built.

Full task logs with system.debug enabled

 [REPLACE THIS WITH YOUR INFORMATION]

Repro steps
Run the attached powershell script in windows powershell, on a computer with the latest visual studio 2022 and no other visual studio or build tools. it should pick up the msbuild.exe path, but it doesn't, however it does if it is running under powershell.core

Please attach "Full task logs with system.debug enabled"

Here is the log files and a test project. The logs doesn't show much, just that it didn't find the MSBuild.exe path from the VS2022, so it continues and fall back to a very old version
logs_335.zip
MSBuildBug.zip

I recreated a new agent with the latest VS 2022 community edition and it worked, this left me puzzled, so I installed the latest VS2022 community preview edition and then it failed again, so it only happens when the latest preview is installed and higher that the non preview, because the vswhere still finds the the Microsoft.Build.Utilities.Core from the preview folder and that gets dynamically loaded.  The preview version <IP_ADDRESS>805 and the non preview is version <IP_ADDRESS>101
Basically it is an new issue only in preview edition, as it upgraded to a newer version Microsoft.Build.Utilities.Core.
you can try it out by installing only preview edition on a clean agent or use my powershell script and redirect to load the preview version of Microsoft.Build.Utilities.Core


Crash only when trying join to server

---- Minecraft Crash Report ----
Description: Ticking screen
java.lang.ClassCastException: crazypants.enderzoo.charge.EntityPrimedCharge cannot be cast to net.minecraft.entity.EntityLivingBase
at net.minecraft.client.network.NetHandlerPlayClient.func_147281_a(NetHandlerPlayClient.java:743)
at net.minecraft.network.play.server.S0FPacketSpawnMob.func_148833_a(SourceFile:97)
at net.minecraft.network.play.server.S0FPacketSpawnMob.func_148833_a(SourceFile:15)
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)
at net.minecraft.client.multiplayer.GuiConnecting.func_73876_c(SourceFile:78)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1650)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:962)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:887)
at net.minecraft.client.main.Main.main(SourceFile:148)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

Can confirm that this issue is happening for me as well. Seems to be a localized event that crashes any clients that load the affected area. Not sure how to find or wipe the faulting object.

Can confirm that this issue is happening for me as well. Seems to be a localized event that crashes any clients that load the affected area. Not sure how to find or wipe the faulting object.

I think I got it figured out. As the wither cat mobs were causing MFR grinders to have issues, I disabled them. After that, people started to have CTDs which created crash reports the same as the original post had. Later, in an attempt to correct this new issue, I disabled all explosives and concussion creepers. This was followed by a new error in some cases and all the dire wolves began appearing as wither witches.
My theory on this is that disabling a mob type post world gen is causing all the entity IDs to shift and cause invalid data tags to be attached to persisting mobs. Not a programmer but I do specialize in finding the root of problems. Hope this info helps you out!

I also have had this problem ill ask the server owner if he has disabled any of the mobs
Here's my crash report:
http://pastebin.com/SC4NYeAL

Wanted to comment as well; we just disabled Wither Cats on our server. Then a player entered an area and has since kept crashing with the same crash. Had to re-enable wither cats.
As a work around, we are going to try to use ForgeEssentials to deny fe.protection.mobspawn.forced.enderzoo.WitherCat and fe.protection.mobspawn.natural.enderzoo.WitherCat permissions for ALL.
Crash report: https://gist.githubusercontent.com/anonymous/752d83deffc2420b720f/raw/bf4c601bbaed7487b1adedf72ea9ca9b38f32737/crash-2015-02-15_18.51.10-client.txt

having this issue as well, I have disabled withercats and witches

This happened to me as well on a Direwolf20 server (pack version 1.7.0, EnderZoo version <IP_ADDRESS>).
I disabled Dire Slimes because they were spawning way too much (I set "B:direSlimeEnabled=false" in EnderZoo.cfg), and after that, some players started to crash when loading specific areas, most certainly where there were Dire Slimes before I disabled them.
To fix it, I re-enabled the Dire Slimes but changed the spawn probability to 0.

Because you disabled the dire slime on the server but not on the client. THE CLIENT AND SERVER ENTITY LISTS CANNOT DIFFER.

Ooh that makes sense. I'll keep that spawn rate 0 trick for next time.
On Sep 16, 2015 15:34, tterrag1098<EMAIL_ADDRESS>wrote:Because you disabled the dire slime on the server but not on the client. THE CLIENT AND SERVER ENTITY LISTS CANNOT DIFFER.
—Reply to this email directly or view it on GitHub.

@tterrag1098 I just stumbled upon this bug. I disabled direslimes on both server and client a long time ago, and now this happened. No other configs are touched. Will update on what happens.

Well, tried reenabling direslimes, and setting the chance to 0. Still, same problem. I even deleted the xmls on both client and server before starting. Sadly, I'll have to disable the mod so my friends don't kill me for testing, sorry 'bout that :(

I think I'll modify the enable/disable code to do something different. Not registering the entities leads to too many problems.

Just wanted to mention that I found this thread after a day of troubleshooting significant instability for users on our Direwolf20 server, especially when teleporting to Mystcraft dimensions. Last night, we disabled Khndrel Keghts (Dire Slimes), which caused repeated client crashes. I believe re-enabling this resolved the issue, although we also rolled back world files by 18 hours.


Forms with no inputs produce error V6 (alpha 15)

In some instances I'm using redux-form for forms that technically have no inputs, just a submit button. The reason for this is consistency in handling server-side errors.
I'm using alpha 15 and for my forms with no inputs I'm getting the following error:
reduxForm.js?c2ae:400 Uncaught TypeError: Cannot read property 'map' of undefined

specifically, this line:
this.props.registeredFields.map(function (field) {
  return getIn(field, 'name');
});

Is there any harm in just having an empty array be the default value for this.props.registeredFields?

Fixed. I will comment again when the fix is published.

Published in v6.0.0-rc.1.


Add NIT, Kagawa College

Please add the domain of National Institute of Technology, Kagawa College.
This collage is affiliated with the National Institude of Technology.
So, Whois Infomation is the same of Kagawa Collage.

@ruscello Pull request merged. Thank you!

This collage is affiliated with the National Institude of Technology.
So, Whois Infomation is the same of Kagawa Collage.


Testing with real hardware

My budget can't always support having every single Arduino on hand to test this with. I would love if anyone has matching hardware supported by avrgirl-arduino to verify that everything works well. I just recently busted my Arduino Mega's FTDI connection somehow, so this sort of thing becomes a problem for me to keep up with.
I mostly test with OSX (which is my dev machine). I have both Windows and Linux VM's that I use to test those platforms with, however these sometimes don't replicate a "real" machine experience. An example of this is due to using a modern.ie image for Windows, I can't get a realistic take on the automatic device driver installation workflow that Windows normally does. So! I would love if those with any platform could just give this library a go with any Arduino they have sitting around that is supported :grin:
Successfully uploading a Blink.cpp.hex file is a great test to try. Included in this repo is a copy of a compiled and ready-to-flash Blink file for each supported device.
If you encounter any issues, please open a new issue on this repo describing what happened (errors, screenshots etc), or comment on an existing issue with a :+1: if you spot a duplicate.
Thank you so much in advance :raised_hands:

I have a few other devices I wanted to try adding support for, but they seem to be finicky ones: Due (ARM), RFDuino (uses a custom loader - see http://rfduino.com/package_rfduino_index.json), Red Bear MK20 and WiFi Mini (CC3200) and the Spark/Particle (which I think you have too). Any thoughts on them?

Hey! A few thoughts:
Desirable: short answer is no but yes but is complicated.
The purpose of avrgirl-arduino is to support the flashing of a specific subset of devices that would be classed as an 'Arduino'. This essentially means:

a device that is produced by Arduino/Genuino
a direct Arduino clone
an 'Arduino at Heart' device that represents a prototyping board similar in looks, functionality, and especially architecture, to an actual Arduino (a perfect example of this is the Red Bear Blend Micro).

So - avrgirl-arduino may not be the right repo/package to support these boards (other than perhaps the Due). There is a lot of extra complexity underneath which would be required to support them (such as adding a whole new usb package, writing several new protocols from scratch), which leans towards them being better developed in separate packages/libraries entirely for ease of maintenance and testing.
As an added note, the purpose of AVRGirl as an umbrella project, is solely focused on the ATmega and ATtiny families for the first big AVRGirl release. This is the supported list as per avrdude, which was the inspiration for AVRGirl. There are a large number of parts and programmers that need to be deemed stable before any different architectures (such as ARM) can be considered being added. This means that ARM would be nice, but it's on a distant roadmap only for now, and there is a much heavier focus on testing the ATmega and ATtiny families only at this stage. There is a lot of tuning that needs doing before moving on, and that's where I need the help most via testing :grin:
This issue was meant to be more about testing the already supported devices on different OS platforms. I did mention briefly about introducing new Arduino support too, so that is my bad I apologise.
To address your board suggestions:

RFDuino and Arduino Due - both ARM.

The Red Bear products that you listed are not 'Arduino at Heart', but at most would be closer to an 'Arduino Certified' status. Right now I'd prefer to only support 'Arduino at Heart' products. They are also ARM.

Spark/Particle boards - also ARM.

The ARM chips require a DFU style way of programming them, and are a little bit more complex than the ATmega and ATtiny family of RISC processors. Fair warning - plenty of rabbit holes would be ahead. The Tessel and Particle folks have done great work on this kind of stuff that you can see in their repos, although they are tuned very heavily to their specific ARM chip on board and their own development ecosystems.
Sorry for the long winded reply, but I realise that I have all of this stuff in my head only. I need to get it out so I can start communicating the mission and roadmap better (in writing) in some obvious places (such as the AVRGirl repo README or wiki). I didn't expect anyone to be interested in AVRGirl, to be honest, so this has caught me off guard!

Thanks for the detailed reply, Suz! I was wondering about some of this. The Arduino IDE has done a pretty good job of hiding a lot of the complexity to the end user and looking like an all purpose tool when it is really doing a lot of different things and using a lot of vendor provided software to fill the gaps. Thus I think it's sometimes hard to see where the boundaries lie, so I appreciate the clarification.
I'll see if I think there's anything I can contribute to other areas instead. :)

The Arduino IDE is indeed impressive! It takes an easy to use library and pairs it with several cross-compilers and many uploading tools (including avrdude). The easy flashing experience has been a point of inspiration for me to try to emulate.
I'm going to amend this issue with much better wording around testing hardware and how to do it. I'm very new to this 'having contributors' thing, so I am learning along the way!

Hiyo @noopkat!
Recently found avrgirl-arduino and successfully used it (I think) to upload our firmware onto our boards last night. Currently working it into our Electron-based app, so you'll have some cross-platform testing coming your way. We're working with the Mega boards, and will report back on any issues we might encounter.
Let me know if you have any questions about what we're doing!

@JonLim really cool, thanks for getting in touch here to let me know things have been working out so far.
The only thing I've quickly tested in Electron is setting up a boilerplate app in OSX, and then flashing a Blink hex to an Arduino Uno. It seemed to go fine after a tiny patch I had to release to do with binding some globals, but let me know if you run into any dramas!
I'm excited to see what you're up to with it 😁

@noopkat For sure!
The only drama llama situations that have come up were during npm install avrgirl-arduino, serialport was not enjoying itself because it wasn't being compiled properly. Updated node, updated npm, installed electron-rebuild, re-installed everything, rebuilt the Electron dependencies, and the moved serialport.node to the folder it was asking for.
It's crude, but it seems to be working.
What I'm currently building is an extension of functions that uses the conventions you've built to send and receive messages from the auto-detected and validated port. The goal for this is to eventually have it check the version of existing firmware flashed on the Arduino board, and download and flash the more up to date version if possible.
PS. We've flashed our full firmware onto a board and tested that it still works, so I'm pretty excited!

@JonLim oh super cool!!! Thanks for providing more detail.
Ah, I ran into the same compilation issues, which spun off this blog post: http://meow.noopkat.com/using-node-serialport-in-an-electron-app/ but forgot all about that. Glad you figured it all out.

@noopkat Ah, dang, wish I saw that earlier!
All good, had to make sure I had the right build while using electron-build as well.


Use MKL in windows build

This fixes the blas header issue in the windows CI. There seems to be an issue with the include directories if not specified. This PR explicitly gives the path to the MKL libraries to Cmake which then can find the blas header file.

@vigsterkr mkl_rt.dll causes a linker error, so I will just use the mkl_corelib instead.


Remove ubuntu 16.04

Not possible to use ubuntu 16.04 image anymore in Azure DevOps

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


with getDataStream can get server side message, but onMessage cannot?

Hi there, thank you for the great work on this library firstly.
I am using the same code with the examples, it turns out that with getDataStream, I could get data from server side, but with onMessage I couldn't;
I tested the server side with web-socket test tool and it works.

Same problem #57


[Web] Makes sure mobile safari text scale works

IOS 13 adds a new safari accessibility functionality to change the text font size. we should make sure it works in mobile flutter web, and the textscalefactor should reflect the font size changes

Finished investigation, When increase the safari font size, it will actually render the view with smaller screen sizes and enlarge the view at the end.
For example, font size 100% screen size is 600x800. If you increase the font size to 200%, what it does is it set the screen size to 300x400 and take the rendered view and enlarge by two times.
We don't have control over this behavior. I think as long as our customers' apps can render on any screen size, it passes the accessibility rating. No action item is needed on our side


Errors building btc canister on apple silicon

Shared my WIP debugging steps in the discord #s-help channel. https://discord.com/channels/748416164832608337/953588280568479756/974699586251817050
Issue
I'm encountering errors when attempting to build the btc canister on a mac m1 laptop. I've followed the setup docs and encountered typical brew issues related to apple silicon. After resolving the whole brew issue, my latest one involves the lib wabt-sys. If you know how to get past, duly appreciate the help.
error: failed to add native library /var/folders/33/dxhswk150sx1sblqvj718r700000gn/T/cargo-installjCLJKE/release/build/wabt-sys-db34d7fdf57f8cf5/out/build/libwabt.a: file too small to be an archive

error: could not compile `wabt-sys` due to previous error
warning: build failed, waiting for other jobs to finish...
error: failed to compile `ic-cdk-optimizer v0.3.1`, intermediate artifacts can be found at `/var/folders/33/dxhswk150sx1sblqvj718r700000gn/T/cargo-installjCLJKE`

https://github.com/pepyakin/wabt-rs/issues/78 Seems to be a common problem.
Request
Can anyone on your team test this repo with an mac m1 machine?

A workaround for now is to comment out the ic-cdk-optimizer within the build scripts.

For those having issue with brew because Apple silicon installs brew files under /opt/homebrew, try this to have a sort of hack to reuse usr/local prefix
https://apple.stackexchange.com/questions/437618/why-is-homebrew-installed-in-opt-homebrew-on-apple-silicon-macs

For those having issue with brew because Apple silicon installs brew files under /opt/homebrew, try this to have a sort of hack to reuse usr/local prefix
https://apple.stackexchange.com/questions/437618/why-is-homebrew-installed-in-opt-homebrew-on-apple-silicon-macs

Worked for me on my Macbook Air 2022.


metrics: durations of region requests, counters of region request retries

Part of #987
Current kv request duration metrics are about the low-level request in sendRequest(), which doesn't count the retries, durations in region caches, etc.
Add 2 metrics that focus on the SendReqCtx level, which brings us more insight about retries.

PTAL @crazycs520

The combination of source x result x type is too large and could be a risk the storage of Prometheus. Perhaps we may need these detailed information in slow log to diagnose the slowness, it's more lightweight than recording all of them in the metrics.


Update aws-core, http-client-spi, ... to 2.21.42

About this PR
📦 Updates

software.amazon.awssdk:aws-core
software.amazon.awssdk:http-client-spi
software.amazon.awssdk:netty-nio-client

from 2.21.15 to 2.21.42
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "software.amazon.awssdk" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #1270.


Effects are always the same

I try to change different events but always works with the same effect:
let morphingEffect: LTMorphingEffect = .pixelate
cell.lblLastMessage.morphingEffect = morphingEffect
or changing rawValue
if let effect = LTMorphingEffect(rawValue: 2) {
cell.lblLastMessage.morphingEffect = effect
}

Please update to the latest release 0.5.5 and try again.

I also have this problem.  No matter what value I choose for the label's .morphingEffect it looks to be using the default Scale
Here's how I init the label:
self.animatedLabel1 = LTMorphingLabel()
self.animatedLabel1.morphingEffect = .fall
And the animation is always Scale.
I got this result on the 0.5.6 release, and then I also tried the 0.5.5 release per this thread.
Any idea what the issue might be?  Thanks for your great work on this Pod.


Fix a Linux bug where an error during waitid() could cause us to miss a continuation.

The logic for exit test handling currently calls waitid() but doesn't loop on error (EINTR or ECHILD) so it could cause a missed continuation in corner cases. This PR refactors (again) the relevant code so that it loops and is shared with the Darwin/dispatch-source-based implementation.
Checklist:

[ ] Code and documentation should follow the style of the Style Guide.
[ ] If public symbols are renamed or modified, DocC references should be updated.

@swift-ci please test

@swift-ci please clean test macOS


Using envoy as PouchDB remote is giving access to allDocs from every users.

Hi Glynn, Hi there, have you tried to use your envoy endpoint in direct remote access ??
this.envoyDB = new PouchDB([YOUR ENVOY ENDPOINT URL]);
this.envoyDB.find({
        selector: {type:{$eq: 'userAssessment'}}
      })

This query, instead of returning all document with type == 'userAssessment' for the logged in user is retrieving all docs  with type == 'userAssessment' from every users.
If you do so you'll end up with retrieving all documents from every users. It's a big security leak in my opinion
When used as replicator it works very well and filter documents.
When used as a direct remote endpoint it retrieve all docs from every single user.
I'm going to use in-memory adapter strategy for now.
Can you imagine a fix when no replication is used ?
It could give access to entire database to an authorised user.
If you need more info, I'm here.

After few tests and starting from a fresh envoyDB I cannot spot the problem.
I was working from a backup of the DB maybe something got corrupted once I restored it few days ago


🐛 Bug Report: 'yarn start' not working on generated backend plugin

📜 Description
When creating a backend plugin with yarn new, the readme states that it can be started by running yarn start in the plugin directory, but this is erroring out.
👍 Expected behavior
yarn start starts the backend plugin
👎 Actual Behavior with Screenshots

👟 Reproduction steps

create project with npx @backstage/create-app@latest
go into root and run yarn new, selecting backend plugin and putting in a name
navigate to plugin directory and run yarn start

📃 Provide the context for the Bug.

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
Yes I am willing to submit a PR!

Hey @tomasmota :wave:
To which docs/readme are you referring?
Thanks!

I'm referring to the readme in the actual generated plugin.

I'm referring to the readme in the actual generated plugin.

Ah clear! I assume thats happening here should this be yarn start-backend @Rugvip I guess we can just update that template file? Honestly I am not 100% sure how the templating works on the cli

As far as I remember the package.json also still has dev on the commands. If I get an indication of what to change I can make a pr on it :)

As far as I remember the package.json also still has dev on the commands. If I get an indication of what to change I can make a pr on it :)

AFAIK if you want to serve it in isolation you'd need to do yarn start-backend as yarn dev spins up both the front end and backend concurrently.
But lets see what @Rugvip or perhaps @awanlin thinks on this? as it should be a quick win :smile:

As far as I remember the package.json also still has dev on the commands. If I get an indication of what to change I can make a pr on it :)

Sorry I was wrong, I think it should actually be LEGACY_BACKEND_START=true yarn start as it mentions here: https://backstage.io/docs/plugins/backend-plugin/
I assume some stuff still needs shuffling in order to not have to use the LEGACY_BACKEND_START=true part :sweat_smile:

So, did some testing on this. Looks like migration/growing pains.
You want to be on version 1.24.x which includes the update CLI where the backend template uses the new backend system which includes the /dev/index. PR that updated the template: https://github.com/backstage/backstage/pull/23485
Now yarn start works BUT the instructions in the README are still wrong as it says to use http://localhost:3000/plugin-name but that's for a frontend plugin. For this it would be http://localhost:7007/api/plugin-name. Now that won't really get you anything so it might make sense to update the README to use http://localhost:7007/api/plugin-name/health as that should get you some feedback in a browser or if you cURL it. The only thing is that gets an authentication error (at least in my testing with a fresh instance of create-app)
Hope that helps a little?

So, did some testing on this. Looks like migration/growing pains.
You want to be on version 1.24.x which includes the update CLI where the backend template uses the new backend system which includes the /dev/index. PR that updated the template: https://github.com/backstage/backstage/pull/23485
Now yarn start works BUT the instructions in the README are still wrong as it says to use http://localhost:3000/plugin-name but that's for a frontend plugin. For this it would be http://localhost:7007/api/plugin-name. Now that won't really get you anything so it might make sense to update the README to use http://localhost:7007/api/plugin-name/health as that should get you some feedback in a browser or if you cURL it. The only thing is that gets an authentication error (at least in my testing with a fresh instance of create-app)
Hope that helps a little?

Awesome, thanks for clarifying 👏 should we update the docs page now as well as the readme? 🤔 Or at least maybe a note in the docs page if you are on version 1.24.x e.g

Yes, busy working on those items 👍

Just submitted a PR #23821 to address this 👍


Added alpha variants and overlay colors

As discussed here https://github.com/endigma/unocss-preset-radix/issues/4 this is the PR for add alpha variants and overlay colors (whiteA and blackA).
For add the alpha variants and overlay colors you need to explicitly add them in config, in this way someone can exclude them if they are not using.
Example config:
// Add 'blueA' for blue alpha and 'whiteA' for overlay white
presetRadix({
  palette: ['blue', 'blueA', 'green', 'amberA', 'whiteA'],
}),

Overlay colors: whiteA and blackA
Alpha variants: blueA, greenA, etc...
The dark variants is added automatically, so for example when you add 'blueA' also the 'blueDarkA' will be added.
I have also exclude dark colors if you set the option darkSelector to falsy value so that if someone are not using dark mode, the CSS for dark colors will not be generated.
I see there is not any tests and not sure how is your workflow for tests code, I did a build and move dist folder to a unocss project for testing. I think would be good to have some tests.
Let me know if you have any feedback about and I will adjust accordingly.
Thanks

I've thought about tests but I'm not sure how to implement them, I don't see any documentation on how to clean-room run a unocss preset or inspect output. As far as I know none of the official presets have tests either.
This looks good on GitHub, I'll test properly later and merge if it works how I expect.

Yes I see there is not anything in docs, but I found here tests https://github.com/unocss/unocss/tree/main/test
And it seem there is for default preset here: https://github.com/unocss/unocss/blob/main/test/preset-uno.test.ts using vitest.
We could make similar.
I can check into if you are interested, so it will help during development to quickly test new features.
I am interested to understand if we can add new color on demand instead of adding in config, so for example using bg-blue10, will add just blue10 var and nothing else.

I'm working on a pretty large upgrade today, it will help test this PR and all future ones too.

You should update to current main, it has a vercel demo page thing now and I also changed some stuff you'll have to fix again for your thing, sorry.

I tested your  new updates without this PR, and I see that the build seem works fine but I got some types error, see screenshot attached. Do you see them?

I actually don't, not even when explicitly running tsc, perhaps do you have a stricter tsconfig somewhere? It looks as though your errors stem from the definition of palette as readonly. This is super hard to debug without actually getting the error, can you share what settings/IDE/etc you're using that causes this to happen?

Ah, I use vscode, it doesn't show this error so I can't really figure whats wrong with it. If you can provide more details from your error or figure out what the problem is I'll happily fix it.

Those errors are in vitest? I should fix the imports... thing in tsconfig, otherwise none of those are related.

Those errors are in vitest? I should fix the imports... thing in tsconfig, otherwise none of those are related.

Yes it coming from vitest after running tsc

Took a shot in the dark on main, try that?

Now is much better, I can "tsc" without errors.
About the others two errors that I see in my IDE, the first one inside export function presetRadix I see that the problems is with rules type, which is rules?: Rule<Theme>[];
When try to cast as Rule<Theme>[]; typescript doesn't complain anymore. It's not ideal but just to see which one cause problem. I am still not sure how everything works in unocss and docs doesn't explain too much, even trying with docs example https://unocss.dev/config/rules#full-controlled-rules same issue appear.

The error said:
Returned expression type [RegExp, (([, color]: readonly [any, any]) => (string | ""))][] is not assignable to type Rule<Theme>[]

In case this doesn't help you to understand how to fix, I will try to ask someone from unocss.
The second issue I will check a bit more in next days, this one:

@thewebartisan7 Are you planning on completing this?

Hi @endigma  sorry for delay, I was trying to find another solution for include radix colors in unocss and I did indeed succeed with it. However, I can also complete this PR, please give me a few more days.

What caused you to use a different solution? I'd like to improve the library if there's something missing.

There is nothing wrong with this preset.
The problem is that the project I am working on is with SASS, and all colors is already in a SASS map, from which the CSS variables are added in :root. So I was trying to use unocss with radix colors instead of using bg-[var(--red1)] and by using this preset all CSS variables are again added in :root.
So with a simple new rule I was able to create new color utility like bg-red1 while the CSS variables are still output from SCSS map.
[/^bg-(.+)-(a)?([1-9]|1[0-2])$/, ([
      selector,
      color,
      alpha,
      scale
    ], ctx) => {
      const colorName = alpha ? `${color}A${scale}` : `${color}${scale}`

      return `
.${selector} {
  background-color: var(--${colorName});
}
`
}],

I am thinking to move all this in unocss config but for now there are too much things to be changed/remove in current SCSS code.
I am also trying to figure out a way to create the CSS variable on demand, I could just output them inside this rule, and I make a rule for this, but the problem is that for each color there is :root selector, while would be better to group all colors in one single :root.
For this other rule I grab colors directly from radix library via:
import {
  blue,
  blueA,
  blueDark,
  blueDarkA
} from '@radix-ui/colors';

The similar to other rule:
    [/^bg-(.+)-(a)?([1-9]|1[0-2])$/, ([
      selector,
      color,
      alpha,
      scale
   ], ctx) => {
     if (color.includes('Dark')) {
       return
     }

      // Rename red-a => redA
      const palette = alpha ? `${color}A` : color

     // Make dark name from color name, e.g. red => redDark or redA => redDarkA
      const paletteDark = alpha ? `${color}DarkA` : `${color}Dark`

      // Rename b-red-a1 => redA1
      const colorName = alpha ? `${color}A${scale}` : `${color}${scale}`

      if (ctx.theme.colors.radix[palette] && ctx.theme.colors.radix[palette][colorName]) {
        return `
:root {
  --${color}${scale}: ${ctx.theme.colors.radix[palette][colorName]}
}

${ctx.theme.colors.radix[paletteDark] && ctx.theme.colors.radix[paletteDark][colorName] ?
`.dark .${selector} {
  --${color}${scale}: ${ctx.theme.colors.radix[paletteDark][colorName]}
}` : ''}

.${selector} {
  background-color: var(--${color}${scale});
}
`
      }
    }],

But I am still investing into.
In case I found a solution I will share here, so if you are interested we can improve this palette.

I end up with a custom preset that suite better my need, check here https://github.com/primus-ui/unocss-preset-radix-palette
In case you are interested in this PR, let me know, and I can try to fix. The problem that I faced when I try to fix is with typescript, most of them mentioned. However, as soon as I try to add my changes, more typescript errors come out.
Considering that I need also others features and not only this one, I made a new one.
About issue with rules typescripts, working on I see that error disappear when you type rule arguments, in this case: ([, color]: string[]).
We can end up with single preset in case you are interested in additional features that I added.


chore: sync dependencies

Pull Request Test Coverage Report for Build 649175480

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 100.0%

Totals

Change from base Build 649172803:
0.0%

Covered Lines:
1

Relevant Lines:
1

💛  - Coveralls


⚠ Young Discoverers has degraded performance

In 8e2689a, Young Discoverers (https://youngdiscoverers.org.au) experienced degraded performance:

HTTP code: 200
Response time: 5727 ms

Resolved: Young Discoverers performance has improved in e85790b.


amend activation metrics to ensure they are scalable

Stops acquisition and activation metrics raising 5xx errors. This is almost certainly a result of the non-scalable combination of AR sql and ruby looping. Tested locally using:
puts Benchmark.measure { Person.activated_percentage(from: Date.today-365 }

[X] refactor the concerns/mixins
[x] ensure scalability
[X] spec

👍  Looks good to me


fix: cache Provider

Closes #28

added singleton pattern for Provider instance
removed redundant Provider creation from other files

thanks @starc007!


Fix pokemon to fix CI

Update ditto link, and use HTTPS whilst we're at it.

Thanks for this, I didn't have time earlier.


Partial rewrite of TWCC sender

The previous implementation of the TWCC sender interceptor had some inconsistencies with libwebrtc. Namely, if there were missing packets between the last packet in the previous feedback interval and the first received packet in the following feedback interval, then those packets were never included as missing in any feedback.
This is an issue because libwebrtc uses data about lost packets from TWCC feedback in their congestion controller. This means that bursts of loss could go unnoticed by libwebrtc, causing the application to possibly send more data than it would if the loss was properly reported.
Another minor difference was that feedback packets with a single packet are in fact valid according to the RFC, but we were only returning feedback with at least two packets. libwebrtc has a check for minimum feedback size, which has now been added to the unit tests.
Just about all of the rewrite here has been ported from libwebrtc code, so it should now match the behavior fairly well.

I see #202 got merged, but I think this PR would actually replace it and do the same deferred sorting but in O(N) instead of O(N log N). This is because I walk through the sequence numbers in order to build feedback (note that since missing packets have to be added anyway, this adds no overhead). Simply keeping track of the start/end sequence numbers and storing arrival times in a circular buffer lets you do a simple for loop to get the sorted arrival times; no explicit sort needed.
@davidzhao @treyhakanson can you take a look and confirm that my logic above is correct, and that the proper way to resolve this change with #202 is to simply overwrite the changes?

Ok, I have reverted #202 and rebased this branch on top of master. I left it as two separate commits to clarify the revert of #202.


Make UserPoolClient optional

Hey guys,
first, thx a lot for this cool plugin. For a project i am working on, we needed a solution for adding custom Attributes without loosing all current users, BUT without specifying an UserPoolClient. Because we needed this ASAP, i forked your project and realized it quick and maybe a little dirty. Could we also realize it in the original Plugin? I can create a PR, but i am not really a JS Dev.
BR
Stefan

Please send a PR, I am willing to have a look at it and even add functionality for you

Merged


Added Shimiao profile.

Merged via https://github.com/Cornell-CS5356-Fall2015/cs5356/commit/487de358bea282da0c71194ca296b5ee375d83d3.


unrecognized property 'deletion_policy'

It looks like deletion_policy on collections isn't recognized as valid configuration:
Warning: Invalid configuration encountered
  at 'fauna.collections.logs': unrecognized property 'deletion_policy'

Learn more about configuration validation here: http://slss.io/configuration-validation
Fauna: FQL v4 schema update in progress...
Fauna: collection `logs` was updated

1 deprecation found: run 'serverless doctor' for more details

This happens with yml based on the readme:
service: foo
provider:
  name: aws
  runtime: nodejs18.x

plugins:
  - "@fauna-labs/serverless-fauna"

fauna:
  deletion_policy: retain
  client:
    secret: ${env:FAUNA_ADMIN_KEY}
    port: ${env:FAUNADB_PORT}
    domain: ${env:FAUNADB_DOMAIN}
    scheme: ${env:FAUNADB_SCHEME}
  collections:
    Movies:
      name: Movies
    logs:
      name: logs
      deletion_policy: destroy

With the latest serverless and serverless-fauna:
> yarn why serverless
└─ foo@workspace:.
   └─ serverless@npm:3.32.2 (via npm:3.32.2)
> yarn why @fauna-labs/serverless-fauna
└─ foo@workspace:.
   └─ @fauna-labs/serverless-fauna@npm:0.4.0 [11f9b] (via npm:^0.4.0 [11f9b])

Looks like the readme syntax is incorrect. Thanks for reporting!
You can specify the deletion policy on a resource like so:
  collections:
    Movies:
      name: Movies
    logs:
      name: logs
      data:
        deletion_policy: destroy

I do think it'd be nice to declare it on the top level of the resource config, though. It would feel more like a first-class feature. For now, though, we'll update the readme example. https://github.com/fauna-labs/serverless-fauna/pull/62
Thanks again!


Translation of Reference Page in Hindi

Language
Hindi
What improvement are you suggesting?
Most of the content in Reference Page is currently in English language only. To make p5.js site completely functional and accesible in Hindi language, we should translate entire Reference page.
Would you like to work on the issue?
Will be happy to help in some components, however I welcome new contributors to work on the issue and as a Steward of both Reference and Hindi Translation , feel free to tag me on your PR for review

Hi, @Divyansh013 i want to work on this issue but can you elaborate what exactly you want to translate on reference page bcoz i have seen that all the titles and description are already translated, only the functions name are not traslated.
would you want to translate inside page of that finctions?
Bcoz i have seen that pages was not translated yet.
And also don't mind if this question is very basic bcoz i am new in this open source contribution.

Ok, as i understand you that you want to translate inside page of all the functions, not the function name
if i am right then plz reply.
and also if you have any docs or any example then plz provide me.
thank you.

Hi, @Divyansh013 i have done inside page of describe() and describeElement() and i am feeling good to go
now if you want to assign me this issue then it will be great
and also if you want to see screenshots of this then tell me bcoz if any correction has to be done then you can tell me

Hi, "Divyansh013 I am done with the translation and also raised the PR


Fix PGPKeygen to call key/add for public key

First version of this engine did not call key/add unless it was pushing a private pgp key.  This fixes that.
cc: @MarcoPolo
r? @maxtaco

👍


onRegionChangeComplete fires multiple times while "throwing" region (iOS)

The onRegionChangeComplete event will fire multiple times if you drag the map and throw it to a new region while the native map region is decelerating to its new region.  The complete change event will fire at least twice, but up to a few 3 or 4 times.
This is problematic if you call a Redux action to update the region when onRegionChangeComplete fires, which then updates the props (like this.props.region) that get passed back to the component, causing the component to re-render.
It's possible to "debounce" this event call, but that doesn't work well when you're passing in
<MapView region={this.props.region} ...> and the props region is expected to be up-to-date and synced.
Versions:
react-native: 0.47.1
react-native-maps: 0.16.1

Dug into this a bit, here's some more notes. This will require some native changes:
http://www.b2cloud.com.au/tutorial/mkmapview-determining-whether-region-change-is-from-user-interaction/

when the panning gesture ends the map’s region continues to decelerate.

Don't manage region in state.
Watch for this enhancement #1620

Hi @EricPKerr, in need to intercept the user interaction to display "center" button like google maps on navigation, do you achieve that ?
Thanks !

We did with mapbox - left this library awhile ago.

@alvelig I don't manage region in state but I am seeing this issue on iOS. I do fetch data when onRegionChangeComplete event fires, and because it fires multiple times it's causing strange behaviour.

set   followsUserLocation={false}
and on  onRegionChangeComplete={data => getAddress(data)}
 const [latlong, setLatlong] = useState({
    latitude: 26.9124,  // set default Lat
    longitude: 75.7873, // set default Long
  });
 const getAddress = regionData => {
    if (
      regionData &&
      regionData.latitude !== latlong.latitude &&
      regionData.longitude !== latlong.longitude
    ) {
        ....
        your work
      setLatlong(regionData);
 }