FORK THIS PROJECT - request for volunteers to assist

As has been noted elsewhere, Jan (@jberkel) hasn't been seen for a long time.
We hope he is well and coping with Covid-19.
I'm going to need some help with this, so volunteers would be very welcome.
I'm a project member of this project, but I can't do PlayStore or F-Droid releases as only Jan has the signing keys.
So I'm considering forking this project so that we can continue development.
However without an active hand-over from @jberkel, it will need a new name in PlayStore.
In the short term:

Renaming
Get XOAUTH working again.

Because of how Google staff interpret their own policies, the term "Backup" in the name is actually an impediment to getting XOAUTH access to Gmail, so the fork will have a name more like "Gmail SMS Reader". Hence I'm putting these two issues together.
In the medium term:

Updates for out-of-date libraries
Add support for Android 11
Add support for multi-SIM phones.
Add support for RCS (which lack is why many people have issues with messages that don't get backed up)
Trouble-shoot other bugs

In the long term:

Create a pluggable framework for synchronizing multiple message sources
Reply to SMS's from within Gmail. I haven't figured out exactly how this will work, but I imagine that the app would pull messages from a special-purpose mailbox or folder, perform some mapping to the target phone number, and send from your own MSISDN. I would need to implement rate limiting and ACLs to mitigate abuse.

hello @kurahaupo
thanks for your initiative and sorry for my absence, I'm not an active Android user myself anymore and lost interest in this project, and it was especially demotivating to see Google's policy changes. Let me know if I can help in any way to hand the project over (on GitHub, is it possible on PlayStore as well?)
If you decide to fork it, it will be the fork of a fork, so the situation now is a bit like in 2010 when I forked SMS Backup.

Hi Jan
Nice to hear from you. I hope that you're well.
Yes it was very frustrating with Google's policy changes, and if you're no
longer using Android that would be unbearably demoralizing, so I'm not
surprised you've had little to do with the project this last year or so.
There are times when I'm very frustrated with the directions taken by
Android, but at least it's mostly open source, so I'm unlikely ever to make
the jump to iPhone because I'm leary of Apple and their closed source
worldview. And I don't use Windows, so I have no motivation to jump to
Microsoft either.
I think I have a pretty good grasp of the big picture, but I feel like I'm
missing a lot of small details. I still consider myself an Android
programming neophyte, but I have a lot of knowledge and experience in
closely related fields, so this seems like a good project for me to sink my
teeth into.
The main reason I haven't already dived in to (try to) fix things is simply
because I've had no way to test my changes, so the most immediate thing I
need help with is the build and deployment process: how do I get from
checking in source code to deploying on a test phone, and then uploading to
PlayStore?
After that I will have so many questions, so there's plenty you can help
with, and maybe I can help you just by being enthusiastic.
What kind of test systems do you use? Do you need a rooted phone to upload
test versions? I have a pile of old phones that still work as long as I
keep them powered up (their batteries are knackered), so I wouldn't be
averse to rooting some or all of them.
In terms of taking over the project, it's certainly possible to re-assign a
repo in GitHub, though it probably changes the URL, and it's equally
possible simply to add co-administrators. (I know that there are a few
things that I can't do currently that would be really helpful, like being
able to edit the bug report template.)
As for PlayStore, that seems to be tied to your Gmail identity, which I
wouldn't ask you to give up; I don't know how easy/hard/impossible it is to
reassign something there.
And I have almost no experience whatsoever with F-Droid, so anything you
can tell me about it would be much appreciated.
Maybe in the short term the simplest option is if I take over managing the
codebase on GitHub, and put release tags on things I think should be
shipped, if you can spare the time to guide me through the build process
and to sign and upload to PlayStore. And do code review for both our peace
of mind.
In the longer term, I think renaming the app is key to getting XOAUTH back,
at which point I should probably start my own PlayStore account, and put
some sort of redirection to it from this one.
I think some of these details will need to be discussed in private; I'm
BCC'ing this to the email addresses I have for you, but if you don't get it
soon would you please send me a note from your preferred address, to
@.***, or phone me on +61423339370 between 03:00 and
14:00 UTC (and I apologize that the conversation will be mostly in English
as my French is rudimentary and I can't get much beyond "hello" in any
other language).
-Martin

Hi Jan
Nice to hear from you. I hope that you're well.
Yes it was very frustrating with Google's policy changes, and if you're no longer using Android that would be unbearably demoralising, so I'm not surprised you've had little to do with the project this last year or so.
There are times when I'm very frustrated with the directions taken by Android, but at least it's mostly open source, so I'm unlikely ever to make the jump to iPhone because I'm leary of Apple and their closed source worldview. And I don't use Windows, so I have no motivation to jump to Microsoft either.
I think I have a pretty good grasp of the big picture, but I feel like I'm missing a lot of small details. I still consider myself an Android programming neophyte, but I have a lot of knowledge and experience in
closely related fields, so this seems like a good project for me to sink my teeth into.
The main reason I haven't already dived in to (try to) fix things is simply because I've had no way to test my changes, so the most immediate thing I need help with is the build and deployment process: how do I get from
checking in source code to deploying on a test phone, and then uploading to PlayStore?
After that I will have so many questions, so there's plenty you can help with, and maybe I can help you just by being enthusiastic.
What kind of test systems do you use? Do you need a rooted phone to upload test versions? I have a pile of old phones that still work as long as I keep them powered up (their batteries are knackered), so I wouldn't be averse to rooting some or all of them.
In terms of taking over the project, it's certainly possible to re-assign a repo in GitHub, though it probably changes the URL, and it's equally
possible simply to add co-administrators. (I know that there are a few things that I can't do currently that would be really helpful, like being able to edit the bug report template.)
As for PlayStore, that seems to be tied to your Gmail identity, which I wouldn't ask you to give up; I don't know how easy/hard/impossible it is to reassign something there.
And I have almost no experience whatsoever with F-Droid, so anything you can tell me about it would be much appreciated.
Maybe in the short term the simplest option is if I take over managing the codebase on GitHub, and put release tags on things I think should be shipped, if you can spare the time to guide me through the build process and to sign and upload to PlayStore. And do code review for both our peace of mind.
In the longer term, I think renaming the app is key to getting XOAUTH back, at which point I should probably start my own PlayStore account, and put some sort of redirection to it from this one.
I think some of these details will need to be discussed in private; I'm BCC'ing this to the email addresses I have for you, but if you don't get it soon would you please send me a note from your preferred address, to
<EMAIL_ADDRESS>(which isn't a secret - it's in every commit that I push), or phone me on +61423339370 between 03:00 and 14:00 UTC (and I apologize that the conversation will be mostly in English as my French is rudimentary and I can't get much beyond "hello" in any other language).
-Martin

@jberkel github admin access - yes please
For everyone else: I've had some private discussion with Jan; the likely outcome is that rather than fork, I'll take over most of the running of this project here on github, but in the short term Jan will continue to do the PlayStore and F-Droid releases. Eventually I'll manage those as well, unless someone wants to step up to help with that specifically.
The immediate next steps will be to fix some internal issues such the Gradle build errors (nothing serious, just that Gradle is very picky about package versions, but fixing them is a manual process).
(Sorry about the close/reopen; the "close" button in the github-on-android app looks like it means "go back" when it really means "close issue".)

Great news here!  Likewise, I am not an Android programming expert, but I hope I can help any way I can.  That will probably mean being first in line to purchase the paid version.

@kurahaupo do you take whatsapp export to the list?

@kurahaupo Go go go! But whatever you do, please don't lose the ability to use plain IMAP. In fact, as it'll be only a matter of time until the fucks at Google will change their policies again, why not drop Google support altogether and help people switch to a better provider if they want the awesomeness of this app?

Great to see this initiative, thank you! As many others I'm struggling with the automatic backup not triggering reliably. If this could be improved I'd be more than happy :) I think problems started with Android 9, continued in 10 and now I switched from Moto to OnePlus, OxygenOS 11 and although I made sure that SMSBackup is not under battery optimisations constraints, etc. it's not triggering the automatic backup reliably, neither with old scheduler or new scheduler.

let me know if I can help in any way

I've been in touch with someone at Google who thinks they can sort out the "not approved for sensitive scopes". However to initiate a review they need at least 4 "complainants", as a safeguard to make sure it's not just one person (ie, me).
If you would be willing to let me forward your name and email to them, please get in touch at<EMAIL_ADDRESS>

If people are up to writing code, there are some specific issues that can be addressed:

The code that limits the batch size for backing up messages relies on injecting LIMIT 100 or whatever into the SQL statement; however there was never any proper place to put this, so it's tacked onto the WHERE clause. Since Android 9, the library has gotten a lot pickier about this, and rejects it as invalid. This would be a fairly simply code change to catch that error and retry with no limit; that at least would stop people complaining about it. A better fix would be to find out how to implement the limit properly.
The order or participants in an MMS message is unspecified, and varies between devices and/or telco providers. However the existing code assumes that the first participant is the sender, and the remainder are recipients. This needs to be re-worked so that it checks the participant type for each one, and picks out the sender correctly. Note: do not assume that any participant appears only once in the list.
The background scheduler. This is probably the biggest job, because there's a whole new scheduler API in recent Android releases. I don't know much about it, so if someone has time to spend, researching how to get that working would be much appreciated.

Jan seems to have dropped off the radar again, so it's unclear at this point whether I'll need to fork the project or not.

Bigger coding projects:
4. Support for RCS. This is new territory. (For a start, you would need to see if Google have actually published anything about it, or whether it's still under NDA with selected providers.)
5. More back-end options:

especially, locally on the device (subject to user approval, of course)
deposit a file on a remote filesystem using sftp, rsync, etc
HTTPS POST and/or PUT

Integration with call recorders. Ideally, pull the 3gp or mp3 or whatever recording file from the other app, and save it as an email in the same way that an SMS or MMS is.
Reply by email. This would mean providing a way of pulling messages out of a mailbox and pushing them to the SMS/MMS subsystem as outbound messages. Make allowance for the various ways that different mailbox providers record the exact recipient address; some add a Delivered-To: header or similar, otherwise you may need to inspect the To: header, or even the for <...> tag in the newest Received: header.
I would argue against trying to intercept an outbound message sent on the device for two reasons: (1) you would need to meddle in the operation of the Email app, which will almost certainly be blocked by android for perfectly valid security reasons, and (2) it would make it less useful, since you wouldn't be able to reply from any other device.
Setting up the extra mailbox would be left as an exercise for the reader. You might also want to investigate the possibility of sending to<EMAIL_ADDRESS>and then have a rule  that filters that into an IMAP folder which is then where SMSBackup+ looks for outbound messages.
All in all, this will require a lot of stuff to be set up outside the app, so it would also need comprehensive user guides, with step-by-step instructions.

Consider splitting "file upload" into a separate app that simply backs up a local directory on an ongoing basis, and can be triggered by an OpenIntent message.

A few additional capabilities I'd like to see:
Dedupe of existing backups in imap location.
Restore of MMS (primarily pictures and RCS). SMS Backup and Restore can accomplish this already and it backs up to an .xml file.
I'm not a seasoned programmer, but glad to volunteer as a tester.

Hi thanks for keeping up the work on this brill app. Can I suggest that the Google play store entry be updated with a link to the login instructions using app password and imap method? The ratings for this app will keep dropping as people install it and think it doesn't work

Restore of MMS (primarily pictures and RCS).

RCS is actually an entirely different protocol, replacing MMS rather than augmenting it.
You're right that this is needed, but as an alternative all the restoration code could be moved into a separate sister project, an app that you only install when you need it, since most people only need it very occasionally.

So is this app still being worked on the on?

Signed up to Github to comment and check to see if this is still in development. I heavily rely on backing up texts to Gmail, and there are some bugs/annoyances that would be really nice to get fixed. Thank you for any updates in advance.

My problem is I can edit code in my own fork, and push changes back here, but I have no idea how to retrofit a CI build onto my fork or otherwise set up a new project. (All the guidance assumes you're starting with a new empty project, which I wouldn't be.)
If anyone has successfully done this with another project I'll love to hear from you.

@kurahaupo the CI build is defined in .travis.yml. I haven't used Travis CI before but I would imagine it would be along the lines of registering an account on https://www.travis-ci.com/ and connecting it with your fork. I think Travis CI used to offer a free tier, but that no longer seems to be the case.
Alternatively, you might turn it into a GitHub CI/CD pipline via GitHub Actions, which still has a free tier: https://github.com/cypress-io/github-action/blob/master/.github/workflows/example-basic.yml


Implement ra_proc_macro client logic

This PR add the actual client logic for ra_proc_macro crate:

Define all necessary rpc serialization data structure, which include ra_tt related data and some task messages. Although adding Serialize and Deserialize trait to ra_tt directly seem to be much easier,   we deliberately duplicate the ra_tt struct with #[serde(with = "XXDef")] for separation of  code responsibility.
Define a simplified version of lsp base protocol for rpc, which basically copy from lsp-server code base.
Implement the actual IO for the client side progress spawning and message passing.

I wonder how should we handle running proc macros for code with syntax errors? Do we remove some parts of code or fix it by inserting missing syntax?

In general, I don't think we can, since we have no information about what structure the proc macro expects :( For attribute proc macros in particular though, we should probably try to 'complete' erroneous code before passing it to the proc macro somehow. At least in easy cases.

Conflicts fixed.

lets land this, so that it doesn't conflict with other stuff...
bors r+

bors r-

ouch, sorry, this might now actually conflict with https://github.com/rust-analyzer/rust-analyzer/pull/3790, which I intended to land after this PR, but messed up :(
Anyway, r=me

bors r=matklad

bors retry


Go local variants

#9

@GeekMasher I feel like I should have PR'd into this - we can probably close this one as duplicate now 😊


Problem with older IE version

Hey,
I try using ng-grid for a web application.
Actually i had to face problems using AngularJS on IE7. I put the Shim and made everything compliant to it.
But when using ng-grid, the datas overflows the div that contains them.
The scrollbar is here and datas are binded to the div correctly, just that it doesnt fit the div :/
If you had a way to resolve this I would really appreciate it ! ^^
Rgds

check the prerequisite section which says that it support IE9+


refactor dartlang to use atom.dart dependencies

@devoncarew

lgtm

Merged https://github.com/dart-atom/dartlang/commit/6b3d8845b3346fd797fe1257130072cbb403b695


uncaught error: 348 trailing bytes

I am using socket.io-emitter to broadcast an event to a set of channels with a for loop:
In the file, I have:
// in the file
var io = require('socket.io-emitter')({
  host: 'localhost',
  port: 6379
});

module.exports = {
    exampleFunction: function(req, res, next) {
      var channels = req.param('channels'),
            data = req.param('data');

      for (var i=0; i<channels.length; i++) {
        io.to(channels[i]).emit('example event', data)
      }
    }

}

In app.js, I have socket.io-redis:
io.adapter(socketio_redis({
  host: 'localhost',
  port: 6379,
  pubClient: redis.createClient(6379, '<IP_ADDRESS>'),
  subClient: redis.createClient(6379, '<IP_ADDRESS>')
}))

When I try to run exampleFunction, I get the following uncaught error in my console:
Error: 348 trailing bytes
    at Object.decode (C:\Users\Zachary\Documents\GitHub\thegraduate_backend\node
_modules\socket.io-redis\node_modules\msgpack-js\msgpack.js:200:47)
    at Redis.onmessage (C:\Users\Zachary\Documents\GitHub\thegraduate_backend\no
de_modules\socket.io-redis\index.js:93:24)
    at RedisClient.EventEmitter.emit (events.js:106:17)
    at RedisClient.return_reply (C:\Users\Zachary\Documents\GitHub\thegraduate_b
ackend\node_modules\redis\index.js:672:22)
    at ReplyParser.<anonymous> (C:\Users\Zachary\Documents\GitHub\thegraduate_ba
ckend\node_modules\redis\index.js:309:14)
    at ReplyParser.EventEmitter.emit (events.js:95:17)
    at ReplyParser.send_reply (C:\Users\Zachary\Documents\GitHub\thegraduate_bac
kend\node_modules\redis\lib\parser\javascript.js:300:10)
    at ReplyParser.execute (C:\Users\Zachary\Documents\GitHub\thegraduate_backen
d\node_modules\redis\lib\parser\javascript.js:211:22)
    at RedisClient.on_data (C:\Users\Zachary\Documents\GitHub\thegraduate_backen
d\node_modules\redis\index.js:534:27)
    at Socket.<anonymous> (C:\Users\Zachary\Documents\GitHub\thegraduate_backend
\node_modules\redis\index.js:91:14)

When I change data to be something smaller, like:
var data = { testing: true }

I get the same error, but to a smaller number of trailing bytes. e.g. 95 trailing bytes.

this should be added to the README on the "Custom Client" instructions, right?

I have same problem.
I use ruby socket emitter to broadcast an event:
emitter = SocketIO::Emitter.new(key: 'socket.io.dev', redis: Redis.new(url: 'redis://localhost:6379'))
data = {id: 100, username: 'peternguyen', content: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s'}
emitter.emit('comment', data)

In app.js
var io = require('socket.io')(5001);
var request = require('request');
var redis = require('redis');
var redis_adapter = require('socket.io-redis');

var pub = redis.createClient(6379, 'localhost', {return_buffers: true, auth_pass: ''});
var sub = redis.createClient(6379, 'localhost', {return_buffers: true, auth_pass: ''});

io.adapter(redis_adapter({
	key: 'socket.io.dev',
	pubClient: pub,
	subClient: sub
}));

I get the following in my console:
events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: -2340102607 trailing bytes
    at Object.decode (/home/peter/node_modules/socket.io-redis/node_modules/msgpack-js/msgpack.js:200:47)
    at Redis.onmessage (/home/peter/node_modules/socket.io-redis/index.js:94:24)
    at RedisClient.emit (events.js:106:17)
    at RedisClient.return_reply (/home/peter/node_modules/redis/index.js:696:22)
    at ReplyParser.<anonymous> (/home/peter/node_modules/redis/index.js:321:14)
    at ReplyParser.emit (events.js:95:17)
    at ReplyParser.send_reply (/home/peter/node_modules/redis/lib/parser/javascript.js:300:10)
    at ReplyParser.execute (/home/peter/node_modules/redis/lib/parser/javascript.js:211:22)
    at RedisClient.on_data (/home/peter/node_modules/redis/index.js:547:27)
    at Socket.<anonymous> (/home/peter/node_modules/redis/index.js:102:14)

peter chexk the return_buffers option, that should sort your issue.

@peternguyen1991 please refer here: https://github.com/Automattic/socket.io-redis/pull/61#commits-pushed-8d7b40f
Your problem was that Ruby's SocketIO::Emitter packs the messages using the new msgpack-js v5, while the official socket.io-redis client only supports traditional msgpack-js. You could either clone from @burnssun's brilliant fork or manually edit your local socket.io-redis node module to reflect the necessary changes.

i saw the trailing bytes issue the first time on my app today.
when i set the return buffers option i get this error
TypeError: Object socket.io#VZCddR has no method 'split'

  at Redis.onmessage (/path/to/my/app/node_modules/socket.io-redis/index.js:92:26)

is there a permanent fix available for all these issues?

ok found the issue.
node redis v2.0.0 (released yesterday) has issues with the latest version of socket.io-redis causing the trailing bytes exeption.
when setting return_buffers to true unfortunately it throws an exception like in my previouse comment.

@aschmid  so is the solution to simply rollback one of these modules versions, or did you find another way?

@stephengardner i didn't have time to look into a 'proper' solution yet so my fix was to use v1.0.0 of https://www.npmjs.com/package/redis.

In my setup, node 4.1.1, socket-io 0.1.4, node_redis 2.0.1 the problem is that index.js line 92 expect "channel" to be a string, but it's a Buffer.

set up redis ver. 1.0.0... is trailing bytes error fixed..
i think, that issue is node_redis 2.0.1 bug.

I am still getting this issue even when I set my redis version to 1.0.0

I used the same package versions as PerMoeller and got his exact issue:
channel.split("#")


Allow Critical opscode,opscode-pgsql Users to Have No Login

As a customer, I would like Chef Server to run as unprivileged as possible.
The opscode and opscode-pgsql users created in /etc/passwd as of CS 12.0.5 have the entry /bin/sh for their shell. We should change this instead to /sbin/nologin

@sean-horn Wouldn't changing opscode-pgsql to a nologin shell by default prevent some of our support procedures regarding logging into the database?

Closing this due to inactivity. Please feel free to reopen if the issue is still relevant.


[Help Needed] - Pinia not persisting to my quasar project with vite

Hi Newbie here,... i tried to install this plugin to my quasar project with vite but it doesn't seem working.
basically i followed the steps written to this plugin.
first is i import this plugin to my quasar app in src/stores/index.js
import { store } from 'quasar/wrappers'
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

/*
 * If not building with SSR mode, you can
 * directly export the Store instantiation;
 *
 * The function below can be async too; either use
 * async/await or return a Promise which resolves
 * with the Store instance.
 */

export default store((/* { ssrContext } */) => {
  const pinia = createPinia()

  // You can add Pinia plugins here
  // pinia.use(SomePiniaPlugin)
  pinia.use(piniaPluginPersistedstate)

  return pinia
})

Then i added the persist: true to my AuthStore
export const useAuth = defineStore('auth', {
  state: () => ({
    Authenticated: false,
    Auth: {
      token: null,
      user: {
        firstName: "Juan",
        lastName: "Dela Cruz",
        scopes: [
          "somescopes",
        ],
      },
    },
  }),

  getters: {
    getUser (state) {
      return state.Auth.user
    },
    getToken (state) {
      return state.Auth.token
    },
    getAuthStatus (state) {
      return state.Authenticated
    },
    getScopes (state) {
      return state.Auth.user.scopes
    }
  },

  actions: {
    setUser (data) {
      this.user = data
    }
  },
  persist: true,
})

then when i run my app i check my localStorage but it did not set the auth to localStorage
it seems like its working on webpack but i'm not sure with vite.

could you share the solution please


enha: expose leader/follower branching on health and send_raw_transaction endpoints

PR Type
Enhancement

Description

Introduced explicit handling of leader and follower node modes in RPC endpoints.
Added a new RpcConsensusUnavailable error for cases when consensus is temporarily unavailable for follower nodes.
Modified stratus_health endpoint to provide different health check logic for leader and follower nodes.
Updated eth_send_raw_transaction to use NodeMode for determining the appropriate execution path.
Improved error handling in eth_send_raw_transaction for follower nodes when consensus is unavailable.

Changes walkthrough 📝
Relevant filesError handling

stratus_error.rsAdd new error for unavailable consensus

src/eth/primitives/stratus_error.rs
Added a new StratusError variant RpcConsensusUnavailable for when consensus is temporarily unavailable for follower nodes.

+4/-0

Enhancement

rpc_server.rsImprove leader/follower behavior in RPC endpoints

src/eth/rpc/rpc_server.rs
Imported NodeMode from the crate root.  Modified stratus_health function to handle health checks differently for leader and follower nodes.  Updated eth_send_raw_transaction function to use NodeMode for determining leader/follower behavior.  Added error handling for follower nodes when consensus is unavailable.

+20/-11

💡 PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

/describe


Use property names of definition without modifying first character

Do not lowercase first letter of property name for serialization and deserialization.
Reference issue #1830

thank you for the contribution!


ACTION_FULFILLED is being dispatched even though the payload promise is being rejected

If the promise is rejected and the error is caught, then the middleware dispatches a _FULLFILLED action. Shouldn't a _REJECTED action be dispatched in this case?
If the error is not caught, the resulting action is _REJECTED, but then the error is left uncaught. What is the correct way to get a _REJECTED action?
Version Number
5.0.0
Code Example
dispatch({
        type: "SOME_ACTION",
        payload: new Promise( (resolve, reject) => {
            reject('some reason');
        })
            .catch( (e) => {
                console.log(e)
            })
    });

Expected Behavior
Dispatch a SOME_ACTION_REJECTED action
Actual Behavior
SOME_ACTION_FULFILLED is being dispatched

the catch prevents the rejection from propagating. When you do .then or .catch you're actually creating a completely new promise which is evaluated. Here the new promise will just resolve with undefined after the catch.

Yep! If you want to handle promise errors at the action creator level, you need to do so after the action has been dispatched + handled by the middleware. See the examples in the guide.


Problem with some epub.

Got some problem with some epubs.  Can't read content. Always get only 2-3 words from book. How I can solve it ? (Exmple of such epub)The_Swift_Programming_Language.zip

Hi,
Are you using the latest (currently 1.0.81) version?
I've tried reading the ebook with EpubParser-Sample-Android-Application, didn't notice any issue.
Please explain the issue in detail.

Yes, I am using the latest version 1.0.81
When I called readSection();  It returns me only first section, that contains few words not more.
Here my code
`   try {
readerFile.setFullContent(path);
readerFile.setCssStatus(CssStatus.OMIT);
readerFile.setIsIncludingTextContent(true);
} catch (ReadingException e) {
e.printStackTrace();
}
int pages =0;
BookSection bookSection = null;
while (true) {
try {
bookSection = readerFile.readSection(pages);
            builder.append(bookSection.getSectionContent());

            pages++;
        } catch (ReadingException e) {
            e.printStackTrace();
        } catch (OutOfPagesException e) {
           e.printStackTrace();
            bookSection=null;
            break;
        }

}

`

And if I System.out.printl section - I got this
            Welcome to Swift

Also your sample app got some problems

Could you please check the same file by adding maxContentPerSection value as well?
readerFile.setMaxContentPerSection(integerHere);
If there is no issue, it's probably because I didn't make enough test without setting the value.
The main point of the library is to force-trim the epub files. But I'll try to solve the problems as soon as possible.

Just tested the file you sent me without setting maxContentPerSection value. It didn't give me any issue.
first three pages of swift.zip

Still having issues?

Did you proceed on the issue?


Please add contributors

Sirwolcott & Seomon4u also work with the after town hall and could help with updating the ...data.ts file. Please give them access

Invites sent 😄


Can't install torchlight/torchlight-commonmark within a fresh laravel app

I created a fresh laravel 11 app yesterday. I want to try torchlight for syntax highlight. But I can't install the package. I followed the error message but still unable to resolve, that is, composer require -W 'torchlight/torchlight-commonmark:*'.
➜  site git:(main) composer require torchlight/torchlight-commonmark
./composer.json has been updated
Running composer update torchlight/torchlight-commonmark
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - torchlight/torchlight-commonmark v0.5.4 requires torchlight/torchlight-laravel v0.5.10 -> satisfiable by torchlight/torchlight-laravel[v0.5.10].
    - torchlight/torchlight-commonmark v0.5.5 requires torchlight/torchlight-laravel ^0.5.10 -> satisfiable by torchlight/torchlight-laravel[v0.5.10, ..., v0.5.14].
    - torchlight/torchlight-commonmark v0.5.3 requires torchlight/torchlight-laravel ^0.5.9 -> satisfiable by torchlight/torchlight-laravel[v0.5.9, ..., v0.5.14].
    - torchlight/torchlight-commonmark[v0.5.0, ..., v0.5.2] require torchlight/torchlight-laravel ^0.5.5 -> satisfiable by torchlight/torchlight-laravel[v0.5.5, ..., v0.5.14].
    - torchlight/torchlight-commonmark[v0.1.0, ..., v0.4.1] require league/commonmark ^1.5 -> found league/commonmark[1.5.0, ..., 1.6.7] but the package is fixed to 2.4.2 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
    - torchlight/torchlight-laravel[v0.5.0, ..., v0.5.10] require illuminate/support ^7.26.0|^8.0 -> found illuminate/support[v7.26.0, ..., v7.30.6, v8.0.0, ..., v8.83.27] but these were not loaded, likely because it conflicts with another require.
    - torchlight/torchlight-laravel[v0.5.11, ..., v0.5.12] require illuminate/support ^7.26.0|^8.0|^9.0 -> found illuminate/support[v7.26.0, ..., v7.30.6, v8.0.0, ..., v8.83.27, v9.0.0, ..., v9.52.16] but these were not loaded, likely because it conflicts with another require.
    - torchlight/torchlight-laravel v0.5.13 requires illuminate/support ^7.26.0|^8.0|^9.0|^10.0 -> found illuminate/support[v7.26.0, ..., v7.30.6, v8.0.0, ..., v8.83.27, v9.0.0, ..., v9.52.16, v10.0.0, ..., v10.48.10] but these were not loaded, likely because it conflicts with another require.
    - torchlight/torchlight-laravel v0.5.14 requires illuminate/support ^8.0|^9.0|^10.0 -> found illuminate/support[v8.0.0, ..., v8.83.27, v9.0.0, ..., v9.52.16, v10.0.0, ..., v10.48.10] but these were not loaded, likely because it conflicts with another require.
    - Root composer.json requires torchlight/torchlight-commonmark * -> satisfiable by torchlight/torchlight-commonmark[v0.1.0, ..., v0.5.5].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require torchlight/torchlight-commonmark:*" to figure out if any version is installable, or "composer require torchlight/torchlight-commonmark:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

I also tried to remove composer.lock and rerun the command, but it shows the same error.

This is caused by laravel 11 support of torchlight-laravel, related to https://github.com/torchlight-api/torchlight-laravel/pull/54.


fix: ssr fixes

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (638977d) 92.61% compared to head (b8db2e3) 0.00%.
 Consider uploading reports for the commit 6b21c4d to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master   #2235       +/-   ##
==========================================
- Coverage   92.61%       0   -92.62%
==========================================
  Files          53       0       -53
  Lines        2409       0     -2409
  Branches      254       0      -254
==========================================
- Hits         2231       0     -2231
+ Misses        176       0      -176
+ Partials        2       0        -2

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


normaliseObject() should include the unmolested filename

It seems normaliseObject() takes the liberty of splitting the file name into 'filename' and 'extension' parts, but this often places a burden on the caller to do the same when wishing to perform a filename comparison. The Google API returns the complete file name, and this should be exposed by the adapter, to make it easier to match on complete file names.

Closes by #35.


Navigate to next/previous change

This PR adds navigation commands for jumping to the next/previous change within a file. This is suitable for mapping to hotkeys, but no default keymap is provided.

Looking at the code, I can't find a reason why it wouldn't work. However, it does not, at least for me.  Thanks for the contribution!

Huh, that's odd. I just tested and found that it works when bound to a hotkey, but not from the command menu. Here's the hotkeys I am using:
keymap.add_direct {
  ["ctrl+."] = "gitdiff:next-change",
  ["ctrl+shift+."] = "gitdiff:previous-change",
}

Do you see the same difference?

I fixed it. It turns out that set_doc was being called when the command menu pops up, so the action thought it was in an empty document.

@vincens2005 when you have a chance, could you re-test with the change I pushed? I think it should work for you now.

sure i'll test it in a bit

It works, thanks!


utils function for dp query and specific folder for routes

Coverage report
 Click to see where and how coverage changed
FileStatementsMissingCoverageCoverage(new stmts)Lines missing

  server/lomas_server
  app.py

  server/lomas_server/routes
  routes_dp.py

  utils.py

Project Total

This report was generated by python-coverage-comment-action

Nice cleanup


Patch (temp) AST type initialization

When generating mud.yang.go, which uses the relatively newly added
support for if-feature inside an identity structure, the following
error occurs:
ERROR Generating Code: base: already set
After some debugging I narrowed the error down to the if !fv.IsNil()
statement, but I haven't found a better fix for the issue than to
comment the check out when generating a package for mud.yang.go yet.

The error seems to come from the fact that ietf-access-control-list.yang contains identity structures with multiple bases set. According to https://tools.ietf.org/html/rfc7950#section-7.18, multiple bases are allowed, but the current implementation does not seem to handle this case (yet).

Opened https://github.com/openconfig/goyang/pull/130 to fix this properly


[FEATURE] ability to send special keys / key combinations in web VNC console

Is your feature request related to a problem? Please describe.
I would like to be able to send special keys / key combinations in web VNC console.
These keys / key combinations may include print-screen, ctrl-alt-delete, alt-Fn key, etc...
Describe the solution you'd like
Maybe a set of buttons in the web page which send standard keyboard keys / key combinations directly to the guest OS?
Describe alternatives you've considered
None came to mind.
Additional context
It's worth looking at how VirtualBox, VNC, Android and iPad applications do this.

Hi @DoNotSayYes , we implemented several combination keys below:

Ctrl + N e.g. open new window in IE
Ctrl + T e.g. open new tab in IE
Ctrl + W e.g. close the tab in IE
Print Screen screenshots were saved at /Users/*/Pictures/Screenshots/ on Windows
Ctrl + Alt + Delete

Validated on latest master-head

Can you include F keys and Alt-F keys?

There is a distinction between the vnc client taking a screenshot itself
And asking the remote system to press the print screen key
I had a specific case where it was exponentially more convenient to take a screenshot using the remote system's own screen grab software.
Maybe a low difficulty solution to take care of all edge cases would simply be a location to enter a keycode and then user can press whatever key they want by using a lookup table


magnum-auto-healer: use Cinder v3 (#1769)

Cinder v2 has been deprecated since Pike release, let's use v3.
Cherry-pick of #1769

What this PR does / why we need it:
Which issue this PR fixes(if applicable):
fixes #
Special notes for reviewers:

Release note:

[magnum-auto-healer] Remove Cinder V2 support. Action required.

/ok-to-test

same comments , mention cherry-pick PR in description and add release notes

/test all

/test pull-cloud-provider-openstack-check

Could you take a look at the job failure?


Improved autocomplete

When developing the library, I tested the major editors (Neovim, VSCode, PyCharm) to ensure that autocomplete worked. However, as commented here, some development environments don't pick the signatures of extensions correctly. Perhaps this is related.
Concrete steps to be made:

[ ] add __text_signature__ to methods in Rust extension
[x] eliminate Disambiguation alias so the literals are shown directly

I have complained prematurely: PyCharm does show the type hint only when entering the parameter.
Maybe the behavior was changed or it was always this way but I somehow missed it.
So imho the disambiguation is fine.

Good to hear PyCharm doesn't suffer from this issue. To be safe though, I'll still remove the alias since other editors/checkers may not.

The next release should significantly improve autocomplete for IDEs at least. There are more and better docstrings, and they link to the docs where needed

text signature has been properly configured in the latest release. One lingering issue is docstrings in the extension, which will get a separate issue


FSP removeMelting does not work

With this script I could in theory remove the melting of Gold Ingots in a Crucible.
Though, it doesn't work but it also gives no error.

Does anything FSP actually work?

You tell me :P What didn't work got reported.

FSP is not modtweaker friendly.


stages

Both stage 1 and stage 2 should probably include something about "and possible failure".  Just because we take up experiments or agree that "this idea isn't entirely crazy" doesn't mean that we will not either:

come up with something better that covers many of the same use cases.
decide that, actually, upon deeper investigation, it is kind of crazy.

I think it needs to be clear that using an approximation of an early idea serves two purposes:

it allows developers to accomplish real things.
it allows developers to understand/be more easily involved with standards creation/testing/feedback/understanding new use cases in the experiment.

This is true, and I can adjust the deeper language on this. Let me see if/how I can use what you’ve put here.

Thanks for this. I’m resolving this via https://github.com/jonathantneal/css-db/commit/78764fa0463fa943a0cc5d211edaf6c344e7222c and https://github.com/jonathantneal/css-db/commit/942975c300df7e9fdad7c646f50411d9f99e00d6


falsy -> false

"Falsy" is a common term for values, that JavaScript treats as false: false, 0, '', undefined, null.


Implement "Quick" commands for leg positioning

Create some MQTT commands that allow easy positioning of all 6 legs for testing, recovery from dangerous leg positions, and transportation:

QGH  - Quick Go Home: go to the home position where all servos are at the neutral position
QGS  - Quick Go to Squat position - where bottom of hip servos is resting on ground
QGU  - Quick Go to Up position - where all legs are pointing straight up
QGC  - Quick Go to Carry position - where all legs are stowed with minimum length and width of footprint

These are not commands that would appear in a Flow sequence, (between New_Flow and Do_Flow commands) but are executed immediately by MQTT command processing in mqttBroker.

implemented QGH (quick go home), QGS (quick go to squat) and QGU (quick go to Up position) but haven't yet done QMC (quich move to carry position. Not quite sure what the carry position is yet, but I don't think it will be the same leg positions for each leg, which makes is a bit more complicated.
To keep from making too many abrupt and dangerous leg movements, I put some pauses in where there were multiple leg moves. Since this is a test command, not too worried about stalling other software, but CPU usage measurement issues a red alert trace when delays caused the appearance of high CPU:
M) setup{7}[10971]> End of setup #############################################################################
E) oneSec{14}[45869]> CPU Utilization RED alert = usage% =  112.889297
E) oneSec{14}[59920]> CPU Utilization RED alert = usage% =  112.633003
E) oneSec{14}[73975]> CPU Utilization RED alert = usage% =  112.991905
E) oneSec{14}[84996]> CPU Utilization RED alert = usage% =  112.633194
E) oneSec{14}[98647]> CPU Utilization RED alert = usage% =  112.783096

re-opening until QMC is implemented, and Red alerts are discussed.


Cancel active/inactive timeout on closing Http2Stream

Fix #7102.
On #6494, I dropped Http2Stream::clear_timers() function, but active/inactive timeouts of Http2Stream needs to be canceled (at least in Http2Stream::do_io_close())

I restored Http2Stream::clear_timers function & calls after all. Because closing sequence of Http2Stream is unclear and canceling timeout is cheap.

[approve ci docs]


Docs for tuple-like interface

get will be missing some javadocs when the PR is merged. It should probably be done like this:
#ifdef BOOST_JSON_DOCS

/** Tuple-like interface
*/
template< std::size_t I, class T >
__see_below__
get( T&& );

#else

// actual defintions

#endif

Exposition could use some work:

As with std::pair, key_value_pair implements the required specializations of std::tuple_element, std::tuple_size, and get to function as a tuple-like type. This means that it can be used as the initializer in a structured binding declaration: [snippet]


Don't Crash Controller when an Invalid Workflow Object is present

Summary
When running an argo as a platform, there is always the potential for users to create invalid Workflow objects.
Usually, invalid CRDs are detected by the controller, however in some cases they're not. For example, the following Workflow is invalid whenever an invalid parameter "execution_label" is provided since when used in workflowMetadata, it must not contain special chars etc.

When this Workflow is submitted, the controller spits out a (valid) error:
time="X" level=warning msg="Error updating workflow: Workflow.argoproj.io \"X\" is invalid: metadata.labels: Invalid value: \"some/special/char\": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue',  or 'my_value',  or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?') Invalid" namespace=default workflow=X
and subsequently enters a crashLoopBackOff with 'Workflow never reconciled" error.
I would prefer if the controller would not enter a crashLookBackOff, or have the option not to, since this disrupts other users of the controller.
Use Cases
When would you use this?
Any platform level usage of Argo Workflows

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

Could you share a reproducible example? I got this error instead.
cannot unmarshall spec: cannot restore struct from: slice

Hmmm, I thought we could deal with this. We use an unstructured informer that ignores/fails malformed workflows. See:
https://github.com/argoproj/argo-workflows/blob/2edf2cf17f0ddfafff12da869e9524d34403714e/workflow/util/util.go#L55-L60
Before this, a bad workflow would cause a reconciliation hot loop:
https://github.com/kubernetes/kubernetes/issues/57705
https://github.com/argoproj/argo-workflows/issues/632

Seems duplicate https://github.com/argoproj/argo-workflows/issues/9592

Ok I can reproduce this now.  This is the actual error message:
time="2023-04-11T18:25:36.512Z" level=info msg=healthz age=5m0s err="workflow never reconciled: crash" instanceID= labelSelector="!workflows.argoproj.io/phase,!workflows.argoproj.io/controller-instanceid" managedNamespace=argo

This is from health check: https://github.com/argoproj/argo-workflows/blob/master/workflow/controller/healthz.go#L39-L41


Issue building Astro project with @code-wallet/elements

Issue:
Unable to build Vite / Astro project with the<EMAIL_ADDRESS>SDK. Error: [commonjs--resolver] Failed to resolve entry for package "@code-wallet/elements". The package may have incorrect main/module/exports specified in its package.json.
Notes:
Included steps to reproduce with Astro + React and with standalone Vite + React project. A different error happens with Create React App from React example in docs https://code-wallet.github.io/code-sdk/docs/example/react-example.html and the steps to reproduce for that error is to follow the docs.
Steps to reproduce with Astro + React:

Start Astro Project

npm create astro@latest
 astro   Launch sequence initiated.

   dir   Where should we create your new project?
         ./astro

  tmpl   How would you like to start your new project?
         Include sample files
      ✔  Template copied

  deps   Install dependencies?
         Yes
      ✔  Dependencies installed

    ts   Do you plan to write TypeScript?
         Yes

   use   How strict should TypeScript be?
         Strict
      ✔  TypeScript customized

   git   Initialize a new git repository?
         Yes
      ✔  Git initialized

  next   Liftoff confirmed. Explore your project!
  ...

Add React to Astro

cd ./astro
npx astro add react

Need to install the following packages:
<EMAIL_ADDRESS>Ok to proceed? (y) y
✔ Resolving packages...
  ...

✔ Continue? … yes
✔ Installing dependencies...
11:10:40 AM [add] Unable to locate a config file, generating one for you.

  Astro will make the following changes to your config file:
  ...

✔ Continue? … yes

  ...
  Astro will make the following changes to your tsconfig.json:
  ...

✔ Continue? … yes

   success  Successfully updated TypeScript settings

Install @code-wallet/elements.

npm i @code-wallet/elements
npm WARN deprecated<EMAIL_ADDRESS>Connect has moved to its own org @connectrpc and has a stable v1. Run `npx @connectrpc/connect-migrate@latest` to update. See https://github.com/connectrpc/connect-es/releases/tag/v0.13.1 for details.
npm WARN deprecated<EMAIL_ADDRESS>Connect has moved to its own org @connectrpc and has a stable v1. Run `npx @connectrpc/connect-migrate@latest` to update. See https://github.com/connectrpc/connect-es/releases/tag/v0.13.1 for details.

added 37 packages in 5s

7 packages are looking for funding
  run `npm fund` for details

Add example code from React example: https://code-wallet.github.io/code-sdk/docs/example/react-example.html

// src/components/App.tsx
import { useEffect, useRef } from "react"
import code from "@code-wallet/elements"

function App() {
  const el = useRef<HTMLDivElement>(null)

  useEffect(() => {
    const { button } = code.elements.create("button", {
      currency: "usd",
      destination: "E8otxw1CVX9bfyddKu3ZB3BVLa4VVF9J7CTPdnUwT9jR",
      amount: 0.05,
    })

    button.mount(el.current!)
  }, [])

  return (

  )
}
export default App

Add App to Astro route:

---
// src/pages/index.astro
import Layout from "../layouts/Layout.astro"
import App from "../components/App.tsx"
---

<Layout title="Welcome to Astro.">
  <App />
</Layout>

Add TypeScript declarations path to ./tsconfig.json (bug happens regardless if path is added or not, this is for the TS lsp to work).

{
  "extends": "astro/tsconfigs/strict",
  "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "react",
    "paths": {
      "@code-wallet/elements": [
<EMAIL_ADDRESS>      ]
    }
  }
}

Attempt to build project.

npm run build

><EMAIL_ADDRESS>build
> astro check && astro build

11:42:13 AM [content] No content directory found. Skipping type generation.
11:42:13 AM [check] Getting diagnostics for Astro files in /.../deleteme/astro...
Result (6 files):
- 0 errors
- 0 warnings
- 0 hints

11:42:17 AM [content] No content directory found. Skipping type generation.
11:42:17 AM [build] output target: static
11:42:17 AM [build] Collecting build info...
11:42:17 AM [build] Completed in 73ms.
11:42:17 AM [build] Building static entrypoints...
[commonjs--resolver] Failed to resolve entry for package "@code-wallet/elements". The package may have incorrect main/module/exports specified in its package.json.
 error   Failed to resolve entry for package "@code-wallet/elements". The package may have incorrect main/module/exports specified in its package.json.

Steps to Reproduce with Vite + React

Create Vite project

npm create vite@latest
✔ Project name: … vite-project
✔ Select a framework: › React
✔ Select a variant: › TypeScript

Scaffolding project in /Users/albertovaldez/deleteme/vite/vite-project...

Done. Now run:

  cd vite-project
  npm install
  npm run dev

Install code wallet elements.

npm i @code-wallet/elements
npm WARN deprecated<EMAIL_ADDRESS>Connect has moved to its own org @connectrpc and has a stable v1. Run `npx @connectrpc/connect-migrate@latest` to update. See https://github.com/connectrpc/connect-es/releases/tag/v0.13.1 for details.
npm WARN deprecated<EMAIL_ADDRESS>Connect has moved to its own org @connectrpc and has a stable v1. Run `npx @connectrpc/connect-migrate@latest` to update. See https://github.com/connectrpc/connect-es/releases/tag/v0.13.1 for details.

added 30 packages, and audited 240 packages in 6s

45 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Add example code to src/App.tsx

import { useEffect, useRef } from "react"
import code from "@code-wallet/elements"

function App() {
  const el = useRef<HTMLDivElement>(null)

  useEffect(() => {
    const { button } = code.elements.create("button", {
      currency: "usd",
      destination: "E8otxw1CVX9bfyddKu3ZB3BVLa4VVF9J7CTPdnUwT9jR",
      amount: 0.05,
    })

    button?.mount(el.current!)
  }, [])

  return (

  )
}
export default App

Attempt to build

npm run build

><EMAIL_ADDRESS>build
> tsc && vite build

vite v4.5.0 building for production...
✓ 5 modules transformed.
✓ built in 97ms
[commonjs--resolver] Failed to resolve entry for package "@code-wallet/elements". The package may have incorrect main/module/exports specified in its package.json.
error during build:
Error: Failed to resolve entry for package "@code-wallet/elements". The package may have incorrect main/module/exports specified in its package.json.

@damidina Thanks for calling this issue out. It looks like v1.1.0 had a npm publish without build assets. I've deployed v1.1.1 with build assets so you should see it working now.
I'll mark this as closed but feel free to re-open if you continue to have issues.
Much appreciated!


Atomv2

Change the text color and add more italic

Thanks for the changes, the customized version looks great! Based on the adjustments you've made, we have decided to create a new flavor of this theme, Oceanic Next Italic -  White.
I see you've edited the .less files of atom directly, unfortunately your changes are overwritten when we generate the atom version again, using the corresponding tmTheme file. Therefore I would like you to ask if you could make the changes to the Oceanic Next Italic - White.tmTheme file as well?

Yes I can do this sry if I make some mistake this is my first time a contribute to a project on github.

See #9 for merged result


Consolidate duplicate files

When setting up prototype macOS 'Document Finder' app (which later became the macOS Fileaway app), I copied a number of the files from the Fileaway / FileActions core library to quickly bootstrap the project. Obviously having two copies of this code in the source base is terrible and these should be consolidated again as soon as possible.

Some of the work has already been done (see #149), and issues have been raised for the remaining work (#150, #151, and #152).


Can't cancel a long running request

Use Case:
I've accidentally run a query that will take many minutes to execute.
Current Behavior:
I am required to wait for the query to complete. (there may be a cancel button in the "Now communicating with MySQL server..." popup, but I can't scroll down to check).
Ideal Behavior:
A button at the top of the popup lets me stop the request.

Agreed.  This would be a great function.  Or at least let us get back to the process list so we can kill processes (tho that may be more dangerous - especially if it's an update?)

@stickboyc @kgingeri I have released a new version 4.10.0 supporting to disconnect during running a long query. Also, I added a new button to kill a process on the process list panel. The pull request is #74 Thank you for your feedback!


purge: add container_binary needed for zap osds

Signed-off-by: Seena Fallah<EMAIL_ADDRESS>

ping @guits @dsavineau

@clwluvw it seems to be a regression introduced by the purge playbooks refactor.
It could be nice to add a commit message in order to explain the issue.

@clwluvw it seems to be a regression introduced by the purge playbooks refactor.
It could be nice to add a commit message in order to explain the issue.

@guits Done

failures are unrelated, both purge container and non-container passed


Fix inline code Markdown link in README

:+1:

Thanks for the fix! :tada:

Thanks for the fix! 🎉

critical typo 😉


docs: Change "valued" to "values"

Can one of the admins verify this patch?

docs: Change word "valued" to "values" in 2_fullyconnected.ipynb.

I signed it.
On Sat, Jun 25, 2016, 3:54 PM Tensorflow Jenkins<EMAIL_ADDRESS>wrote:

Can one of the admins verify this patch?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/pull/3041#issuecomment-228529711,
or mute the thread
https://github.com/notifications/unsubscribe/AFek0OS4YQlR3dv7F8JQN5NHcrP-3BBrks5qPQHhgaJpZM4I-UNE
.


javafxmobile-plugin 2.x how to specify reflectionList?

I encounter some sort of reflection issue when I am using plugin 2.x version, I can't find a way to configure in gradle in order to force GraalVM to prepare reflection correctly. How can we do that in plugin 2.x?
Look like the maven plugin contain such required configuration, but how do we specify in gradle:
https://docs.gluonhq.com/client/#_reflectionlist
The error I encounter is as below:
[SUB] Fatal error, we can't find a native method called Java_jdk_internal_misc_Unsafe_staticFieldOffset0
[SUB] Fatal error, we can't find a native method called Java_jdk_internal_misc_Unsafe_staticFieldOffset0__Ljava_lang_reflect_Field_2
[SUB] error resolving native method short Java_jdk_internal_misc_Unsafe_staticFieldOffset0 long Java_jdk_internal_misc_Unsafe_staticFieldOffset0__Ljava_lang_reflect_Field_2
[SUB] java.lang.RuntimeException: Missing native symbol Java_jdk_internal_misc_Unsafe_staticFieldOffset0
[SUB] 	at java.lang.Throwable.fillInStackTrace(Unknown Source)
[SUB] 	at java.lang.Throwable.<init>(Unknown Source)
[SUB] 	at java.lang.Exception.<init>(Unknown Source)
[SUB] 	at java.lang.RuntimeException.<init>(Unknown Source)
[SUB] 	at jdk.internal.misc.Unsafe.staticFieldOffset0(Unknown Source)
[SUB] 	at jdk.internal.misc.Unsafe.staticFieldOffset(Unknown Source)
[SUB] 	at jdk.internal.reflect.UnsafeFieldAccessorImpl.<init>(Unknown Source)
[SUB] 	at jdk.internal.reflect.UnsafeStaticFieldAccessorImpl.<init>(Unknown Source)
[SUB] 	at jdk.internal.reflect.UnsafeQualifiedStaticFieldAccessorImpl.<init>(Unknown Source)
[SUB] 	at jdk.internal.reflect.UnsafeQualifiedStaticObjectFieldAccessorImpl.<init>(Unknown Source)
[SUB] 	at jdk.internal.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(Unknown Source)
[SUB] 	at jdk.internal.reflect.ReflectionFactory.newFieldAccessor(Unknown Source)
[SUB] 	at java.lang.reflect.Field.acquireFieldAccessor(Unknown Source)
[SUB] 	at java.lang.reflect.Field.getFieldAccessor(Unknown Source)
[SUB] 	at java.lang.reflect.Field.get(Unknown Source)
[SUB] 	at sg.com.income.dsf.quogen.utils.PdfUtils.serializeConstant(Unknown Source)
[SUB] 	at sg.com.income.dsf.quogen.config.TemplateConfig.init(Unknown Source)
[SUB] 	at sg.com.income.dsf.quogen.config.TemplateConfig.get(Unknown Source)
[SUB] 	at sg.com.income.dsf.quogen.core.QuoGenerator.generate(Unknown Source)
[SUB] 	at sg.com.income.dsf.quogen.MainProgram.main(Unknown Source)
[SUB] 	at com.gluonapplication.BasicView$1.handle(Unknown Source)
[SUB] 	at com.gluonapplication.BasicView$1.handle(Unknown Source)
[SUB] 	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
[SUB] 	at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
[SUB] 	at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)

The code that throwing error is as below:
public Map<String, Object> serializeConstant(Class classz) {
	Map<String, Object> myConstant = new HashMap<>();

	Field[] declaredFields = classz.getDeclaredField(); // guess error happen at this line

	for (Field field : declaredFields) {
		if (Modifier.isStatic(field.getModifiers)) {
			try {
				myConstant.put(field.getName(), field.get(null));
			} catch (Exception e) {
		 		e.printStackTrace();
			}
		}
	}

	return myConstant;
}

Hi Sam,
This issue is related to Client Maven Plugin, which is located here: https://github.com/gluonhq/client-maven-plugin

actually I encounter this issue while I am using javafxmobile-plugin 2.x to build/deploy the sample project... not the client maven plugin...


Adds a baseline to the readme

Copied from the NPM package description. That helps to understand de the purpose of this package.

Thanks!


improved overload resolution and support for java8 default methods

using jpype one can always force an overload resolution by using the JObject,JLong,... wrappers. but this is tedious. sometimes an overload is added to a class by the compiler (for example synthetic methods for overriding mixed with generics, see the testcase.) in this PR i tried to implement the rules in http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-<IP_ADDRESS> as far as this is possible at runtime. there are quite some tests around this.
also support for default methods in java 1.8 was added by using getMethods instead of a recursive getDeclaredMethods. the test code (in java) is unfortunately commented out as the travis hosts have only java1.7 by default.

Thank you very much for this major improvement @justussc! I've pushed a fix for ant on Appveyor, but unfortunately I can not retrigger a build of your PR, so can you please add a dummy commit (or fix the trailing the whitespaces in test/jpypetest/array.py)?
@baztian can you please also have a look at this?

sure. i just ran array.py through autopep8. but it seems to still have a problem with the ant thing. unfortunately i have never used appveyor so i cannot really help here.

Am 21.02.2016 um 17:54 schrieb justussc:

sure. i just ran array.py through autopep8. but it seems to still have a
problem with the ant thing. unfortunately i have never used appveyor so
i cannot really help here.
—
Reply to this email directly or view it on GitHub
https://github.com/originell/jpype/pull/172#issuecomment-186856688.

Appveyor should be fixed in terms of the missing ant version. If you
rebase on latest master it should at least test something ;)

i saw that you pushed this change only to your fork. i cherry picked it from there and it gets further now. but then it fails in with
powershell ./appveyor/runTestsuite.ps1 ...........result code of nosetests: False  System.IO.FileNotFoundException: Could not find file 'C:\projects\jpype\nosetests.xml'.
i don't have a windows box available. but i can try to play around with this in the next days.

Am 22.02.2016 um 09:02 schrieb justussc:

i saw that you pushed this change only to your fork.
ah sorry for that. I thought I pushed this to master.
i cherry picked it
from there and it gets further now.
I see you know how to use git :)
but then it fails in with
|powershell ./appveyor/runTestsuite.ps1
...........result code of nosetests: False
System.IO.FileNotFoundException: Could not find file
'C:\projects\jpype\nosetests.xml'.
This suggests from my experience, that the python interpreter just
crashed...
Hopefully we could pin this down.

thx for the hint. i'll have a look later this week.

i managed to get a windows setup (only tried 32bit py2.7 until now) and it looks like also originell/jpype master is crashing already on loading the VM. i did not get to start actually debugging the problem, but maybe you could push your ant fix to master such that one can see, that it is already broken there.

Thank you so much for investigating this! I've pushed the ant fix to
orginell/master

The windows tests have unfortunately been broken (I'd guess by myself) for a long time. Three tests are failing but they are unrelated to this changes. So I'm going to merge this now.

thanks for merging. earlier this week i think i found one crash in the windows tests. it's actually a bug in  jp_primitivetypes_autogen.cpp where we call reserve on a vector instead of resize. but i'll have a look.


Discussion: Improve performance

So, basically, async-graphql is already a great library, but it's performance isn't so great yet. I think some performance focus it's pretty good fit for rust GraphQL library :)
We had a discussion about it with @sunli829 via email and highlight some possible weak points.

The performance problems of async-graphql are mainly due to the following reasons:

Parser too much memory allocation, such as String.
In fact, I have optimized it with unsafe code, and the performance has been improved. Parsing a very complex query 40,000 times has improved by 100 milliseconds. I think that it is not worthwhile to exchange some unsafe factors for such a little performance improvement. So I changed it back.

The performance loss caused by the Box future returned by the async-trait. (This may not be easy to solve)
I found a new library async-trait-ext, maybe it can avoid extra memory allocation, but I haven't tried it yet.

Performance loss caused by asynchronous resolver function. (I have n’t thought of a method that is compatible with both synchronous and asynchronous, because it may mean that a lot of infrastructure needs to provide both synchronous and asynchronous)

Some solutions:

According to my tests, replacing https://github.com/async-graphql/benchmark with jemalloc can bring great performance improvements.

Query parsing/validation caching can be really great feature, especially because it's almost required for https://www.apollographql.com/docs/apollo-server/performance/apq/
Our app clients have in total less than 1000 queries/mutations/subscriptions, and all of it purely static, only variables is changed. So, basically, caching all of this queries documents can get rid of parsing/validation phase entirely in whole server and it's not really hard to implement - fast string hashing, simple LRU cache and additional setting to enable/disable this feature. There is can be additional option - cache only persisted queries, when they will be implemented.

But, of course,

We need a more complete benchmark test, we should first complete this work, and then first to improve the part with the greatest impact on performance.

We already have some benchmarks at https://github.com/async-graphql/benchmark but it should be improved.
Maybe it's worth to move benchmark to main repo and add https://github.com/marketplace/actions/continuous-benchmark to have clear baseline and performance history.

Currently I improves existing benchmarks, and for better coverage I need to understand main query processing phases. As I see, there is:

Parse a query
Validation against the schema
Recursive fields resolving

And extensions hooks everywhere, of course. Does it seems correct?

Yes, exactly! 😃

serde_json::Value is also quite slow, too much memory allocation, we may have to implement one ourselves.

Oh, yep, if we consider JSON string as final result, there is

Serialization to string

But i doubt we can make faster serialization than serde :)

Ok, there is some initial numbers, at my local machine. We also need to expose some methods to bench validation and resolve phases.
Serialize is not part of run, and wrapping results in serde_json::Value currently is part of resolve phase, not a serialize.
run                     time:   [247.00 us 249.60 us 252.41 us]
                        change: [-4.4749% -2.0674% +0.3226%] (p = 0.09 > 0.05)
                        No change in performance detected.
Found 7 outliers among 100 measurements (7.00%)
  3 (3.00%) high mild
  4 (4.00%) high severe

parse                   time:   [63.374 us 64.054 us 64.770 us]
                        change: [-1.3206% +2.2938% +7.3555%] (p = 0.43 > 0.05)
                        No change in performance detected.
Found 18 outliers among 100 measurements (18.00%)
  10 (10.00%) high mild
  8 (8.00%) high severe

serialize               time:   [7.5581 us 7.6434 us 7.7338 us]
                        change: [-5.9858% -3.1854% -0.5511%] (p = 0.03 < 0.05)
                        Change within noise threshold.
Found 13 outliers among 100 measurements (13.00%)
  8 (8.00%) high mild
  5 (5.00%) high severe

Should we include benchmarks into main repo? It will be easier to change thing & measure it.

Well, move it to the main repo, then I will delete the benchmark repo. Tomorrow I will optimize the parser. 😄

Maybe it's worth to move benchmark to main repo and add https://github.com/marketplace/actions/continuous-benchmark to have clear baseline and performance history.

That's great!👏

I added gqlgen benchmark test in async-graphql-benchmark and added jemalloc memory allocator. async-graphql is 40% faster than gqlgen on my macbook pro. If we do the optimization ourselves, it may only be a little faster than jemalloc. What do you think?

I added gqlgen benchmark test in async-graphql-benchmark and added jemalloc memory allocator. async-graphql is 40% faster than gqlgen on my macbook pro. If we do the optimization ourselves, it may only be a little faster than jemalloc. What do you think?

async-graphq/benchmark
Without jemalloc
run                     time:   [208.91 us 211.11 us 213.48 us]
                        change: [-10.401% -9.3251% -8.2008%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

parse                   time:   [35.218 us 35.324 us 35.434 us]
                        change: [-8.5952% -7.0866% -5.6535%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  3 (3.00%) low mild
  2 (2.00%) high mild
  4 (4.00%) high severe

serialize               time:   [6.4584 us 6.5017 us 6.5557 us]
                        change: [-4.4104% -3.1576% -1.7538%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  2 (2.00%) high mild
  4 (4.00%) high severe

With jemalloc
run                     time:   [142.10 us 142.92 us 143.88 us]
                        change: [-31.874% -31.086% -30.303%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe

parse                   time:   [28.329 us 28.539 us 28.773 us]
                        change: [-19.889% -19.340% -18.757%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 34 outliers among 100 measurements (34.00%)
  2 (2.00%) low severe
  15 (15.00%) low mild
  13 (13.00%) high mild
  4 (4.00%) high severe

serialize               time:   [6.4859 us 6.4973 us 6.5117 us]
                        change: [-2.2099% -1.0576% -0.1213%] (p = 0.05 < 0.05)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high severe

Oh, that's really good change! I think, it's already can be added to book, as first step.
I try to add our test to benchmark, there is many many objects with simple fields. Also we need some sort of concurrent testing, because throughput can be non linear from rps.

Okay, so I added new benchmark, and there is its numbers:
cargo bench -- chat

Benchmarking chat run: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 77.7s or reduce sample count to 10.

chat run                time:   [11.698 ms 11.901 ms 12.163 ms]
Found 10 outliers among 100 measurements (10.00%)
  4 (4.00%) high mild
  6 (6.00%) high severe

chat parse              time:   [34.066 us 34.821 us 35.893 us]
Found 19 outliers among 100 measurements (19.00%)
  3 (3.00%) high mild
  16 (16.00%) high severe

Benchmarking chat serialize: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 6.0s or reduce sample count to 60.

chat serialize          time:   [1.1857 ms 1.1929 ms 1.2009 ms]
Found 17 outliers among 100 measurements (17.00%)
  3 (3.00%) high mild
  14 (14.00%) high severe

It's sample of hundreds of resolvers per query. There is
(30 chats * 8 fields + 30 chats * 30 messages * 5 fields + 30 chats * 6 users * 11 fields) = 6720 async resolvers. There is not much a memory allocations, so I think it's mostly async resolvers overhead (plus serde Value creation).
With jemalloc there is some improvements, but not so big, as at small queries (about 10%):
chat run                time:   [10.367 ms 10.602 ms 10.887 ms]
                        change: [-29.034% -22.056% -15.382%] (p = 0.00 < 0.05)
                        Performance has improved.

Can we add chat_jemalloc and simple_jemalloc, so that we can compare them easily? If there is a big performance gap, then it means that the bottleneck is in the memory allocation, otherwise it is not.
BTW: Criterion doesn't seem to work properly on Windows.

Yep, ready.
On both chat and simple jemalloc reduces time about 10% in comparison with Linux system malloc. I think, your numbers is different because of Windows malloc implementaion is less efficient.

I'll try it on Linux tomorrow. Thank you.😄

The memory allocation performance of the MAC OS is really quite poor...

After some digging, I saw that we really can do sync resolvers - functions or fields. That if mostly get rid of resolve_field method? Then we can generate efficient resolve method for user object types, which will use futures only for async fields and just collect values for other fields. It shouldn't be really heavy change (resolve_field have only 14 matches in whole codebase), but still can give us good performance boost and better API design.
Then we can try to split sync and async scalars - all builtins is sync, for example, but users can add some custom async scalars.

In fact, I have tried this, but the performance improvement is not big.

Can you do a performance test with Juniper 0.14.2 because it only supports synchronization?

Now async-graphql isn't really slow, but it can be faster.
But database queries are the real bottleneck, aren't they? The performance loss of async-graphql is negligible compared to database queries.

Can you do a performance test with Juniper 0.14.2 because it only supports synchronization?

I've tested it and it's true that synchronization is fast, but with the complexity of the business, it's hard for synchronized code to take full advantage of multicore CPU.

it's hard for synchronized code to take full advantage of multicore CPU.

Yep, but if ObjectType::resolve is still async, this not an issue - code will run on all CPU cores, by default. Also, simple sync resolvers (for example - plain field getters) actually can be faster (if inlined) than creating future - but future should be runned yet. And user still can mark resolver async, to take advantage of less blocking tasks in big resolvers.
Biggest advantage of sync resolvers is lesser executor pressure. Currently in chat bench there is 7k futures per query (probably - more, because all scalars also async). And with all sync fields will be about 1k futures, so there CPU will run more user code, not an executor task-switching (per query, ofc).

I really think we should add plain sync resolvers support; I imagine this will improve performance by reducing executor pressure (like @Amareis said) especially on single/low core machines (e.g. Google Cloud Run/Functions or AWS lambda etc) which are common deployment scenarios...
We should benchmark it on low/slow/single core CPUs ( or via cpulimit etc.)...
If nothing else, it bothers me to see things like:
async fn id(&self) -> &ID {
    &self.id
}

sorta seems like a code smell 😄

I'm going to try to make a few small changes today. 😁

First of all, I want to solve the problem of interface function forwarding, it should be able to recognize async/sync.

I've made a few improvements to the sync-resolver branch, but the performance improvements are small, it's hard to fully support both sync and async.

Did you benchmark with a single CPU core?

Yes, I only tested it on a single-core CPU, and in fact a single GraphQL query because await can span more than one thread, but the execution is sequential.

@sunli829 which scenario you're using for this test?

@sunli829 which scenario you're using for this test?
sync-chat and async-chat

There is my benches (2 core CPU, jemalloc enabled)
Benchmarking async-chat run
async-chat run          time:   [9.6104 ms 9.6403 ms 9.6705 ms]

Benchmarking sync-chat run
sync-chat run           time:   [9.1370 ms 9.1672 ms 9.1987 ms]

In fact, there is solid 5% speed up in sync resolvers. Not bad, I think!
But, still, for each field future is creating (because of resolve_field is still async and it's used by resolve). And for each returned value too (because of async OutputValueType::resolve). And although resolve_field is crucial in current architecture, return values can be casted to serde_json::Value easily, we know it's types and in all simple cases (string, number, bool or list/option/result) we can cast to Value directly inside of resolve_field. I bet, this'll give us additional 4-5% percent of performance. (I will name it "sync scalars" in future).
But resolve_field is still most important. If we can avoid it at do_resolve when it's not needed, it'll be really amazing - and it's not so hard! With sync scalars it's just additional condition, where all sync fields executed in do_resolve directly. And, this is additional 4-5% boost, I think, without much efforts.

It is difficult to support sync scalars without generic specialization. 😕

@sunli829 Would it be possible to implement a #[SyncObject] macro where no methods could be async?

@sunli829 Would it be possible to implement a #[SyncObject] macro where no methods could be async?

I'm currently using the async keyword, but the slowest one is actually resolver.rs.
I think we should wait until the generic specialization support is in place, otherwise it will make the library more complex to use.

It is difficult to support sync scalars without generic specialization.

Why so? We always know field return type. It can be
a) built-in scalar
b) custom scalar
c) object
d) container (list/optional) of a, b, or c.
And we have list of built-in scalars names, currently all of it is sync.
So algorythm is not so complex, it can be just small macro function:

Strip all containers, from return value type, let result be MainType.
If MainType is built-in scalar, directly convert return value to serde_json::Value.
Else use async OutputValueType::resolve with .await, as usual.

Built-in scalars list can be just compile-time vector, with checking (#[Scalar(internal)] checks if scalar name in this list). Custom scalars also can be marked as sync (in field attribute, i think), but this isn't necessary.

Built-in scalars list can be just compile-time vector, with checking (#[Scalar(internal)] checks if scalar name in this list). Custom scalars also can be marked as sync (in field attribute, i think), but this isn't necessary.

I think it's a good idea, and I'll try. 😁


Appreciation, forked into neotest-vitest

Hey @haydenmeade,
Just like to say good work on this, just letting you know I have forked this and made some modifications to work with Vitest
https://github.com/KaiSpencer/neotest-vitest
Maybe down the line we could coalesce these two into one plugin with some configuration options since the actual code is so similar :)

Awesome! Sounds great

Not sure how we can communicate on improvements, but just made a commit for test/it alias in the treesitter query. I'm not familiar with vitest vs jest. What are the main changes in vitest adaptor if we are thinking of refactoring?

Not sure on communication either! :D
There isnt much changed, the command and args are slightly different.
And the json output is very slightly different also, a couple of keys aren't in the vitest json so I had to work round them.
So really, the only thing that will need implementing is a couple of instances where we need to parse the json slightly differently.


Add option to allow XMLHttpRequest for local files from the same directory and subdirectories

HTML Unit 4.2.0 introduced a security fix:
https://htmlunit.sourceforge.io/changes-report.html#a4.2.0
"Prevent XMLHttpRequest from loading local resource for security reason."
Most browsers do this by default but allow an override. Can an override option please be added that allows for local files from the same directory and sub-directories to be loaded via XMLHttpRequest?

I think yes, will have a look after my vacation.

@tntim96
made a new snapshot build - please try....

Thanks. I'm not sure what the snapshot name is, snapshot repository URL, or new API option is, but will see if I can work it out.

Tested and works perfectly for my test scenarios. :+1:

Great, and thanks for the fast feedback.
Enjoy using HtmlUnit.


html.NodeValidatorBuilder is not white listing href attribute

Console reports following error
html_dart2js.dart:50678 Removing disallowed attribute
f8 @ html_dart2js.dart:50678

Even after using a node validator that whitelists href attribute
var modalDivElement = new html.DivElement();
final html.NodeValidatorBuilder _htmlValidator =
        new html.NodeValidatorBuilder.common()
          ..allowElement('a', attributes: ['href']);
modalDivElement.setInnerHtml('test', validator: _htmlValidator);
html.querySelector("body").append(modalDivElement);

This is happening with other users as well , see this issue for example
https://github.com/dart-lang/dart-pad/issues/676
In the pull request that was made to fix this issue, you can see that href attribute was previously white listed for a elements using .allowElement('a', attributes: ['href']), and still it reports Removing disallowed attribute <A href="......
https://github.com/dart-lang/dart-pad/pull/689/files
As a result of this , some users(including me), as shown in above pull request have implemented a node validator that allows all attributes to be set without any errors.
See this implementation for example :
https://github.com/dart-lang/dart-pad/blob/7fa4ad8600c89a689bdc6f52fcfe8628cafd263b/lib/src/util.dart#L23
This is encouraging users to use insecure implementations of html.NodeValidatorBuilder for avoiding errors.
When href attribute is white listed, it should be allowed to be set without any errors.
Dart version:
Dart VM version: 2.0.0-dev.49.0 (Wed Apr 18 20:41:36 2018 +0200) on "linux_x64"
Browser:
Chromium Version 65.0.3325.181 (Developer Build) (64-bit)

The problem is not with the href attribute, it's that the default Uri policy is SameOriginUriPolicy and it disallows example.com. I think that's the only implementation provided, so you would need to implement a permissive UriPolicy.


TypeError: ref.startsWith is not a function

Hi Nathan,
thanks for your cool deno runtime. It feels super futuristic to use it with vercel. ❤
In<EMAIL_ADDRESS>my deployment fails.
When I use<EMAIL_ADDRESS>it's okay.

The problem might be located here:
https://github.com/TooTallNate/vercel-deno/blob/201cd4e45e8d3eb4be789327f6c14939c8405b4c/src/index.ts#L177

Shoot! Would you be able to share with me the code that is failing?

Thanks for helping me.
I will provide the failing example in 7 hours
Vercel CLI 19.1.1 Error! Resource is limited - try again after in 7 hours (more than 100, code: "api-deployments-free-builds-per-day").

I guess that importing a local module just let it fail.
// request.ts
const request = async (url: URL) => {
  return "abc";
};
export { request };

import { ServerRequest } from<EMAIL_ADDRESS>import { request} from "./request"; // if I don't import request, it works.

export default async (req: ServerRequest) => {
  req.respond({ body:"i love deno" });
};

Running your code as shown above fails because "./request" needs the .ts file extension (source):

error: Cannot resolve module "file:///vercel/10c672d9/api/request" from "file:///vercel/10c672d9/api/test.ts"

Fixing that, the API endpoint works as expected (source).
So basically, I can't seem to reproduce this so far. Could you perhaps share a full GH repo that demonstrates the issue?

Feel free to share any Vercel deployment URLs with me as well, I can take a closer look.

You were completely right Nathan!
The correct deno import syntax with .ts was helping me.
Thank you for your patience and sorry for the trouble :)

Glad you figured it out! Still strange to me that I couldn't reproduce your original error, but if things are working fine for you now then I'm not gonna worry about it for now.


[Feature]: First animation when the component render first time

What problem does this feature solve?
Hi Tremor team,
Thank you for creating the Progress Indicator component, it's very useful and easy to use which reduces the time for the development <3.
There is a prop called showAimation that animates the component when the value changes, however, I wondered if it's possible the animation when the component renders the first time.

What does the proposed API look like?
No response

Thank you @severinlandolt .


Cache support

It would be awesome to have cache support for linting.
What do I mean? flake8 by default checks all files, even if they are unchanged since the last run. It slows down the whole process and bring no additional value: files will have the same result.
What do I suggest? I suggest to cache the intermediate results and collect new files based on that. If the file is changed: then we recheck it. No? Otherwise, we show the cached result.
It should not be enabled by default I guess.

Awesome!

Cache hash includes:

Full file path
Settings
Installed plugins

Let's for the beginning add in cache only files without any warnings happened. In most cases, warnings can happen only in changed files, and from that assumption, we can keep the cache much simpler and smaller.

I think, that's a too complex task for hacktoberfest.

❤


Expiry date textfield doesn't append '/' which lead to invalid date format error - Frames 4.0.4, Xcode 14.3

Describe the bug
Expiry date textfield doesn't append '/' while adding the month & year. So instead of MM/YY, the final input text looks like MMYY and there is no way for user to explicitly add '/'. Hence the validation error "Please enter a valid expiry date" can never be resolved.
This blocking behaviour is observed on simulator build with Xcode 14.3
To Reproduce
Steps to reproduce the behavior:

Go to 'Add Card' form
Click on 'Expiry date' textfield
Start typing month & year of card expiry
See error - 'Please enter a valid expiry date'

Expected behavior
A slash '/' should be auto appended between month (MM) and year (YY) like MM/YY instead of MMYY
Screenshots

Additional context
Xcode Version - 14.3 (14E222b)
MacOS Version - Ventura 13.0.1
Chip - Apple M1 Pro
The issue is not reproducible on Sample app - iOS Example Frame SPM

Duplicate


High risk of SQL injection

Wherever user input is correlated with an SQL query, whether it be in a form or in the URL, there are no limitations to what the user can put in and there are no checks for integrity. The input is put directly into the corresponding SQL statement.
For example, when a user logs in the program must query the database for the specified information. In that query the email and password given by the user are inserted as clauses into the SQL. If the user's input was an SQL clause to drop the database, the web app would have no issue about that.
There are instances where SQL injection is not a threat due to the nature of the query, such as during registration, but many more are serious security threats to our web app.

https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
I found an SQL prevention cheat sheet, I want to get on it as soon as possible, but there are many places where these problems are evident, so more to fix it the merrier.

I just got done rewriting all the SQL queries and merging my work into the master branch. I believe the risk of SQL injection is greatly alleviated. Integrity checks will help as well, but that is a different issue.
I am going to close this for now, and if we find later that there is still a risk here we can reopen it.


[Suggestion] Possible to include a damage pop-off in the player's first person view if they take damage/heal?

Currently you can only see the damage/heal pop-offs while in third-person view. Would there be any way to show the damage/heal pop-offs in first-person view for the player?
P.S.
Damage Pop-Offs doesn't appear to account for Absorption so I wonder if that could also take into account. For example... I have 30 Health and 10 Absorb, I take 25 damage and only a pop-off of 15 shows since it affected Health. If it were to account for Absorb it would show the full 25 damage pop-off.

The pop off number is based on the damage event that is fired.

Ah, would there be a way to have it account for absorption hearts that are lost?

Responding way late.  Despite the name the pop-off is not based on the damage done by a weapon or effect.  What happens is that Dynamic Surroundings tracks the health of the mob from the prior tick and compares it based on the new health.  If there is a delta it generates a pop-up for a heal (gained health) or damage (reduced health).  So in a sense the value displayed already has all the effects baked into it.


Load lock from working directory

Previous implementation loaded lock file relative to kombustion binary
path - which happened to fall back to current directory if kombustion
was called without a qualified path.

Pull Request Test Coverage Report for Build 445

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-9.2%) to 32.072%

Totals

Change from base Build 442:
-9.2%

Covered Lines:
161

Relevant Lines:
502

💛  - Coveralls


Text size

I want to be able to adjust the text size, so I can fit in more text on the cards

You can make those kinds of adjustments like this in the content field
text | Some small text

Thank you!


Initalise new subapp called Projects

Wireframes: https://docs.google.com/presentation/d/1dpNTR9rN9KCzRHEzXYHBdPwb4sh4u_3VaW1FClngokc/edit#slide=id.p
A new subapp called Workspaces becomes available in Fusion sidebar.
When clicked, users are brought to the Workspaces home page that will (see additional issues for those):

list existing, open, personal workspaces/projects
list existing, open, organization workspaces/projects
let them create a new (personal) project
find a hidden list of past (closed) or archived/deprecated workspaces
cards for each workspaces in the list with key summary (status, dates, members, ... to be decided) and basic actions (edit, archive)
search and sort the list of workspaces

Implemented in BlueBrain/nexus-web#663


Inputs not working on iPhone 6

Using an iPhone 6S 12.1.3, Chrome and Safari browsers.
It seems like the input is not working on any of the UI Components examples:
https://nacular.github.io/doodle/#/controls

This could be due to a lack of PointerEvent support on older browsers. Mobile Safari only supported this in IOS 13 it seems. What version of Chrome is the device running?

It could make sense since I'm still using iOS 12 on this device.
By the way my Chrome version is 86.0.4240.93.


ChaosEngine: set constants uppercase

Short description:
More details:
What this PR does / why we need it:
Which issue(s) this PR fixes:
Special notes for reviewer:
Bug:

!verified


ECR: list_images should return RepositoryNotFoundException when repository is not found

Fixes #1698

Coverage decreased (-0.2%) to 92.036% when pulling e32a6408618b47997ffac15f86a50d5d07f82787 on chezclem:ECR-list-images-exception into bb6da93891482ddcb87c23e6abddc0e451f72d30 on spulec:master.

@spulec I'm not very familiar with the way coveralls calculates the coverage stats. The list_images function is fully covered by tests (unless I'm missing something). Happy to increase the coverage of another function if necessary.
Let me know what you think.
And thank you for open-sourcing moto!

This looks great! Thanks for the help and welcome to Moto!


Fix clippy warning

Not sure why these slipped through the crack. I will also file an issue to track why CI did not catch these.

#1639 filed. Before it is fixed, we just need to be careful :)

@YJDoc2 Since we got you here, would you mind approve this? CI is currently blocked because the clippy warning this PR fixes.

Hey @yihuaf , We should go ahead and merge this. Is there anything that this depends on (other pr etc.)?

Hey @yihuaf , We should go ahead and merge this. Is there anything that this depends on (other pr etc.)?

No, this can now go in. I will merge. Thank you :)


tests: enable isort

https://github.com/inveniosoftware/invenio-userprofiles/blob/master/run-tests.sh#L26

Seems to be closed as of<PHONE_NUMBER>e4a178e0ffbe7c6237630b0e22dec0.


fix: can't detect unit test error

Signed-off-by: Yuan Sun<EMAIL_ADDRESS>Ⅰ. Describe what this PR did
CI can't detect unit test error. Even if unit test is failed, travis ci is paas. This PR it to fix the issue.
Ⅱ. Does this pull request fix one issue?
Yes
Ⅲ. Describe how you did it
Add "set -e " in hack/build.
Ⅳ. Describe how to verify it
make unit-test
Ⅴ. Special notes for reviews

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

Codecov Report

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

@@          Coverage Diff           @@
##           master    #693   +/-   ##
======================================
  Coverage    9.97%   9.97%
======================================
  Files          92      92
  Lines        5375    5375
======================================
  Hits          536     536
  Misses       4789    4789
  Partials       50      50

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 c3fe994...ca87ee1. Read the comment docs.

LGTM


@Victorayo you can work on it

          @Victorayo you can work on it

Originally posted by @OSCA-Ado-Ekiti in https://github.com/OSCA-Ado-Ekiti/tech-companies-in-africa/issues/20#issuecomment-1743740004
Will work on this separately now. Kindly reassign pls @OSCA-Ado-Ekiti

          @Victorayo you can work on it

Originally posted by @OSCA-Ado-Ekiti in #20 (comment)
Will work on this separately now. Kindly reassign pls @OSCA-Ado-Ekiti

Refer to PR #120 for solution


Dev questions

I would like a list of all the supported ways of naming a plugin (what comes after Bundle in your vimrc). Maybe I should call it configuring a plugin?

The reason I'm asking is because I'm trying to understand the if statement
 if    arg =~? '^\s*\(gh\|github\):\S\+'
 \  || arg =~? '^[a-z0-9][a-z0-9-]*/[^/]\+$'

The second one is for / but what is the first one for?

@marlun I assume by now this is no longer a question :laughing:
I vote to close this issue, any seconds? @btreeinfinity @silfverstrom @gmarik

@ryanoasis :+1:
Feel @marlun feel free to keep discussion going tho…


Skip allocating empty raw tokens

Tiny change to reduce object allocation. Avoids allocating empty strings between tags with whitespace control -}}   {{-.
The ruby-head build is broken in general, tests do pass on 2.x.

The ruby-head build is broken in general, tests do pass on 2.x.

Should we allow_failures until that is fixed?


Is there a more efficient way to transfer data into the Javascript context besides JSON?

I believe a similar question has been asked before, but I am trying to transfer a large multi-dimensional array of doubles from my host context into the V8 JavaScript context. So far I have found that the only somewhat reasonable solution is to convert the entire thing into a JSON string and then JSON.parse it in JavaScript. This solution is still extremely slow compared to a solution where we use the V8 C++ API's to construct the arrays.
I have considered using the ITypedArray interface to construct the arrays, but even that I have found to be slower than JSON. Also, since I have an array of arrays, the ITypedArray interface won't help as I'll still need to cross the JS/.NET boundary many times to construct the array of arrays.
Does ClearScript expose any way to quickly construct native V8 objects or is this a technical limitation of using this component?
Thanks, any suggestions are appreciated.

I'm doing some tests where I write the entire multi dimensional array into a single Float64Array and use the ITypedArray interface to pass to the JS context, then split it up into individual arrays on the JS side. This might be the best approach.

Hi @cchapin89,

I'm doing some tests where I write the entire multi dimensional array into a single Float64Array and use the ITypedArray interface to pass to the JS context, then split it up into individual arrays on the JS side. This might be the best approach.

Yes, that would be our recommendation – copy the multidimensional array into a flat double[], then use ITypedArray<double>.Write to blast the data into a JavaScript array.
Note also that you can do the "splitting" on the script side without copying data – by using the Float64Array constructor that lets the array be a view onto a portion of the flat array's memory buffer.
Thanks, and good luck!