text:
Don't auto finish transactions

Give ability to turn it on though if we want to for back compat for non-consumeables.
Please take a moment to fill out the following:
Fixes #414.
Changes Proposed in this pull request:

Add back compat to auto finish ios transactions
Consume on iOS now calls Finish
Finish still finishes on iOS, but would need to be called for all of them

It's been a while since I've had this top of mind, so forgive me if the answer is obvious, but shouldn't we just finish all non-consumable transactions automatically, and if the product is consumable on apple, then Finish the transaction when ConsumePurchaseAsync is called, like in android? Or am I missing something?

Yes, I would have to know if your transaction is consumable or not... else maybe I pass in a flag... let me see here

The other ting is that I also Finish all transactions on restore as well as that was a recommended pattern...

Alright... so check the code now...
I introduced a new ItemType of Consumable. If it is consumable then we don't autofinish the transaction.
Now on restore it is tricky. I am goign to make the getpurchases take in a list of ids not to finish. so a bit of work, but I think smoother

authors: edgiardina jamesmontemagno


text:
iOS- Storage permission is always giving granted but in settings permission is never selected

Bug Information
Version Number of Plugin:2.2.1
Device Tested On:iPhone 6s+, iOS 11
Versions of other things you are using:
Steps to reproduce the Behavior
I am implementing below code but it never opens photo permission popup and always giving granted and I am also able to pick photo from gallery.
Expected Behavior
It should open popup and after clicking 'allow' in popup, this should be allowed and then I able to pick photo from gallery.
Actual Behavior
No permission popup opening
Code snippet
ViewModel-
storageStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);
if (storageStatus != PermissionStatus.Granted)
{
storageStatus = await Utils.CheckPermissions(Permission.Storage);
}
Setting screenshot-

info.plist

iOS doesn't have any special permissions for storage. https://github.com/jamesmontemagno/PermissionsPlugin/blob/master/src/Plugin.Permissions.iOS/PermissionsImplementation.cs#L56

Also see: https://github.com/jamesmontemagno/PermissionsPlugin/blob/master/src/Plugin.Permissions.Abstractions/PermissionEnums.cs

@jamesmontemagno
Okay . If I am not wrong storage and photo permission is same. If I want to access gallery then I need photo permission and photo permission I can check photo permission with Permission.Storage. Right?
Then why it is not showing photo permission popup?

source: gharchive/issue

repo: jamesmontemagno/PermissionsPlugin

license: mit

license_type: permissive

license_source: bigquery


text:
Cached data not persisted between app sessions

I can not confirm this as a bug with MonkeyCache. However I am getting quite a few reports of users having to log in to the app after not using it for 1/2 days.
Users are considered logged in if they have a user token in the cache, and this seems to be missing after a period of the app not being used. The expireIn is set to one year.
This happens only on Android and there is no clear device or Android Api level it occurs on.
Has anyone else had this issue or an idea what could be going on? Its impossible to debug.

The Cache directories where MonkeyCache saves can be cleaned up at any time by the OS. Have you tried changing the base path of where the data is stored? See here https://github.com/jamesmontemagno/monkey-cache#persisting-data-longer

Yup, it is a cache so it will delete randomly by the system.

@pkhandelwal-cdl
Thanks for pointing that out.
Can I add anything as the base path?

@pkhandelwal-cdl @jamesmontemagno
I have tried setting the base path but then the access is denied on iOS. I am trying to look for some info on how to resolve this but I can not find anything.
Any ideas on how to get persistent caching working by setting the base path?

You could use the app directory; https://docs.microsoft.com/en-us/xamarin/essentials/file-system-helpers?context=xamarin%2Fxamarin-forms&tabs=ios

repo: jamesmontemagno/monkey-cache

license: MIT

license_source: github-api


text:
Fork this

The project has been sitting untouched for some while now.
Could use a fresh fork, and brushing away any CVE's that may have silently crept in from std or crate dependencies over the years.

@mcandre I'm starting to maintain a fork of this now at https://github.com/cryptaliagy/tq-rs

Hey @cryptaliagy, are you interested in taking over this repo/the crate on crates-io?

I would be, yes! @jamesmunns

I'll PR in the changes from my fork, and after that I can delete it

SGTM!

@jamesmunns I've deleted the repository!

@cryptaliagy sent you a request to transfer!

@cryptaliagy also sent you an invite for ownership of the tomlq crate on crates-io

I've received and accepted the crates-io request, trying to find where the repository transfer requests are

https://stackoverflow.com/questions/63244053/how-to-accept-private-repository-ownership-on-github
maybe check your primary email on GH is valid?

Ah thank you, I was checking the wrong email! The repository is now transferred.
I might end up creating a tomlq organization account and transferring this repository to it, in case I ever become inactive this should make the process for transferring ownership or adding in new folks in the future a little more streamlined. Are you okay if I keep you as a collaborator in this repository? @jamesmunns

Fair play! I will re-add you to the license, but otherwise I have removed your access as requested

Final updates under this issue:

tomlq is now publishing to the tomlq crate in crates.io: https://crates.io/crates/tomlq
cargo-binstall support has been added by archive, and both tomlq and tq binaries are currently being published. In the new year I will remove the tomlq binary and publish version 0.2.0 to finish the transition into the shorter binary name.
I added a new repository for tq-rs in my profile to make sure that existing tq-rs users are not impacted, and I've added additional notice on the repository for this migration.
Dependabot is enabled, and pipeline publishing is successful. Weekly security audit will be performed by cargo-audit, and I will look into making sure the binaries are signed down the line.
Currently I'll leave the repository under my profile, but I will look into migrating it into its own org down the line. I am also potentially interested in additional contributors

For all intents and purposes, I think this wraps up the work for re-integrating the fork into tomlq and concludes the requirements of this issue!

authors: cryptaliagy jamesmunns mcandre

repo: jamesmunns/tomlq


text:
Error 403 and 401

Version 1.11.1 for plugin
Most recent Obsidian
When I try create a new task I get "Failed to create task: 'Request failed, status 401'" and everywhere where I have my ```todoist I receive "Error: Request failed, status 403".
Any help appreciated

For anyone getting the 403 you might have:

Not restarted obsidian after pasting the API key
Not pasted the right key: It's in your Todoist Settings under Integrations -> Developer -> API Token

(Like me I first pasted Calender Subscription URL and then after pasting the correct API Key forgot to restart obsidian)

Same here
Obsidian 1.3.4 Plugin Ver 1.11.1
I'm also getting  "Failed to create task: 'Request failed, status 401"
but I'm getting "Error: Request failed, status 400" at todoist code blocks.
I did pass the correct key and restarted obsidian afterwards but still got the same errors.

@Kettenotter is correct, 403 and 401 status codes indicate that the API token is incorrect in some way.
@PhocaMachina - getting a 400 response back is more interesting though, would you mind sharing the code block that produces that response? (Is it all code blocks?)

As PhocaMachina seems to have missed out on your last question: I am receiving the Code 400 response as well. This is how my code looks like. I did try it with the least amount of code as well though and am still getting this error.
todoist  { "name": "Aufgaben", "filter": "(überfällig | (fällig vor: 2023-06-13 & fällig nach: 2023-06-05))", "sorting" :  ["date"], "group" : true }

On the off chance this helps someone: I started getting this error a couple of weeks ago and ignored it assuming it was temporary or user error. Today, I got tired of it and went to Todoist.
Guess what: The API key on my account had changed. With no notice.
Updating the API key in Obsidian, of course, fixed it.
Hope this helps.

Still receiving "Error: Request failed, status 401" after
1- Updating API key
2- Issuing a new API key and entering the new key
3- Manually checking it's the correct key
I'm running v1.3.7 of obsidian on a Mac.

Still receiving "Error: Request failed, status 401" [...]
Are you on version 1.11.1 of the plugin?

Asking because I haven't seen that issue in a long time...

Yep, running 1.11.1.
If it's any help I'm on todoist version 8.4.3 (12238)

I can see this is fairly old now, but for what it's worth, I'm getting the same 401 error with my setup. No amount of double checking, re-issuing the API key, restarting obsidian etc. is solving it.
plugin version: 1.11.1
Todoist Version: 5145(beta)
Obsidian version: 1.5.3

authors: CatOtchi DarkCartoons Kettenotter LeapingLue PhocaMachina jamiebrynes7 olivermorris05 thesamim


text:
Add support for getSourceOutputs and getSinkInputs

I would like to invoke PulseAudio's pa_context_get_source_output_info_list and pa_context_get_sink_input_info_list but this doesn't seem to currently be exposed by this library.
I noticed we seem to have an enum for that command https://github.com/janakj/pulseaudio.js/blob/1c3a5071c878879617acf5193d487a839c84edb1/src/command.ts#L82 but parsing the packet doesn't seem to be implemented, and I'm having trouble finding the packet structure in PulseAudio to try to implement it myself.

PR would be welcome if you want to try to add the missing functionality yourself!
After a quick search, I found the function that assembles the packet structure for GET_SOURCE_OUTPUT_INFO_LIST  here: https://github.com/pulseaudio/pulseaudio/blob/7f4d7fcf5f6407913e50604c6195d0d5356195b1/src/pulsecore/protocol-native.c#L3440. This is invoked repeatedly for each output in the list from here: https://github.com/pulseaudio/pulseaudio/blob/7f4d7fcf5f6407913e50604c6195d0d5356195b1/src/pulsecore/protocol-native.c#L3609.
Hope that helps.

pa_context_get_sink_input_info is already implemented here: https://github.com/janakj/pulseaudio.js/blob/main/src/command.ts#L558-L587
and it should be trivial to implement the "List" variant.
See here for an an example of a "*List" command: https://github.com/janakj/pulseaudio.js/blob/main/src/command.ts#L471-L478

Implemented.

authors: NebuPookins janakj

license: ISC


text:
Looks great - case

Found your repository, your work and detail in this github page is awesome. thank you.
two things:

would you consider sharing your step file for the 3d case?
have you see the openHASP project that utilizes this device? openhasp.com/ its come a long way!

Thank you.

Aren't the STL files sufficient? It's on TinkerCAD. Please don't mind the disorganized way it is put together. I'm no 3D designer.
Thank you for the pointer! I was starting to think about using it for small control panels for my HA instance (I already have a tablet directly connected to HA as a main wall panel).

Thanks! I'll take a look at TinkerCAD.
Also, where did you get that USB-C Serial programmer!??

See the What You'll Need section. It has purchase links to everything.

Just updated TinkerCad design to fix the issues with the case. Sending to production to test.

The new case fits the battery and the switch very well, as well as allowing easy mounting of the charger module.
However the lid is not fitting very well so one more iteration...

I have removed my case as PrintMinion was kind enough to create a great hand-held case at my suggestion.
https://cults3d.com/en/design-collections/printminion/various-cases-for-wt32-sc01-plus-by-wireless-tag

authors: janick marc-gist


text:
Added options object to the render function

I've made a basic change in your code to allow pass an options object to the render function, basically to disable the "escape" call when rendering values, because i use a lot of nested html to generate more html and i found this way easily than hacking the render function.
I've added a new "options" optional parameter to the "render" call.
mustache.render = function (template, view, partials, options) {
    return defaultWriter.render(template, view, partials, options || mustache.options/*Def*/);
  }

On the definition:
(function (root, factory) {
  if (typeof exports === "object" && exports) {
    factory(exports); // CommonJS
  } else {
    var mustache = {
        options:{
            escape: true
        }
    };
    factory(mustache);
    if (typeof define === "function" && define.amd) {
      define(mustache); // AMD
    } else {
      root.Mustache = mustache; // <script>
    }
  }
}(this, function (mustache) {

And propagate it until
function renderTokens(tokens, writer, context, template, options)
where i used
...
if (value != null) buffer += options.escape ? mustache.escape(value): value;
...

The solution provided above is not optimal at all.
What if you want to have escaping in some calls, and not in others?
You'd have to keep track of the original escaping function, and assign it back to mustache.escape whenever done rendering. Mutate global state to have side effects in function calls. Not a good API.
Correct way is to have it as parameter to mustache.render.

authors: gbrian raine


text:
Docker documentation

Could you please provide a guide how to get it running on Docker?

Currently you can download the source code from one of the releases: https://github.com/jantari/rewinged/releases or directly with git, extract it if needed and run docker build . inside the directory. That will build a container according to the Dockerfile that's included in the repository.
Then when you run the container you most likely want to mount some volumes for the package directory as well as certificate files for HTTPS.
I could look into publishing pre-built container images, that would make updating much easier as well, but currently you'll have to build the container yourself.

I have created a public Alpine image, which should help you getting Rewinged hosted. Source is here:  https://github.com/fabiang/docker-rewinged
It's completely untested, but has some feature missing from the Dockerfile provided with this project:

Run as separate user
Rewinged is compiled in "release mode"
Manifest path is created, so you can mount it as volume/bind

@florian-ried did this help you get running with docker?

I have decided to publish a prebuilt container image.
Version 0.3.1-rc.2 is the first, but a container image will be released for all new versions going forward. All containers will have a tag with their exact version, there is a latest tag that is always the very latest release (including prereleases like beta and rc!) and then there is a stable tag for any release that's not a beta or rc etc. prerelease. Since 0.3.1-rc.2 is currently the only image available, there is no stable yet.
There are no functional changes in 0.3.1-rc.2 compared to 0.3.0, only the container-build was added, so if you're running the binary releases you don't have to update.
But, you can now get started with rewinged and docker just like this:
docker run ghcr.io/jantari/rewinged:0.3.1-rc.2

If anyone has feedback regarding the container image please feel free to open new issues about it, as it is now an official release artifact we can have issues and PRs on it.

authors: fabiang florian-ried jantari

repo: jantari/rewinged


text:
chore: update plugin-scaffolder-node version

Align plugin-scaffolder versions with the rest of the project

@mareklibra strike 1 :wink:

I'll check if that will continue to work but let's merge it as soon as the CI is green.
Thank you @mareklibra!

source: gharchive/pull-request

authors: caponetto jkilzi mareklibra

repo: janus-idp/backstage-plugins


text:
feat(licensed-users): introduce licensed user info plugin

Description
Introduce licensed user info plugin. This plugin provides information with list recorded logged in users and quantity of these users.
Which issue(s) does this PR fix

Fixes https://issues.redhat.com/browse/RHIDP-3603

How to test it
Configure instance: apply your user to the list permission policies admins.

Execute instance.
Log in with help of one of the auth providers, GitHub for example.
Retrieve token.
Make requests:

curl -X GET "http://localhost:7007/api/licensed-users-info/users/quantity" -H "Content-Type: application/json" -H "Authorization: Bearer $token" -v

Example of the response:
{"quantity":"2"}

curl -X GET "http://localhost:7007/api/licensed-users-info/users" -H "Content-Type: application/json" -H "Authorization: Bearer $token" -v

Example of the response:
[{"userEntityRef":"user:default/cyber-stalker-bit","lastTimeLogin":"Thu, 22 Aug 2024 13:25:46 GMT","email":"marketo0user@gmail.com"},{"userEntityRef":"user:default/andrienkoaleksandr","lastTimeLogin":"Thu, 22 Aug 2024 13:26:08 GMT","displayName":"Oleksander Andriienko","email":"oandriie@redhat.com"}]

PR acceptance criteria
Please make sure that the following steps are complete:

[ ] GitHub Actions are completed and successful
[ ] Unit Tests are updated and passing
[ ] E2E Tests are updated and passing
[ ] Documentation is updated if necessary (requirement for new features)
[ ] Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer

For the failing docker build, you will need to update the Dockerfiles. It should look something like this
COPY $EXTERNAL_SOURCE_NESTED/plugins/licensed-users-info-backend/package.json ./plugins/licensed-users-info-backend/package.json and will need to added to this Dockerfile and this Dockerfile. I would also update the .dockerignore and add the plugin there as well.
You can see what I did in this PR where I added the OIDC auth plugin module.

I'm using 1.29.2, but I'm still getting no such table: user_info"  When is this table created?

When I'm not getting error about not-existing table I get he following error :-(
{"error":{"name":"TypeError","message":"userInfoRow.exp.getTime is not a function","stack":"TypeError: userInfoRow.exp.getTime is not a function\n    at rowToResponse (/Users/tkral/Code/backstage-showcase/plugins/licensed-users-info-backend/src/service/router.ts:120:23)\n    at userInfoRow (/Users/tkral/Code/backstage-showcase/plugins/licensed-users-info-backend/src/service/router.ts:78:7)\n    at Array.map (<anonymous>)\n    at <anonymous> (/Users/tkral/Code/backstage-showcase/plugins/licensed-users-info-backend/src/service/router.ts:77:28)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"},"request":{"method":"GET","url":"/users"},"response":{"statusCode":500}}%

When I'm not getting error about not-existing table I get he following error :-(
{"error":{"name":"TypeError","message":"userInfoRow.exp.getTime is not a function","stack":"TypeError: userInfoRow.exp.getTime is not a function\n    at rowToResponse (/Users/tkral/Code/backstage-showcase/plugins/licensed-users-info-backend/src/service/router.ts:120:23)\n    at userInfoRow (/Users/tkral/Code/backstage-showcase/plugins/licensed-users-info-backend/src/service/router.ts:78:7)\n    at Array.map (<anonymous>)\n    at <anonymous> (/Users/tkral/Code/backstage-showcase/plugins/licensed-users-info-backend/src/service/router.ts:77:28)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"},"request":{"method":"GET","url":"/users"},"response":{"statusCode":500}}%

It looks like this is related to using sqlite as database. When I switched to PostgreSQL I don't see any issues

@kadel Yeah, this is an issue that we run into with the RBAC backend plugin as well. For some reason, whenever you are establishing a connection to another plugin's database, there are issues when using sqlite. However, it works properly when using postgres.

@kadel we can make this plugin working with sqlite in memory configuration, but in this case I need to wrap auth plugin. See patch to achieve this goal:
https://github.com/AndrienkoAleksandr/backstage-showcase/pull/1
But I'm not sure if we would like to do that in the current development iteration. What do you think @PatAKnight ?

@kadel I fixed sqlite configuration with directory storage in the current pull request.

/retest

/approve

authors: AndrienkoAleksandr PatAKnight kadel

repo: janus-idp/backstage-showcase


text:
Add MUI theme config to fix Sidebar and Tabs color

Which issue(s) does this PR fix

Fixes  https://issues.redhat.com/browse/RHIDP-1165 ,  https://issues.redhat.com/browse/RHIDP-1164

Selected Tab (dark theme)

Tab when hovered (dark theme)

Selected Tab (light theme)

Tab when hovered (light theme)

Nav when hovered (light theme)

Nav when hovered (dark theme)

/cc @ShiranHi
/cc @jerolimov

Thank you @debsmita1!, I have few comments

Tabs (I compared the screenshots with the design here)
I think we don't display the gray background color when hovering over the tab or when it's selected

The tabs component that you see being used in plugins is a Backstage’s HeaderTab component
 and the hover color is the same as the background color of the app.
    tabRoot: {
      '&:hover': {
        backgroundColor: theme.palette.background.default,
        color: theme.palette.text.primary,
      },
    },

Navigation (I compared the screenshots with the design here)
We shouldn't display the underline below the text when hovering

Similarly, the nav component is Backstage's SidebarItem component and there's no prop available that allows removing the underline

In dark mode, the blue color appears brighter. We use the same main color in both scenarios, both for the tab line color and the blue line on the navigation

Fixed it, using '#0066CC' as mentioned in the slide

The tabs component that you see being used in plugins is a Backstage’s HeaderTab component
 and the hover color is the same as the background color of the app.

Can we do the same? so the hover color will be the same to the background?

Similarly, the nav component is Backstage's SidebarItem component and there's no prop available that allows removing the underline

I am not sure why we have that underline on the navigation when hovering, on the Backstage demo env they don't show any underline when hovering

This looks really good!  The only thing that's bugging me is the border line under the tabs, for both light and dark it there's a margin on the left-hand side leaving a space but on the right-hand side of the page there's no space.  I tried capturing a more narrow window to help highlight this:

This looks really good! The only thing that's bugging me is the border line under the tabs, for both light and dark it there's a margin on the left-hand side leaving a space but on the right-hand side of the page there's no space. I tried capturing a more narrow window to help highlight this:

Shows up better in dark mode and I think maybe the border color could be too bright in this variant also:

@gashcrumb  The HeaderTab component adds this padding on the left
const useStyles = makeStyles(
  theme => ({
    tabsWrapper: {
      gridArea: 'pageSubheader',
      backgroundColor: theme.palette.background.paper,
      paddingLeft: theme.spacing(3), <--------
      minWidth: 0,
    },
    ...

and the createUnifiedTheme util doesn't expose any option to add spacing

@gashcrumb The HeaderTab component adds this padding on the left
and the createUnifiedTheme util doesn't expose any option to update the spacing

I don't know if maybe trying to override it using something like this could work, but if you like this could be investigated later as a separate thing.

@gashcrumb The HeaderTab component adds this padding on the left
and the createUnifiedTheme util doesn't expose any option to update the spacing

I don't know if maybe trying to override it using something like this could work, but if you like this could be investigated later as a separate thing.

This worked! Thank you @gashcrumb !!

looks good @debsmita1 ! 🙂

Thanks @jerolimov
@debsmita1 PTAL at open comments and would be nice if we could handle those in the same PR. LMK

/approve

/retest

/lgtm
it was just update with main branch

authors: ShiranHi debsmita1 gashcrumb invincibleJai jerolimov kadel


text:
Migration to VolumeClaimTemplate

Description of the change
Migration to VolumeClaimTemplate in StatefulSet
Existing or Associated Issue(s)
Resolves #11
Checklist

[x] Chart version bumped in Chart.yaml according to semver.
[x] Variables are documented in the values.yaml and added to the README.md. The helm-docs utility can be used to generate the necessary content. Use helm-docs --dry-run to preview the content.
[x] JSON Schema generated.
[x] List tests pass for Chart using the Chart Testing tool and the ct lint command.

With #34 merged, this functionality is provided via the bitnami PostgreSQL subchart (subchart of the upstream Backstage subchart). Closing.

repo: janus-idp/helm-backstage


text:
Fails to build:  can't find crate for compiler_builtins

On OSX:
rustc -V

rustc 1.27.0-nightly (ad610bed8 2018-04-11)

rustup target add thumbv7m-none-eabi

info: downloading component 'rust-std' for 'thumbv7m-none-eabi'
info: installing component 'rust-std' for 'thumbv7m-none-eabi'

 cargo build --target thumbv7em-none-eabi

Compiling vcell v0.1.0
Compiling bare-metal v0.1.1
Compiling aligned v0.1.1
Compiling untagged-option v0.1.1
Compiling cortex-m v0.4.3 (file:///[snip]/cortex-m)
error[E0463]: can't find crate for compiler_builtins
error[E0463]: can't find crate for compiler_builtins
error[E0463]: can't find crate for compiler_builtins
error[E0463]: can't find crate for compiler_builtins

error: aborting due to previous error

For more information about this error, try rustc --explain E0463.
error: aborting due to previous error
error: aborting due to previous error
error: aborting due to previous error

For more information about this error, try rustc --explain E0463.
For more information about this error, try rustc --explain E0463.
For more information about this error, try rustc --explain E0463.
error: Could not compile aligned.
warning: build failed, waiting for other jobs to finish...
error: Could not compile untagged-option.
warning: build failed, waiting for other jobs to finish...
error: Could not compile vcell.
warning: build failed, waiting for other jobs to finish...
error: Could not compile bare-metal.

What am doing wrong?

rustup target add thumbv7m-none-eabi

cargo build --target thumbv7em-none-eabi

The target names don't match. You have to install the rust-std component for thumbv7em-none-eabi, i.e. rustup target add thumbv7em-none-eabi.

That was it, thank you!

repo: japaric/cortex-m


text:
Update scala-library to 2.13.10

Updates org.scala-lang:scala-library from 2.13.6 to 2.13.10.
GitHub Release Notes - Version Diff
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 = "org.scala-lang", artifactId = "scala-library" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.scala-lang", artifactId = "scala-library" }
}]

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

Superseded by #314.

repo: japgolly/scalajs-benchmark


text:
[Question]

How should I open these files? Never used it before and trying to use to add Prefixes for minecraft
staff, ranks, etc in a singleplayer world as practice for... Other stuff?

You want this: https://github.com/jaquadro/NBTExplorer/releases/tag/v2.8.0-win

authors: MeggalBozale esskaypee

repo: jaquadro/NBTExplorer


text:
publishing different bundleIds to Google Play Console

When you compile your release bundle, does your bundleId actually change?
The package id in AndroidManifest.xml doesn't change, so why would the bundleId change?
Either way, for me google play console doesn't accept any builds because the bundleId isn't changing

The problem was System.getenv in gradle not working properly, my apologies!

Hi @JacobDel ,
I'm glad you were able to find the root cause of the problem.
I'm curious what you mean by " System.getenv in gradle not working properly", though, and whether it is something that needs to be updated/fixed in the code or was is related to your local environment setup?

Thanks for your comment.
It is related to my local environment setup.
The bundleId and displayName from line 131 in https://github.com/jar0s/reactNative-babel-wla/blob/master/android_template/app/build.gradle#L131 could not be read properly.
The issue was that I was running the command sh scripts/load_env.sh && cd android && ./gradlew bundleRelease.
This basically loaded .env in a subshell, out of reach for the gradle file.
The solution was . scripts/load_env.sh && cd android && ./gradlew bundleRelease

Thanks for your comment.
The environmental variable for bundleId and displayName from line 131 (https://github.com/jar0s/reactNative-babel-wla/blob/master/android_template/app/build.gradle#L131) could not be read properly.
Hardcoding the bundleId and displayName does however solve the issue.
It's strange because the terminal is able to echo the environmental variables but gradlew isn't.
The command I execute is 'echo $BUNDLE_ID cd android && ./gradlew bundleRelease'
Maybe gradlew builds the app in a subshell and therefore the sourced variables aren't accessible?

That's interesting. If you have the environmental variable set in your terminal then it should be visible by gradle.
I wonder if it comes down to the settings of your shell.
Let me double check locally with a release bundle and I'll get back to you. I must admit I'm mostly building this project in the debug version.

I jut tried the following:

In the package.json added "build:android": ". scripts/load_env.sh && cd android && ./gradlew bundleRelease", in the "scripts" section.
Run yarn configure-brand:android
Run yarn build:android
Run java -jar ~/Downloads/bundletool-all-1.14.1.jar dump manifest --bundle ./android/app/build/outputs/bundle/release/app-release.aab > AndroidManifest.xml (after downloading the bundletool from here )
Inspected the manifest file extracted from the bundle and observed it had the package and andoid:label attributes correctly substituted with values from the given brand config.

I tried the above on both Linux and MacOS and it worked.

I tried to imitate step 1, but I have this error:
jacob@MacBook-Pro react_frontend % yarn build:android
permission denied: .

I made a script to be sure it's running in the same shell, but even this way it isn't working:
#!/bin/bash

source scripts/load_env.sh
npx react-native run-android

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.
   > Could not create task ':app:generateDebugLintModel'.
      > java.lang.NullPointerException (no error message)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 10s

Which is the error from above (https://github.com/jar0s/reactNative-babel-wla/issues/1#issuecomment-1537453470)
But it's interesting that it does work with your macos system. I'll let you know when I find a fix

That permission problem with . is interesting.
What if you tried using source command instead? So it would be: "build:android": "source scripts/load_env.sh && cd android && ./gradlew bundleRelease" then.

Something like "source is not a recognized command"

license: WTFPL


text:
What if I want two Passport instances

Hello,
I have used Passport for a long time, but now I reached a (possible) limitation with it, that I think it's important.
I'm building my app with express, and dividing it into '/client/...' and '/api/...'.

client should only be accessed by Authenticated Facebook users
api should only be accessed by Authenticated Admin users

and both client and api are in separate tables in the DB, and should keep logged in independently.
My Idea was that Passport had something like require('passport').create() so that we could isolate Passport applications, but I didn't found anything related to it.
Any thoughts?

var passport = require('passport');

var auth1 = new passport.Authenticator();
var auth2 = new passport.Authenticator();

authors: ivanseidel jaredhanson

repo: jaredhanson/passport


text:
Mekanism Enrichment Chamber's "input" (to remove recepies) is actually set to the output and doesn't work properly

In the ModTweaker(1) wiki it says that to remove an enrichment chamber recipe, you need to provide the input materials. That is wrong, with both ModTweaker(1) and this ModTweaker2 src (I built a .jar).
What does work is to provide the output. The only issue with this is that if there are more than one recipe that creates the same output (ie Copper Ingot & Copper Ore), it will only remove one of them, instead of them all. In an attempt to get rid of them all, I got the command to run twice, but running the same command twice just breaks the recipes.
This is true of both ModTweaker(1) and ModTweaker2 (just built it this morning).

The issue of a script only removing one of the recipes producing  the indicated output is an issue for the crusher as well. The recipe for string is a wool of any colour produces 4 string. the script mods.mekanism.Crusher.removeRecipe(minecraft:string); only removes one of the 16 recipes. I've been able to remove all recipes by repeating command 16 times. I've not attempted to use a loop to clean up my script yet.

I believe in general that the Mekanism Remove recipe is not functioning as intended. It functions as expected when you remove one or two recipes with only one way to produce the output entered in script. After 3 recipes (or if output has 3 or more possible inputs to produce it) are removed from a machine all recipes are removed.

Still breaks the recipes. Luckily, I can use this behavior and re-add everything myself. That is, however, over 50 pages and will be very tedious.

Ok I changed it to remove all recipes, and it is meant to work on the output, not the input, that must be a wiki mistake.

authors: Bunsan jaredlll08 simlhawk


text:
Added example with-now-v2

Straightforward example to deploy to now v2.
Also see #900

I've tried this, but I'm getting an error after now deployment that says:
INTERNAL_MISSING_RESPONSE_FROM_CACHE
Any ideas? I can't find any documentation about it.

repo: jaredpalmer/razzle


text:
Duplicated speed | blazing fast 🔥 badges

Current Behavior

The speed | blazing fast 🔥 badges are duplicates.
Expected behavior
There should be only one speed | blazing fast 🔥 badges

Suggested solution(s)
See PR #1105

I didn't write that and don't agree with it (TSDX actually has performance issues and I've optimized multiple pieces in the past), but that was intentionally written that way

repo: jaredpalmer/tsdx


text:
Rollback #208: Reinstate rollup-plugin-typescript2

As described in #200, tsdx previously utilized rollup-plugin-typescript2 to compile and check TypeScript files. On account of the fact that the above plugin cannot be used alongside other rollup plugins that contain async/await syntax without a workaround, tsdx migrated to @wessberg/rollup-plugin-ts in #208. However, as discussed in #268, #274, #285 and elsewhere, the above migration caused untoward consequences in certain instances for existing tsdx users with custom babel setups.
This PR reverts support @wessberg/rollup-plugin-ts and restores rollup-plugin-typescript2 as compiler in chief.
Closes #268, #274, #285

Hmm.  We specifically updated Redux Starter Kit to use 0.10.6 because it started correctly merging all our declarations into a single index.d.ts file, vs a separate .d.ts file per source file.  Does this rollback still do things as a single index.d.ts file?

Yes, I believe so. The issue was that the rollup-plugin-ts2 really did not work as advertised and introduced more problematic and inconsistent bugs such as duplicative references directives and incorrect declarations. @markerikson why does merging declarations matter?

I know @phryneas pointed out some issues where that might not work with certain Webpack setups, apparently.  See https://github.com/reduxjs/redux-starter-kit/pull/212#issuecomment-543033641 for discussion.

@medelman17 @markerikson FWIW, my OG formik rollup setup (pre-tsdx) didn't use rollup-plugin-typescript2 at all, instead it did a 2 pass compile. First pass used tsc-watch (which is just tsc with an onSuccess flag) to compile typescript to a temp directory. Second pass just used rollup to bundle that JS up and move the types to the dist dir. The clear benefit of this setup is that you can just use good ol' tsc and let it do it's thing. Then you can let people go buck wild with rollup.

Yes, I believe so. The issue was that the rollup-plugin-ts2 really did not work as advertised and introduced more problematic and inconsistent bugs such as duplicative references directives and incorrect declarations.

Merging declarations, something that rollup-plugin-typescript2 doesnt do, is non-trivial. I think it's a bit harsh to right out say it is not working as advertised 🙂. I'm putting a lot of effort into fixing whatever issues that remains with declaration bundling and are addressing the issues one at a time.

Didn't mean to come off as rude, nor does this have anything to do with lack of effort. I understand that you're working through bugs, but until those are fixed, we need to ensure that the published version of tsdx still works in the interim. Looking forward to when the declaration merging is stuff is sorted out. It's very cool and exciting.

I was betting it will conflict. :laughing: The customBabelRollup plugin should be removed (entirely dropping rollup-plugin-babel) and passed as babelConfig to the ts plugin, I believe. But yea, I agree that we need to wait :)

@jaredpalmer : no, it looks like v0.11.0 is not combining types into a single index.d.ts file.
I just tried updating Redux Starter Kit and rebuilding, and it's back to individual .d.ts files per source file.

hm... so, what's the recommended approach then to introduce additional rollup plugins that contain async/await?

authors: jaredpalmer markerikson medelman17 smashercosmo tunnckoCore wessberg


text:
Custom dialog style

Can we add custom dialog style ? Like .setDialogStyle(R.style.CustomDialogStyle) and set it as you create the alert dialog.

@hristorv We have forked the project and added styling option, you can find it here: https://github.com/PolideaInternal/ColorPicker

authors: hristorv martawoldanska

repo: jaredrummler/ColorPicker


text:
Report generation fails

When I create an empty sample project in Android Studio and run the licenseReleaseReport I get the following error:
Error:Execution failed for task ':app:licenseDebugReport'.
> Could not resolve all dependencies for configuration ':app:poms'.
   > Could not find :unspecified:.
     Searched in the following locations:
         file:/C:/Users/user/AppData/Local/Android/Sdk/extras/m2repository//unspecified//unspecified-.pom
         file:/C:/Users/user/AppData/Local/Android/Sdk/extras/m2repository//unspecified//unspecified-.pom
         file:/C:/Users/user/AppData/Local/Android/Sdk/extras/google/m2repository//unspecified//unspecified-.pom
         file:/C:/Users/user/AppData/Local/Android/Sdk/extras/google/m2repository//unspecified//unspecified-.pom
         file:/C:/Users/user/AppData/Local/Android/Sdk/extras/android/m2repository//unspecified//unspecified-.pom
         file:/C:/Users/user/AppData/Local/Android/Sdk/extras/android/m2repository//unspecified//unspecified-.pom
         file:/E:/Android Studio/gradle/m2repository//unspecified//unspecified-.pom
         file:/E:/Android Studio/gradle/m2repository//unspecified//unspecified-.pom
         https://jcenter.bintray.com//unspecified//unspecified-.pom
         https://jcenter.bintray.com//unspecified//unspecified-.pom
     Required by:
         project :app

@ChristianSchwarz Thanks for the fast report!
Did you add the plugin at the root directory? or the App module?

@ChristianSchwarz Any update for more information?

@jaredsburrows
I added the plugin to the app module. Hope that helps.

I'm getting the same issue as well. I added it on every module's build.gradle.

@ChristianSchwarz I looks like you are applying the plugin above the ":app:poms" module?
@dannyroa Does your error look similar?

@jaredsburrows: Yup. Exactly the same.

Hi,
The same here.
Exactly the same.
apply plugin defined in the gradle file of main module (got just one). Sure it's at the right place.
And the stack:
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:licenseMycmsMockDebugReport'.

Could not resolve all dependencies for configuration ':app:poms'.
Could not find :unspecified:.
Searched in the following locations:
file:/D:/android-sdk/extras/m2repository//unspecified//unspecified-.pom
file:/D:/android-sdk/extras/m2repository//unspecified//unspecified-.pom
file:/D:/android-sdk/extras/google/m2repository//unspecified//unspecified-.pom
file:/D:/android-sdk/extras/google/m2repository//unspecified//unspecified-.pom
file:/D:/android-sdk/extras/android/m2repository//unspecified//unspecified-.pom
file:/D:/android-sdk/extras/android/m2repository//unspecified//unspecified-.pom
https://jcenter.bintray.com//unspecified//unspecified-.pom
https://jcenter.bintray.com//unspecified//unspecified-.pom
Required by:
project :app

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

@MathiasSeguy-Android2EE Could you post your dependencies here? Usually this only happens if someone has a library project. Do you have a local aar or jar file?

Nope...
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
// Espresso
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations junit'
})
androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.2') {
// Necessary to avoid version conflicts
exclude group: 'com.android.support', module: 'appcompat-v7'
exclude group: 'com.android.support', module: 'support-v4'
exclude group: 'com.android.support', module: 'recyclerview-v7'
exclude group: 'com.android.support', module: 'design'
}
// Runner
androidTestCompile('com.android.support.test:runner:0.5') {
// Necessary if your app targets Marshmallow (since the test runner
// hasn't moved to Marshmallow yet)
exclude group: 'com.android.support', module: 'support-annotations'
}
testCompile('com.android.support.test:runner:0.5') {
// Necessary if your app targets Marshmallow (since the test runner
// hasn't moved to Marshmallow yet)
exclude group: 'com.android.support', module: 'support-annotations'
}
// ButterKnife
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
// LeakCanary
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
// Retrofit and co
compile 'com.squareup.moshi:moshi:1.3.1'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.okhttp3:okhttp:3.5.0'
compile 'com.squareup.retrofit2:converter-moshi:2.1.0'
compile 'com.squareup.okio:okio:1.11.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.5.0'
// EventBus
compile 'org.greenrobot:eventbus:3.0.0'
compile 'com.android.support:appcompat-v7:25.2.0'
androidTestCompile 'junit:junit:4.12'
testCompile 'junit:junit:4.12'
// Mockito
testCompile 'org.mockito:mockito-core:2.7.19'
// Design => for example snackbar
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:cardview-v7:25.2.0'
// NetWorkConnectionClass (Quality)
compile 'com.facebook.network.connectionclass:connectionclass:1.0.1'
//Google map
compile 'com.google.android.gms:play-services-maps:10.2.0'
compile 'io.balto:balto-sdk:2.1.0'
//Dart and Henson
compile 'com.f2prateek.dart:dart:2.0.2'
compile 'com.f2prateek.dart:henson:2.0.2'
provided 'com.f2prateek.dart:dart-processor:2.0.2'
provided 'com.f2prateek.dart:henson-processor:2.0.2'

}
Sorry.

@MathiasSeguy-Android2EE Thanks for helping me debug this! Usually when it says unspecified, it is looking for one of the following G:A:V(Group:ArtifactId/Name:Version).
Do you have any libraries in your "libs" folder? I see you have the following: compile fileTree(include: ['*.jar'], dir: 'libs'.

Same issue happening on my machine too! there is no lib folder too still!

Working on test and updating the code now.

This commit: https://github.com/jaredsburrows/gradle-license-plugin/commit/f2725455452c350561eb45b42954748a09cf9fb6 should have solved this issue. I making a 0.6.0 release now.

This is duplicate of https://github.com/jaredsburrows/gradle-license-plugin/issues/4.
@ChristianSchwarz @dannyroa @MathiasSeguy-Android2EE @kailash09dabhi Please try the new version and let me know!

Yes @jaredsburrows  good work! it works now!

repo: jaredsburrows/gradle-license-plugin


text:
Cannot change dependencies of dependency configuration ':app:api' after it has been resolved.

I have this in my app build.gradle:
...
configurations.all {
    resolutionStrategy.cacheDynamicVersionsFor 5, 'minutes'
    all*.exclude module: 'some-dependency' //hereeeee
    dependencies {
...

And when I run licenseDebugReport, I get this:

Cannot change dependencies of dependency configuration ':app:api' after it has been resolved.

Actually it seems the error is just logged and can be ignored safely. However, to get rid of the outputs I changed the execution order so that licenseReport runs early:
licenseReport {
  ...
}
compileJava.mustRunAfter('licenseReport')

Adding the mustRunAfter like above is a workaround.

Since this can be ignored safely, closing for now.


text:
feature request version/0 predicate

Hi,
I have a feature request. When working with Tau Prolog I would like to know which version I am working with. There is a quasi standard that a Prolog system provides a predicate version/0. At least I find 3 Prolog systems that do that:
SWI-Prolog has it:

YAP Prolog has it:

My system has it:

But how should this be done in Tau Prolog. Does it have write/1 and nl/0 already somehow?
Bye

Yes. Tau Prolog already has all the I/O standard predicates, for both browsers and Node.js, so we can add that predicate. Meanwhile, you can type pl.version in the terminal to see the current version.

authors: jariazavalverde jburse

repo: jariazavalverde/tau-prolog


text:
When listing objects in a huge S3 bucket it exceeds the call stack limit

Probably a bit of an edge case but if you try to deploy a massive site to a massive bucket (mine is 71.7GB and has 167,651 objects):
RangeError: Maximum call stack size exceeded
I think this is to do with the way the list objects function is called recursively. Maybe implementing a queue here would fix this issue?

I don't think a queue is necessary. We could fix this by using async/await within a loop, removing the recursion.

I'm trying to reproduce this. I spun up a new EC2 instance and used it to populate a bucket with many tiny files.
mkdir files
cd files
dd if=/dev/urandom bs=1024 count=256 | split -a 5 -b 1 - file.
aws s3 sync . s3://manyfilestest.joshwalsh.me

Now I'm trying to deploy my site to the same bucket. How long does it usually take before it gives the error? Mine has been sitting on Listing objects... for a while.

authors: FraserThompson JoshuaWalsh


text:
Gulpfile's compilerPath is hardcoded to a path that doesn't exist

By default, doing a bower install (as per your build steps) doesn't bring down the compiler at bower_components/closure-compiler/lib/vendor/compiler.jar like the gulp file refers to. This means the build steps are currently broken without updating the gulpfile manually.

vibrant.js is deprecated. Please use node-vibrant instead. This issue should not exist in node-vibrant due to different implementation.

authors: akfish iMerica


text:
Variables and Header sets are not imported

Recreation steps:
Scenario:
Export from ARC including "Saved requests and projects", "Header sets", "Variables and environments",
Then delete the projects, variables and header sets.
Import the exported file
Issue:
Variables and Header sets do not get imported.

Thank you for reporting this. This obviously shouldn't happen.

This is now fixed in the code. Soon it will be released.

authors: RikWaspcroft jarrodek

repo: jarrodek/ChromeRestClient


text:
Typo in the Socket screen: "Prevoius connections"

FYI project maintainers: I submitted a couple of PRs for this and another typo - Hope that's OK!
https://github.com/advanced-rest-client/websocket-history/pull/1
https://github.com/advanced-rest-client/headers-form-editor/pull/1

@LucyParry Thank you for the PRs. I've merged changes and I'll update the app today / tomorrow.

authors: LucyParry jarrodek mhelvens


text:
An error occured during the request

Originally reported on Google Code with ID 312
What steps will reproduce the problem?
1. Request using Post Method
2. Input the request of Payload
3. Click Send

Expected result:
Request should be process and received response.

Actual Result:
An error occured during the request

OS:Windows 7 Professional
Browser: Google Chrome Version 43.0.2357.81

I'm using this before and it is working fine. But now i wasn't able to do any POST
request. My server is up and running good.

Reported by avbasangan on 2015-06-04 09:58:24

 * *Attachment: 2015-06-04_175418.PNG![2015-06-04_175418.PNG](https://storage.googleapis.com/google-code-attachments/chrome-rest-client/issue-312/comment-0/2015-06-04_175418.PNG)*

I can't reproduce a problem. Any more details?


text:
Unable to select from history

When open a command from history the url is in Label field instead of text, hence unable to select the text
Expected outcome
I should be able to select the text
Actual outcome
Text is a label, so can't select anything, just headers and payload.
Versions
App: 7.7.26.168-stable
Chrome: 48.0.2564.116
Platform: Mac OS X (10_10_5)
Steps to reproduce

I click on history
select with checkbox a previous command
The right hand rail appears
I try to select the URL and can't

P.S. Don't know if you aware, but on google store very bad reviews for popup feature and this new release, my colleagues are also highly disappointed with pop-up screen.

Hi,
Thank you for your issue report.
As for popup window issues, please, refer to the issue #510 for detailed discussion and explanation.
As per your issue, do you mean that you can't select text in the saved list panel?
Thanks.

I'm closing this issue because of lack of response.

authors: jarrodek saganas


text:
Rails 5 Deprecation: alias_method_chain

alias_method_chain has been deprecated.
As far as I can tell it is only used in one place and should be easily replaceable.

Indeed, feel free to submit a PR ;)

done :)

Thanks!

authors: jarthod tisba

repo: jarthod/survey-gizmo-ruby


text:
Error writing to virtual device

Hello.
Issue:
Keydogger crashes when triggering macro (macro fails to execute).
E.g. Typing @hello will trigger the crash
When running keydogger debug, the error Error writing to virtual device is printed.
Version running:
Latest commit: https://github.com/jarusll/keydogger/commit/781bbcd328fe8ff1fff237248922780ea0128dbf
My Device Info:
I'm using Hyprland v0.40 on NixOS 24.05
Debugging steps I have taken:
Using a barebones keydoggerrc file (@hello=Hello, World!)

Ensure correct KEYDOGGER_KEYBOARD device. Verified through using evtest to capture input. (Also otherwise keydogger shouldn't even detect a macro is to be triggered)
The virtual device does supposedly successfully register, since once keydogger is started, it is visible via evtest and in /dev/input/event<N>
I ran  sudo env KEYDOGGER_KEYBOARD=/dev/input/event<N> strace keydogger debug and got the following (the last few lines before the crash)

  read(3, "\333\200xf\0\0\0\0\255\364\5\0\0\0\0\0\4\0\4\0\17\0\7\0", 24) = 24
  read(3, "\333\200xf\0\0\0\0\255\364\5\0\0\0\0\0\1\0&\0\1\0\0\0", 24) = 24
  read(3, "\333\200xf\0\0\0\0\255\364\5\0\0\0\0\0\0\0\0\0\0\0\0\0", 24) = 24
  read(3, "\333\200xf\0\0\0\0\34\203\7\0\0\0\0\0\4\0\4\0\22\0\7\0", 24) = 24
  read(3, "\333\200xf\0\0\0\0\34\203\7\0\0\0\0\0\1\0\30\0\1\0\0\0", 24) = 24
  write(3, "\333\200xf\0\0\0\0\34\203\7\0\0\0\0\0\1\0\30\0\0\0\0\0", 24) = 24
  write(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 24) = 24
  write(62, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\16\0\1\0\0\0", 24) = -1 EBADF (Bad file descriptor)
  newfstatat(1, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
  write(1, "Error writing to virtual device\n", 32Error writing to virtual device
  ) = 32
  exit_group(9)                           = ?
  +++ exited with 9 +++

I attempted to listen to the keydogger virtual device with evtest while it was running. This is what happened after triggering a macro:

# Info
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x4a3 product 0x7cf version 0x0
Input device name: "keydogger"
...
Testing ... (interrupt to exit)
expected 24 bytes, got -1
# Most likely the device getting cleaned up after crashing
evtest: error reading: No such device

The \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\16\0\1\0\0\0 representation is for keycode KEY_BACKSPACE. Can you give me a full strace log till crash?

Not reproducible on Sway.

Ok man, this is the weirdest shit ok excuse my profanity I never write in issues like this. I had different comment in process, but I deleted it when I found this out.
So the main error that stuck out to me, was why it kept trying to write to FD 62, since fkeyboard_device and vkeyboard_device are the last ones to be opened, they should be at FD 3 and FD 4 respectively (which is reflected in the syscalls).
openat(AT_FDCWD, "/dev/input/event6", O_RDWR|O_APPEND) = 3
openat(AT_FDCWD, "/dev/uinput", O_WRONLY) = 4

So I did what any C noob would do, put in print statements everywhere for vkeyboard_device trying to trace why it was becoming 62.
Anyways, apparently https://github.com/jarusll/keydogger/blob/7c0a30ff442744a986e10282997acb347f92cd60/keydogger.c#L205 is to blame.
My test:
    printf("Here-1: V Device fd: %d\n", vkeyboard_device);
    key_codes_to_position[KEY_2 | FLAG_UPPERCASE] = 63;
    printf("Here-2: V Device fd: %d\n", vkeyboard_device);

Output:
Here-1: V Device fd: 4
Here-2: V Device fd: 62

I just forced the FD back to 4
    printf("Here-1: V Device fd: %d\n", vkeyboard_device);
    key_codes_to_position[KEY_2 | FLAG_UPPERCASE] = 63;
    printf("Here-2: V Device fd: %d\n", vkeyboard_device);
    vkeyboard_device = 4;

And everything worked as normal. I thought it was some kind of maybe undefined behavior, so I repeated the assignment
    printf("Here-1: V Device fd: %d\n", vkeyboard_device);
    key_codes_to_position[KEY_2 | FLAG_UPPERCASE] = 63;
    printf("Here-2: V Device fd: %d\n", vkeyboard_device);
    vkeyboard_device = 4;
    key_codes_to_position[KEY_2 | FLAG_UPPERCASE] = 63;
    printf("Here-3: V Device fd: %d\n", vkeyboard_device);

And the output is
Here-1: V Device fd: 4
Here-2: V Device fd: 62
Here-3: V Device fd: 4

Anyways, I was going to originally just ask whether the window-manager would matter in this case, since it seems like the only time wayland stuff gets involved (via wl-clipboard) is when there's a non-ASCII macro definition.

Yup something weird is going on. When I load keydogger into ghidra and inspect the init_key_to_position_map function frame, there it is clear as day
004026fc c7 05 0e    MOV     dword ptr [vkeyboard_device],0x3e                = ??
      4c 00 00
      3e 00 00 00

Brother, I think I figured it out.
You have https://github.com/jarusll/keydogger/blob/7c0a30ff442744a986e10282997acb347f92cd60/keydogger.h#L12
But KEY_SLASH is 53 and FLAG_UPPERCASE is 128, soooo
https://github.com/jarusll/keydogger/blob/7c0a30ff442744a986e10282997acb347f92cd60/keydogger.c#L204
ends up being undefined behavior. I noticed when I added my fix of setting vkeyboard directly, macros containing ? broke, and upon debugging, found that the position of key_codes_to_position[KEY_SLASH | FLAG_UPPERCASE] was somehow now 4.
I changed the MAX_KEY_CODE in the header file to 182 and it fixed both issues.
Opened a PR https://github.com/jarusll/keydogger/pull/4 (What an appropriate PR number)

Thanks for going down this rabbithole.

This is what I got for my dev build. I realized the max key_codes is 57 so I can use 64 for FLAG_UPPERCASE. I confirmed theres no suspicious assignment with 64.
Ideally this should have been a compile error with -Warray-bounds. Thanks.

Anyways, I was going to originally just ask whether the window-manager would matter in this case, since it seems like the only time wayland stuff gets involved (via wl-clipboard) is when there's a non-ASCII macro definition.

This should work on X11 in theory for ascii expansions. I haven't tested it myself.

repo: jarusll/keydogger


text:
#4185 Model 'change' event is not triggered after Exception.

PR for #4185

Good point! I'm now strongly leaning towards slapping a "wontfix" on this, but I'll leave it open for a day or so in case somebody else wants to reply.

I agree. Exceptions in the handler should ideally be handled and prevented by the dev, and consistent handler behavior is more useful overall than trying to take into account the edge cases this would have + applying them to the other handler functions in the library.

authors: GammaGames jgonggrijp vinaymor002

repo: jashkenas/backbone


text:
#3391 - Match trailing slash on root to how root was configured.

Fixes #3391 - Allow developers to control whether a trailing-slash should be included or not.

Is there anything I can do to help move this forward?
I believe this change maintains backwards compatibility and includes a full set of tests, so it should be a low-risk include.

@kdickerson Sorry for the long silence. I have recently adopted Backbone maintainership (see #4244) and will give your PR high priority.

Thanks @kdickerson. Would you like to adjust the branch yourself or shall I do it? As far as I'm concerned, this can stay within the same PR.

I can do it.  I'll see if I can get it done today.

Pushed an update after rebasing onto master.  Maintains existing behavior unless keepRootSlash is passed as an option to History.start().  keepRootSlash opts into new behavior which always matches the trailing slash to how it was configured by the root option.

The keepRootSlash option switches the behavior to always respect whether root ends with a slash or not (perhaps it should be respectRootSlash instead).  That is _keepRootSlash indicates we should respect the value passed for root and _wantsRootSlash indicates that the passed value for root ends in a slash.  So we have at least 3 states we need to track: legacy mode, new-behavior and root ends in slash, new-behavior and root does not end in slash.  I don't see a way to account for all three states without both variables.
The problem, specifically, is that the legacy behavior is not "always remove a trailing slash."  It sometimes removes it and sometimes adds it (if root is set to an empty string).  So we have to know if we're operating in legacy mode or new mode otherwise we can't do the right thing when root is set to an empty string.  We could make the new mode mean "always use a trailing slash" but then there's still no way to get the behavior of "never use a trailing slash."
So it seemed like a better option to make the new mode mean "respect the developer's decision about the trailing slash."
I changed the name of two of the existing tests to improve the naming since several tests had the same name and tested different things.  Including one of which tested the exact opposite of the name (name said "No trailing slash on root" and then tests that it has a trailing slash).
I believe the only functionality I changed in an existing test was to add a trailing slash to root to cover the legacy case that trailing slashes are dropped.  Unfortunately, the way the diff is being parsed makes that hard to see. I roll those changes back and instead add another test that covers the legacy behavior that removes trailing slashes.  I'll be able to get to it tomorrow.

The keepRootSlash option switches the behavior to always respect whether root ends with a slash or not (perhaps it should be respectRootSlash instead). That is _keepRootSlash indicates we should respect the value passed for root and _wantsRootSlash indicates that the passed value for root ends in a slash. So we have at least 3 states we need to track: legacy mode, new-behavior and root ends in slash, new-behavior and root does not end in slash. I don't see a way to account for all three states without both variables.

I disagree that the third case should be accounted for. The logic in Backbone.history heavy relies on root starting and ending with a slash. #3391 is a complaint about the slash being present in the root but being stripped when the fragment is empty. You need only one variable to keep track of whether the user wants this or not.

The problem, specifically, is that the legacy behavior is not "always remove a trailing slash." It sometimes removes it and sometimes adds it (if root is set to an empty string).

No, this is a misunderstanding. The slash is added back if the rootPath becomes empty because root is '/' and we strip the final slash. root is never set to an empty string; the start method enforces that it starts and ends with a slash on line 1863. The adding back is to ensure that we retain a leading slash in the degenerate case that this is also the trailing slash.

So we have to know if we're operating in legacy mode or new mode otherwise we can't do the right thing when root is set to an empty string.

What, according to you, is "the right thing" when the root is an empty string?

We could make the new mode mean "always use a trailing slash"

Right, this is what I expected you to implement.

but then there's still no way to get the behavior of "never use a trailing slash."

Why do you want a "never use a trailing slash" mode?

So it seemed like a better option to make the new mode mean "respect the developer's decision about the trailing slash."

If that is the intent, I agree that _respectRootSlash or _freezeRootSlash or something like that would be a more appropriate name for _keepRootSlash. However, I am not convinced that this is a good idea. Saying farewell to the assumption that root begins and ends with a slash seems like opening a big can of worms.

I changed the name of two of the existing tests to improve the naming since several tests had the same name and tested different things. Including one of which tested the exact opposite of the name (name said "No trailing slash on root" and then tests that it has a trailing slash).

This is also a misunderstanding. In those two tests, the user has not set a trailing slash on root (in the first, by not setting a root at all, in the second by setting it to 'root'). Hence "no trailing slash on root". The test verifies that Backbone.history still behaves in a sane way in that case, which includes implicitly adding leading and trailing slashes under the hood.

I believe the only functionality I changed in an existing test was to add a trailing slash to root to cover the legacy case that trailing slashes are dropped. Unfortunately, the way the diff is being parsed makes that hard to see.

I could see that you only added assertions to the end of that test, but that still changes the meaning of the test.

I can roll those changes back

Yes, please do. Please, never change existing tests, unless you can prove (in the strongest sense of that word) that they are wrong.

and instead add another test that covers the legacy behavior that removes trailing slashes.

Maybe, but let us focus on getting the assumptions right first.

the start method enforces that it starts and ends with a slash on line 1863.

Ah, I had missed that.
I dislike code which force changes input to something else.  In this case it resulted in #2656 due to users expecting the code to respect their configured value (and have no trailing slash).  And the response to #2656 to always removing trailing slashes led to #3391 because other users also expected the code to respect their configured values (and have a trailing slash).  Too bad the original response to #2656 wasn't to respect the configured value rather than to switch the behavior from slash to no slash.
I realized my current version was colored by my original implementation which attempted to maintain as much backwards compatibility as possible using only the value provided for root.  The new implementation doesn't need to care about that and we do only need to track "no trailing slash mode" (which is what the existing implementation does with the leading slash understanding in place) or "trailing slash mode" without caring what is passed since the existing code already ignores what's passed as it relates to leading/trailing slashes.
Knowing that start already ignores the slashing of root should significantly simplify the tests since many of them don't need to exist as they don't actually test anything unique.
I'll get these changes pushed out later today.

I wouldn't say that start ignores the user's preferences; I would rather frame it as normalizing the root. This is somewhat necessary because Backbone needs to work with the reality of how window.location works. Among other things, this means that the leading slash really needs to be there, even if the user doesn't like it. Also, once you glue two paths together, there's going to have to be a slash in between, so at some point, Backbone would have to add that slash if the user didn't provide it.
That said, I agree that there have been many unfortunate changes in the past (see also #4266). In the case of Backbone.history, I think the end result is still quite sensible, but sometimes, we have to put up with serious stupidity only because removing it would be a breaking change. The best (worst) example of this that I know, is the crazy comparison semantic in Underscore's _.min and _.max (you may need to expand hidden comments and hit enter again in the browser's address bar in order to see that particular comment).

Knowing that start already ignores the slashing of root should significantly simplify the tests since many of them don't need to exist as they don't actually test anything unique.

Do you mean the existing tests or your own tests? In the first case, the tests likely originated in a period when the implementation didn't have all the subtleties that it has today. They should probably still be preserved in order to prevent regressions, but if you tell me which tests you think could be removed, I'll consider it.

I'll get these changes pushed out later today.

Great, thanks!

Can help but wonder if I saw the normalization of the slashes when I wrote the original commit since this is basically the same as that.  I chose the option name trailingSlash since I felt keepSlash was misleading unless one knows the value for root will be normalized (which I don't see in the documentation, and should probably be added).  keepSlash sounds like if there's a slash it will stay, but doesn't, to me, suggest that a slash will always be used.
So I think the semantics of trailingSlash which defaults to false works to indicate there will never be trailing slashes or there will always be trailing slashes.

FYI, I didn't add any documentation because CONTRIBUTING.md says:

In your pull request, do not add documentation...

I'll update the documentation.

Good point! That remark refers to the annotated source code, but I totally agree it makes a different impression. I'll create an issue for it, now that you remind me of it.

authors: jgonggrijp kdickerson


text:
Add alloc feature and make it optional

These traits don't really depend on alloc, but a few of the descriptor types (Advertisement and GattService/Characteristic/Descriptor) need data structures and these are pretty awkward to implement with const generics and for seemingly little benefit given that this usage of alloc can be used downstream at app initialization only.

Found a better way thanks to @ivmarkov: https://github.com/jasta/ble-peripheral/commit/348fe45ee8d97318980f179d110d13fe4ac8145f

@jasta I would like to put a few extra comments / feedback, but it is kind of difficult to do without an opened PR. Any brilliant ideas?

Maybe just link to the lines directly and comment?  I can open PRs from here on, just was direct pushing to move fast during the very early stages :)

Maybe just link to the lines directly and comment? I can open PRs from here on, just was direct pushing to move fast during the very early stages :)

Sounds like a lot of work :) Can you somehow open a PR against something? I really want to provide feedback for a few things :)

As in against an empty branch in your repo?

Oh I see, you've got a lot to say about it :P  Here you go: https://github.com/jasta/ble-peripheral/pull/4

authors: ivmarkov jasta

repo: jasta/ble-peripheral


text:
The last two years of community development

Includes all enhancements over the last two years made by @sinm, @jphenow, @ehlertij, @markbates and @hubertlepicki.
The gem is currently not tested within multiple ruby environment. I tested on 1.9.3-p392 and 2.0.0-p353. Travis is set to 1.9.3-p547.
This does not necessarily have to be merged but might be a good start for discussion.

What about new release?

@radarek there's a discussion at #43 about maintenance for rack-reverse-proxy.

authors: pex radarek

repo: jaswope/rack-reverse-proxy


text:
Build error

I get the following build error when trying to gulp build, have you ever seen this?
/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:163
			if(isError) throw e;
			                  ^
Error: ModuleBuildError: Module build failed: ReferenceError: [BABEL] /home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/react-modal/lib/index.js: Unknown option: /home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/react-modal/.babelrc.presets
    at Logger.error (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/logger.js:58:11)
    at OptionManager.mergeOptions (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:126:29)
    at OptionManager.addConfig (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:107:10)
    at OptionManager.findConfigs (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:168:35)
    at OptionManager.init (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:229:12)
    at File.initOptions (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/index.js:147:75)
    at new File (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/node_modules/babel-core/lib/transformation/file/index.js:137:22)
    at Pipeline.transform (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/node_modules/babel-core/lib/transformation/pipeline.js:164:16)
    at transpile (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/index.js:12:22)
    at Object.module.exports (/home/mohammad/repos/tab-master-5000-chrome-extension/node_modules/babel-loader/index.js:71:12)

Node version: 0.10.28
npm version: 1.4.9

Ah, yes, just rename .babelrc.presets to _.babelrc.presets, and it should get past that error. That's happening because that library's babel file is overriding the project's configuration, and possibly uses a different version of babel/set of plugins.

Thanks for the hint. .babelrc.presets didn't exist. I renamed .babelrc to .babelrc.presets and it worked.

I see. No problem, glad it worked for you.

authors: auxiliary jaszhix


text:
Move ResourceID to fabric8 kubernetes client

The io.javaoperatorsdk.operator.processing.event.ResourceID class seems to be useful also outside the operator, it would be nice to move it to the fabric8 kubernetes client

I think we had discussed this at some point but I guess that didn't go further :)
It would maybe make more sense to open that issue in the fabric8 client project, though?

I will tomorrow

https://github.com/fabric8io/kubernetes-client/issues/3991

To mention also here, this is called ObjectKey, in controller runtime.
https://github.com/kubernetes-sigs/controller-runtime/blob/c46b410039fdc9d620a4217bc7c63c5a7fffae46/pkg/client/interfaces.go#L31-L31
Would be a little better to have consistent naming, but it's not that important.

Maybe worth renaming it before we release 3.0?

Actually looking at the code it's actually named NamespacedName and it's coming from apimachinery… I'd prefer using NamespacedName over ObjectKey actually :)

created this: https://github.com/java-operator-sdk/java-operator-sdk/issues/1073
I like ObjectKey more, there is a reason why it's probably also aliased in controller runtime. It describes better to identify an Object.

To be consistent actually fabri8 client should have a class with NamespacedName and we would just to extend it.

created this: #1073
I like ObjectKey more, there is a reason why it's probably also aliased in controller runtime. It describes better that is used to identify an Object IMHO.

I don't agree. It's aliased in controller runtime because it's used in a cache-like interface. That's not strictly what we're using it for and NamespacedName corresponds much better to the intent as opposed to something that's both too generic (what is the Object in ObjectKey referring to?) and too restrictive (the Key part implies it's used only in map-like structures)… I'd rather we keep ResourceID than use ObjectKey if we don't want to use NamespacedName.

I don't agree. It's aliased in controller runtime because it's used in a cache-like interface.

It's used to identify an object/resource specify the object of a given type.
(The client here does not necessary use cache.) This is really just the information needed to identify the object in case the other  required information is present.  Mainly because of this I don't like the ID in the name. This is not really an id, it does not identify the resource without additional information (api group, kind, version). So that's why I think Key is better.
Object and Resource are basically synonyms, so if we change it, would be either ResourceKey or ObjectKey. I'm fine with either. Since this is how we use it.
See the more correct definition between object and resource in kubernetes: https://stackoverflow.com/questions/52309496/difference-between-kubernetes-objects-and-resources   - the Object seems to be the correct term here to me.
Also this is quite obvious it's a Kubernetes object from the context, not a Java Object. We already use ObjectMeta, ObjectList and other names like this. Actually it's better in this sense, that in fabric8 client this is used.
So that is why I think that using Object and Key is the good combination here. But if you think ResourceKey is better, I'm fine with that too.
If there is no consensus, we can just keep it as it is.

The problem is that Resource has a specific meaning for us which doesn't really map to the Kubernetes concept of resource. So any attempt to use something from controller-runtime will just be confusing in my opinion. For example, ResourceID is used in JOSDK as key for external objects as well. Trying to use the name from controller-runtime when it's actually used for something different would be a mistake, and actually, this might also mean that porting the concept to the fabric8 client might not be such a good idea, unless we clarify the semantics (and in this case, the concept of NamespacedName is much more accurate than ObjectKey for how we use it, imo).

For example, ResourceID is used in JOSDK as key for external objects as well

Where exactly? I don't think so. It always targets a Kubernetes Object.

Trying to use the name from controller-runtime when it's actually used for something different would be a mistake

It's not really something different to my understanding, they are also just addressing an object.
But that is why I tried to describe the rational behind the name above. (So why Key instead of ID, and why Object instead of Resource)
Why I don't like NamespacedName is because it's a very generic concept. It really not intention revealing, we want to identify an object by the ResourceID/ObjectKey. (It' not fundamntelly wrong by no means, it just does not feel very cohesive, or on the same level of abstraction as the actual context)

this might also mean that porting the concept to the fabric8 client might not be such a good idea, unless we clarify the semantics

I don't have strong opinion on this. Maybe we should involve @manusa and @shawkins for that.

For example, ResourceID is used in JOSDK as key for external objects as well

Where exactly? I don't think so. It always targets a Kubernetes Object.

CachingEventSource for example. The target type is not necessarily a Kubernetes object.

Trying to use the name from controller-runtime when it's actually used for something different would be a mistake

It's not really something different to my understanding, they are also just addressing an object. But that is why I tried to describe the rational behind the name above. (So why Key instead of ID, and why Object instead of Resource)

Well, for JOSDK, a Resource is anything that needs to be managed, it's not restricted to Kubernetes objects for sure. So in JOSDK a Resource might be a Kubernetes Object but it might be a MySQL database or an external API.

Why I don't like NamespacedName is because it's a very generic concept. It really not intention revealing, we want to identify an object by the ResourceID/ObjectKey. (It' not fundamntelly wrong by no means, it just does not feel very cohesive, or on the same level of abstraction as the actual context)

I agree that NamespacedName is very generic but so is ObjectKey. ObjectKey is worse for us because we have nothing that we call Object in our code, so it doesn't refer to any concept we already use. Probably NamespacedName is not good either, so let's keep ResourceID :)

Ok, I can live with that :)

authors: csviri lburgazzoli metacosm

repo: java-operator-sdk/java-operator-sdk


text:
InMemoryCache

https://github.com/javascripteverywhere/web/blob/26319b2669bb9b7e80ae7015a5cd60d59fd26629/final/App.js#L7

The InMemoryCache class resides in a different package from the Apollo Client core. Make sure the apollo-cache-inmemory package is installed in your project

https://www.apollographql.com/docs/react/caching/cache-configuration/
https://github.com/javascripteverywhere/web/blob/26319b2669bb9b7e80ae7015a5cd60d59fd26629/final/App.js#L45
=> Uncaught TypeError: cache.writeData is not a function at Object.parcelRequire.App.js.react (App.js:45)

For anyone who comes across this issue, we discuss it in more detail here: https://spectrum.chat/jseverywhere/general/chapter-15-web-authentication-and-state-issue-with-cache-writedata~998a84e5-9caa-4dab-bccb-d97fea79c1b1
The tl;dr summary is:
If you are using this repo as a starter project as shown in the book, you should not experience this issue.
However, when using the latest version of Apollo the two packages need to be installed separately:
import { ApolloClient, ApolloProvider, createHttpLink } from '@apollo/client';
import { InMemoryCache } from 'apollo-cache-inmemory';

Otherwise, the code should be the same.
Hopefully that helps!

repo: javascripteverywhere/web


text:
Issue with versionCode check from JSON

[x] I have verified there are no duplicate active or recent bugs, questions, or requests.
[x] I have verified that I am using the latest version of AppUpdater.
[x] I have given my issue a non-generic title.
[x] I have read over the README, Wiki and FAQs (before asking questions on how to do something).

Details

PiracyChecker version: 2.x.x
Device OS version: 7.1.1
Device Manufacturer: LG
Device Name: Nexus 5X

Builder
appUpdaterUtils = new AppUpdaterUtils(this)
                .setUpdateFrom(UpdateFrom.JSON)
                .setUpdateJSON("https://gigabytedevelopersinc.com/apps/sonshub/update/update-changelog.json")
                .withListener(new AppUpdaterUtils.UpdateListener() {
                    @Override
                    public void onSuccess(Update update, Boolean isUpdateAvailable) {
                        Log.d("Latest Version", update.getLatestVersion());
                        Log.d("Latest Version Code", String.valueOf(update.getLatestVersionCode()));
                        Log.d("Release notes", update.getReleaseNotes());
                        Log.d("URL", String.valueOf(update.getUrlToDownload()));
                        Log.d("Is update available?", Boolean.toString(isUpdateAvailable));

                        // Shows a custom bottomSheet
                    }

                    @Override
                    public void onFailed(AppUpdaterError appUpdaterError) {
                        Log.d("AppUpdater Error", "Something went wrong");
                    }
                });
        appUpdaterUtils.start();

Reproduction Steps

Use the AppUpdaterUtils
Use the UpdateFrom.JSON
Declare the link to the JSON file (https://my-site.com/update/update-changelog.json)
This is how my JSON looks

{
  "latestVersion": "1.1",
  "latestVersionCode": 2,
  "url": "https://my-site.com/update/app.apk",
  "releaseNotes": [
    "- First evolution",
    "- Second evolution",
    "- Bug fixes"
  ]
}

Installed app has versionName of 1.0 and versionCode of 1

Expected Result
The update notice bottomsheet should be shown only when the versionName and versionCode is higher from the versionName and versionCode of the installed apk
Actual Result
With the JSON above, I get the update notice. But, when I change the info in the JSON to match the same with the installed app. Something like:
{
  "latestVersion": "1.0",
  "latestVersionCode": 1,
  "url": "https://my-site.com/update/app.apk",
  "releaseNotes": [
    "- First evolution",
    "- Second evolution",
    "- Bug fixes"
  ]
}

I still get the Update Notice... Even when I have installed the updated version of the app (the latest), I still get the Update Notice every time.
Irrespective of how I change the JSON versionName and versionCode, I still get the Update Notice
Something is not correct with the check.

No need, I have fixed the problem...
Issue was that, I needed to call an if statement to check if the JSON versionCode is higher than the versionCode of the installed app.
So far, so good. It works
Here is the change I made in the onSuccess callback
if (update.getLatestVersionCode() > BuildConfig.VERSION_CODE) {
     // Show Update bottomSheet
} else {
    // No Update
    // TODO: Do something when no update
}

repo: javiersantos/AppUpdater


text:
🛑 Ofelia Nieto, 57 is down

In 92dbfd7, Ofelia Nieto, 57 (http://159.65.204.200:7022/) was down:

HTTP code: 502
Response time: 18667 ms

Resolved: Ofelia Nieto, 57 is back up in b60e58c after 17 minutes.

repo: javisu/monitor


text:
🛑 Rodriguez Marin, 88 is down

In c9a8bee, Rodriguez Marin, 88 (http://159.65.204.200:7057/) was down:

HTTP code: 502
Response time: 18654 ms

Resolved: Rodriguez Marin, 88 is back up in 7cdecf8.


text:
🛑 Antonio Acuña, 10 is down

In 44cb865, Antonio Acuña, 10 (http://159.65.204.200:7047/) was down:

HTTP code: 502
Response time: 18590 ms

Resolved: Antonio Acuña, 10 is back up in f4643af.


text:
🛑 Valderrebollo, 30 is down

In 21e9b9a, Valderrebollo, 30 (http://159.65.204.200:7050/) was down:

HTTP code: 502
Response time: 18522 ms

Resolved: Valderrebollo, 30 is back up in d48c085.


text:
🛑 Rodriguez Marin, 88 is down

In 818cddb, Rodriguez Marin, 88 (http://159.65.204.200:7057/) was down:

HTTP code: 502
Response time: 18717 ms

Resolved: Rodriguez Marin, 88 is back up in ed1a595.


text:
Question about Purpose of Pallas

If I understand it correctly, the idea of Pallas is to provide a level of abstraction from Triton, enabling one to define a kernel using JAX functions.
Obviously, Triton doesn't provide any AutoDiff functionality, it is just a way of interacting with the GPU memory in a more user-friendly way than CUDA (and ultimately plan is enable it to also work on non-Nvidia hardware).
Is the idea of Pallas to seamlessly provide AutoDiff as well, so that any kernels defined will come with the ability to take gradients (in the way you can with normal JAX functions)?

I have exactly the same question. cc. @zhangqiaorjc

I'd say compatibility with JAX transformations is one of the major aspects of Pallas. Vmapping pallas kernels, in my opinion, is really convenient. AD of Pallas on the other hand, has more uncertain value. The current implementation is not complete, but even when it is done, differentiating kernels won't necessarily produce efficient backwards pass kernels.
Another aspect is that I think pallas is a more friendly front-end than Triton's AST based one but that's mostly personal preference.

Could we have an example that trains a linear regression using jax-triton? Is this a good idea to show (1) the candidate of primitive ops and (2) how does the auto diff work.

That sounds like a good thing to have but I won't have the bandwidth to implement it for some time. Maybe it'll be a good first project for someone!

authors: adam-hartshorne sharadmv wangkuiyi

repo: jax-ml/jax-triton


text:
Add watchOS 7 and tvOS 14 check for logger

Hi there!
I just realized you added this check only for some platforms supported in your Package.swift.

Hello @jayhickey, could you have a look at this PR if you have time?

Thanks!

repo: jayhickey/Cirrus


text:
Add the ability to await for event happening more than once

It would be nice to have a built-in feature that will allow awaiting for some event happening more than once. For example, I'm sending three messages to the queue and expecting that they all three will be received at some point in time.
for (Message message : messages) {
    sendMessageToTheQueue(message);
}

List<Message> messages = await().until(receiveMessage(), hasMyId(), times(3));

...
Callable<Message> receiveMessage();
Matcher<Message> hasMyId();

That is a good idea but I don't think it belongs in the library. You could quite easily write a custom Hamcrest matcher for this already. Perhaps there's not even a need to write a customer matcher. Maybe you can just compose some of the existing ones such as:
List<Message> messages = await().until(receiveMessage(), allOf(hasMyId(), hasSize(3)))

So I'll close this issue. Please tell me if you disagree.

Unfortunately it's imporssible in my case. Let me explain.
I'm using awaitility for writing system tests of our product. It's a JMS based processing service. The case that I'm frequently have is such that if I post single message to the inbound queue of this service it may produce more than one messages to it's outbound topic.
The API for listening JMS topic is limited and all I can get is just one message at a time. And to check whether it's the message that I'm looking for, I need to match it with my Hamcrest cryteria.
Right now for this taks I made my own Callable function that aggregates the matching results inside. But think that it would probably be a nice-to-have feature built-in awaitility.

Oh so you mean that you want to wait for just ONE specific message but there may be other messages that arrive as well (before or after the message you're looking for)? We're using Awaitility for exactly this in my current project. We do something like this (rabbitmq):
MyEvent event = (MyEvent) await().until(() -> rabbitTemplate.receiveAndConvert(queue.getName()), instanceOf(MyEvent.class));

Using this approach we get the first event of the MyEvent. If you have several events of the same type you should be able to do something like:
MyEvent event = (MyEvent) await().until(() -> rabbitTemplate.receiveAndConvert(queue.getName()), allOf(instanceOf(MyEvent.class), hasProperty("id", equalTo("123-454-ABC")));

No no, I want to catch more than one message that matches cryteria. Something like:
 MyEvent event = (MyEvent) await().until(() -> rabbitTemplate.receiveAndConvert(queue.getName()), anyOf(hasProperty("id", equalTo("123-454-ABC"), hasProperty("id", equalTo("456-789-CDE")));

But this case will return only the first event that matches one of listed cryteria. But I want to catch, for example, exatcly three events from the stream.

Ah I see. Then I would probably create a custom Hamcrest matcher for this (perhaps that's what you're already doing?). I'm a bit hesitant to extending the API since you should be able to do it from a Hamcrest matcher. However if more users requests something like this I might change my mind. Or perhaps you just need to convince me even more? :)

Hamcrest matcher can match only something that would Callable return. So for the case when you may want to catch three events from the stream their aggregation must happen inside of the Callable class.
What I'm trying to do right now is wrapping the Callable into some sort of the aggregating Callable with it's own matcher. Following our previous RabbitMQ exmaple, I propably would look something like this:
 await().until(receiveAllOf(() -> rabbitTemplate.receiveAndConvert(queue.getName()), anyOf(hasProperty("id", equalTo("123-454-ABC"), hasProperty("id", equalTo("456-789-CDE"))), hasSize(3));

Here we have two matchers. One for the actual event filtering. And the other for size of the aggregating collection.

Here's a simple patch that implements aggregational feature

Sorry for not getting back to you earlier. I see what you mean, I'll have to think about it a bit though. The way I see this is essentially as a reduce of what Awaitility returns. So perhaps it should be generalized and the reduce should be made explicit. Something like:
await().until(reduce( (list, x)  -> list.add(x), new ArrayList<>()), () -> somethingThatReturnXs());

That would save all values to the list. Perhaps a context should be supplied so that you can capture all intermediate values as well? Something like this (if we pretend that list.add returns a new list):
await().until(reduce((list, ctx) -> ctx.isMatching() ? list.add(ctx.getEntity()) : list), new ArrayList<>()), () -> somethingThatReturnXs());

My only consern is: please, make it coincise for pour souls who still use java 7 (like me).

I suppose it would be possible to supply some connivence methods.

repo: jayway/awaitility


text:
Add a DB index to LogEntry's action field

For some applications the possibility to filter by the action field might be really interesting. However the lack of an index can lead to severe reduction of such queries.
The simplest solution: Let's a DB index on that field :)

Codecov Report

Merging #236 into master will increase coverage by 0.13%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #236      +/-   ##
==========================================
+ Coverage   82.45%   82.59%   +0.13%
==========================================
  Files          19       20       +1
  Lines         513      517       +4
==========================================
+ Hits          423      427       +4
  Misses         90       90

Impacted Files
Coverage Δ

src/auditlog/models.py
83.42% <100%> (ø)
:arrow_up:

src/auditlog/migrations/0008_indexed_action.py
100% <100%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c3b0604...12a381f. Read the comment docs.

Hello, this is really almost a trivial pull request.
Maybe, after 10 months, somebody would like to take the time to review this?

Hello, this is really almost a trivial pull request.
Maybe, after 10 months, somebody would like to take the time to review this?

Hello, this is really almost a trivial pull request.
Maybe, after 10 months, somebody would like to take the time to review this?

@jjkester or someone else?

@jezdez Sorry to bother you as well. Can I interest you in reviewing this pull request?

Hi! Thanks for this PR.

authors: Linkid codecov-io crazyscientist

repo: jazzband/django-auditlog


text:
sqlite: failling drop of column trusted in axes_accessattempt

I tried to install a project which uses django-axes but the step where the database gets initialized failed:
[....]
  Applying axes.0001_initial... OK
  Applying axes.0002_auto_20151217_2044... OK
  Applying axes.0003_auto_20160322_0929... OK
  Applying axes.0004_auto_20181024_1538... OK
  Applying axes.0005_remove_accessattempt_trusted...Traceback (most recent call last):
  File "/home/th/.local/share/virtualenvs/dcugovernor-oaz32AxZ/lib/python3.10/site-packages/django/db/backends/utils.py", line 89, in _execute
    return self.cursor.execute(sql, params)
  File "/home/th/.local/share/virtualenvs/dcugovernor-oaz32AxZ/lib/python3.10/site-packages/django/db/backends/sqlite3/base.py", line 357, in execute
    return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: error in index axes_accessattempt_trusted_0eddf52e after drop column: no such column: trusted
[...]

Trying to drop the column manually:
└─$ sqlite3 db.sqlite3                                                                                1 ⨯
SQLite version 3.39.2 2022-07-21 15:24:47
Enter ".help" for usage hints.
sqlite> .schema axes_accessattempt
CREATE TABLE IF NOT EXISTS "axes_accessattempt" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "user_agent" varchar(255) NOT NULL, "ip_address" char(39) NULL, "trusted" bool NOT NULL, "http_accept" varchar(1025) NOT NULL, "path_info" varchar(255) NOT NULL, "attempt_time" datetime NOT NULL, "get_data" text NOT NULL, "post_data" text NOT NULL, "failures_since_start" integer unsigned NOT NULL CHECK ("failures_since_start" >= 0), "username" varchar(255) NULL);
CREATE INDEX "axes_accessattempt_user_agent_ad89678b" ON "axes_accessattempt" ("user_agent");
CREATE INDEX "axes_accessattempt_ip_address_10922d9c" ON "axes_accessattempt" ("ip_address");
CREATE INDEX "axes_accessattempt_trusted_0eddf52e" ON "axes_accessattempt" ("trusted");
CREATE INDEX "axes_accessattempt_username_3f2d4ca0" ON "axes_accessattempt" ("username");
sqlite> alter table axes_accessattempt drop column trusted;
Runtime error: error in index axes_accessattempt_trusted_0eddf52e after drop column: no such column: trusted
sqlite>

It seems that sqlite has a problem if a column gets dropen if there is still an index depending on it.
Versions used in this case (if needed):
─$ pip list
Package             Version
------------------- -----------
asgiref             3.5.2
beautifulsoup4      4.11.1
bootstrap4          0.1.0
certifi             2022.6.15
cffi                1.15.1
charset-normalizer  2.1.1
cryptography        37.0.4
defusedxml          0.7.1
Django              4.1
django-axes         5.39.0
django-bootstrap4   22.2
django-crispy-forms 1.14.0
django-ipware       4.0.2
djangosaml2         1.5.1
elementpath         3.0.2
graphviz            0.20.1
gunicorn            20.1.0
idna                3.3
pip                 22.2
psycopg2-binary     2.9.3
pycparser           2.21
pyOpenSSL           22.0.0
pysaml2             7.2.0
python-dateutil     2.8.2
pytz                2022.2.1
PyYAML              6.0
requests            2.28.1
setuptools          65.2.0
six                 1.16.0
soupsieve           2.3.2.post1
sqlparse            0.4.2
urllib3             1.26.11
wheel               0.37.1
xmlschema           2.0.2

After modifying your migrations locally by altering the field back to db_index=False another column is affected to by an index depending on a to-be-deleted column:
error in index axes_accesslog_trusted_496c5681 after drop column: no such column: trusted

same problem happens when upgraded djnago 4.0 to 4.1.
when downgraded to 4.0 the error not occurred.

Good catch. Is there a straightforward fix for this available?

This issue will be solved in 4.1.1 Django release:
https://docs.djangoproject.com/en/4.1/releases/4.1.1/
Original issue:
https://code.djangoproject.com/ticket/33899

authors: Lem aleksihakli denisSurkov k-brahma

repo: jazzband/django-axes


text:
Condtionally skipped steps in FormWizard break previous button

I have a FormWizard with a list of steps defined in form_list. For each of those steps, I have a corresponding condition checks in condition_dict.
My previous button in my template is:
<button formnovalidate="formnovalidate" id='prev-button' name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% translate "Previous" %}</button>
So in my form, on the first step, I have a form where they can choose one or multiple from a list of choices. Each of those choices correspond to individual steps where they enter extra details. For each step, my condition_dict checks if the choice was selected in the first step and then serves up the form if it is.
The bug comes when after all those forms, there is a step which everyone sees. If the user wants to go back, if the step before returned False in the condition dict, the previous button freaks out and instead tries to validate and go to the next step rather than back to the previously served step.
condition_dict:
STEP_RELATED_COUNT: True,  STEP_RELATED: check_related_count,  STEP_SCIENCE: True,
For example, this checks if the related count is > 0. If it isn't, it skips STEP_RELATED and we go straight to STEP_SCIENCE. However using the previous button while in STEP_SCIENCE will attempt (attempt as in tries to validate current form and take the user forward) to take me back to STEP_RELATED (confirmed using django-debug-toolbar) rather than back to STEP_RELATED_COUNT.

Closing as for some reason I cannot reproduce the bug

repo: jazzband/django-formtools