Shopify.Utils.loadCurrentSession does not always call the loadCallback and returns undefined, Oauth loop

Issue summary
On the server side, when calling await Shopify.Utils.loadCurrentSession(ctx.req, ctx.res), the function is supposed to call the loadCallback for the Shopify.Session.CustomSessionStorage. However, it does not always call this function when invoked, and immediately returns undefined, which causes the app to re-auth and get stuck in an infinite Oauth loop.
Expected behavior
await Shopify.Utils.loadCurrentSession(ctx.req, ctx.res) should always call the loadCallback for the Shopify.Session.CustomSessionStorage. Its value should be undefined only if loadCallback returns undefined, but should otherwise contain a Session object.
Actual behavior
During auth and app loading, Shopify.Utils.loadCurrentSession calls the loadCallback function. However, after auth when handleRequest is called, and the Shopify.Utils.loadCurrentSession is called again, it immediately (less than 1ms) returns undefined and loadCallback is NOT run.
Example code from server.js
Shopify.Context.initialize({
  API_KEY: API_KEY,
  API_SECRET_KEY: SHOPIFY_API_SECRET,
  SCOPES: SHOPIFY_API_SCOPES.split(","),
  HOST_NAME: SHOPIFY_APP_URL.replace(/https:\/\//, ""),
  API_VERSION: ApiVersion.April21,
  IS_EMBEDDED_APP: true,
  SESSION_STORAGE: new Shopify.Session.CustomSessionStorage(
    storeCallback,
    loadCallback,
    deleteCallback,
  ),
});

async function loadCallback(id) {
  //This is NOT called after handleRequest()
  //Load session from db
  session = await getFromDb();
  if(session) {
    return session;
  } else {
    return undefined;
  }
});

  router.get("/", async (ctx) => {
    const shop = ctx.query.shop;

    const currentSession = await Shopify.Utils.loadCurrentSession(ctx.req, ctx.res);
    if(!currentSession) {
      ctx.redirect(`/auth?shop=${shop}`);
    }  else {
      await handleRequest(ctx);
    }
  });

App Oauth flow
Shopify.Utils.loadCurrentSession: undefined
Redirect to /auth
storeCallback: Store new temp session #1 (random id, with partial data)
Shopify.Utils.loadCurrentSession (loadCallback runs): Load temp session #1
storeCallback: Store shop session (with myshopify url in id)
storeCallback: Store temp session #1 again (with full data)
Shopify.Utils.loadCurrentSession (loadCallback runs): Load temp session #1 again
Redirect to /
Shopify.Utils.loadCurrentSession (loadCallback runs): Load temp session #1 again
Load app (handleRequest())
Shopify.Utils.loadCurrentSession (**loadCallback does NOT run**): Attempt to load current online session (but immediately returns undefined)
Redirect to /auth
Process repeats until app throws error: "The app couldn’t be loaded This app can’t load due to an issue with browser cookies."

There are two things I noticed:
1. Is the storeCallback storing the session correctly?
your database record to be like this

id
session

4ac3a57c-7dc3-4350-b8e7-f328a560f68f
{"id":"4ac3a57c-7dc3-4350-b8e7-f328a560f68f","shop":"yourshop.myshopify.com","state":"842171815096913",...}

2. Is the loadCallback loading the session correctly?
You haven't passed the argument id to getFromDb, so it's unclear which session you can load.
async function loadCallback(id) {
    session = await getFromDb();
...

aside from that.
I have also suffered from similar behavior.
In my case, when I tried to run it with lambda@AWS-APIGateway,the first loadSession call succeeded or failed, about half and half.
I don't know the reason, but it can be explained as the behavior that loadSession is called before Shopify.Context.initialize is completed.
The order of processing was fixed by doing the following:
app.use(
    Shopify.Context.initialize({
       API_KEY: 'Your API_KEY',
       API_SECRET_KEY: 'Your API_SECRET_KEY',
       SCOPES: ['Your scopes'],
       HOST_NAME: 'Your HOST_NAME (omit the https:// part)',
       API_VERSION: ApiVersion.October20,
       IS_EMBEDDED_APP: true,
       SESSION_STORAGE: new Shopify.Session.MemorySessionStorage(),
     });
     shopifyAuth({
     ...
);

Hmm, interesting thought, I will look into that.
Yes, I have confirmed storeCallback and loadCallback are functioning properly. (My auth was working previously, but I had some package update break it. After reverting and not seeming like anything changed, I now have this Oauth loop.)

@ilugobayo I have only one initialization. The initialization moved from outside app.use to inside app.use.

@kato-takaomi-ams My bad, I was referring to app.prepare().then(), but anyway, with this you fixed the OAuth loop then? Do you use the both access modes, or only the online access mode? Haven't you noticed any issues with that change?

@kato-takaomi-ams I've tried putting the context initialization inside the server.use(). I recently converted the server to Typescript, and it gives the error Argument of type 'void' is not assignable to parameter of type 'Middleware<DefaultState, DefaultContext, any>'. So, I'm not sure it's supposed to go there. Placing it inside the app.prepare() had no effect.

@jt274 Sorry. I was wrong. I ended up separating the initialization into a separate ts file.
app.ts
import Shopify, { AuthQuery } from "./shopify";

shopify.ts
require("dotenv").config();
import Shopify, { ApiVersion } from "@shopify/shopify-api";

const { API_KEY, API_SECRET_KEY, SCOPES, HOST } = process.env;
const { sessionStorage } = require("session_storage");
const config = {
  API_KEY,
  API_SECRET_KEY,
  SCOPES: [SCOPES],
  HOST_NAME: HOST,
  IS_EMBEDDED_APP: true,
  API_VERSION: ApiVersion.January21,
  SESSION_STORAGE: sessionStorage,
};

Shopify.Context.initialize(config);
console.log("Shopify.Context.initialize", config);

export default Shopify;
export * from "@shopify/shopify-api";

@jt274 Sorry. I was wrong. I ended up separating the initialization into a separate ts file.
app.ts
import Shopify, { AuthQuery } from "./shopify";

shopify.ts
require("dotenv").config();
import Shopify, { ApiVersion } from "@shopify/shopify-api";

const { API_KEY, API_SECRET_KEY, SCOPES, HOST } = process.env;
const { sessionStorage } = require("session_storage");
const config = {
  API_KEY,
  API_SECRET_KEY,
  SCOPES: [SCOPES],
  HOST_NAME: HOST,
  IS_EMBEDDED_APP: true,
  API_VERSION: ApiVersion.January21,
  SESSION_STORAGE: sessionStorage,
};

Shopify.Context.initialize(config);
console.log("Shopify.Context.initialize", config);

export default Shopify;
export * from "@shopify/shopify-api";

@kato-takaomi-ams & @jt274 why did you decide to change it to Typescript?
By the way, I tried your solution but it didn't work, got this error:
(node:171296) UnhandledPromiseRejectionWarning: TypeError: middleware must be a function!
    at Application.use (/home/ilugo/Documents/bayonet-shopify/node_modules/koa/lib/application.js:123:41)
    at /home/ilugo/Documents/bayonet-shopify/server/server.js:79:10
(Use `node --trace-warnings ...` to show where the warning was created)
(node:171296) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:171296) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

So I still can't get the session token consistently with loadCurrentSession for the required validations in "/".

@kato-takaomi-ams & @jt274 why did you decide to change it to Typescript?
By the way, I tried your solution but it didn't work, got this error:
(node:171296) UnhandledPromiseRejectionWarning: TypeError: middleware must be a function!
    at Application.use (/home/ilugo/Documents/bayonet-shopify/node_modules/koa/lib/application.js:123:41)
    at /home/ilugo/Documents/bayonet-shopify/server/server.js:79:10
(Use `node --trace-warnings ...` to show where the warning was created)
(node:171296) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:171296) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

So I still can't get the session token consistently with loadCurrentSession for the required validations in "/".

@jt274 yes, this is exactly the behavior I have, at some point Shopify.Utils.loadCurrentSession DOES retrieve a session but when the main page is about to load, it redirects me to '/auth' again. I "got rid" of the OAuth loop with this:
    if (installedStatus === 0 || installedStatus === 2) {
      ctx.redirect(`/install/auth?shop=${shop}`);
    } else {
      if (sessionRetrieved !== undefined) {
        if (new Date(sessionRetrieved.expires) < Date.now()) {
          ctx.redirect(`/auth?shop=${shop}`);
        }
      } else {
        console.log(`Session couldn't be retrieved`);
        await handleRequest(ctx);
      }
    }

Now I have an error that says "Not found"; I debugged the code and checked the session that sometimes retrieves, that session is the temporary one with random ID, the one that has shop_user as ID is never retrieved, oddly enough, the expires value of that temporary session is always less than the present time, therefore, it would always try to redirect to '/auth'.
I still don't know how to retrieve the session I need (shop_user as ID), is the last piece I'm missing to complete the session token implementation.
I was thinking on maybe create a function that directly checks the database, without using Shopify.Utils.loadCurrentSession or the callback functions; since ctx.query contains a session value, I think it would be possible to "manually" check if the session value of the session stored in the database (or whatever session storage you're using) is different, if so, redirect to '/auth'?
That is just a random idea, the only issue I found is that I can't actually know which session to check, I know it's a session for a given shop (ctx.query.shop) but ctx doesn't include the user as far as I know, if there was a way to get the user as well, then maybe my idea could work.

I was thinking on maybe create a function that directly checks the database
I've tried it already (with accessToken). If session is undefined, its values from the database are no longer valid

@ilugobayo I don't believe you can just check the session yourself. It actually has to be loaded by the library. If it's not loaded (and able to be retrieved with loadCurrentSession), the info will not be sent with graphql requests and they will fail.
My app definitely retrieves the session with the shop name in the id and a proper expiration date. But it still disappears at the app loading and enters the re-auth loop. I'm also not getting the headers returned from the graphql requests to tell me when the session is invalid, despite specifying them to be returned.

@jt274 it's really odd, because the loadCallback execution actually loads a session, but why loadCurrentSession would never return anything since it should execute those functions, only sessions with random ID, do you think I'm doing something wrong with my session storage?
class SessionHandler {

  async storeCallback(session) {
    //console.log('store callback');
    try {
      return await dbSetHelper.saveSessionForShop(session.id, JSON.stringify(session));
    } catch (err) {
      // throw errors, and handle them gracefully in your application
      throw new Error(err)
    }
  }

  async loadCallback(id) {
    console.log('load callback');
    try {
      var reply = await dbGetHelper.getSessionForShop(id);

      const parsedReply = JSON.parse(reply);

      const newSession = new Session(parsedReply['id']);

      newSession.shop = parsedReply['shop'];
      newSession.state = parsedReply['state'];
      newSession.isOnline = parsedReply['isOnline'];
      newSession.accessToken = parsedReply['accessToken'];

      newSession.expires = parsedReply['expires'] ? new Date(parsedReply['expires']) : null;
      newSession.scope = parsedReply['scope'];
      newSession.onlineAccessInfo = parsedReply['onlineAccessInfo'] ? parsedReply['onlineAccessInfo'] : null;

        //const parsedJson = JSON.parse(reply);
        //var newSession = new Session(parsedJson['id']);
        //Object.entries(parsedJson).forEach(([key, value]) => newSession[key] = value);

      console.log(newSession);

      return newSession;
      // } else {
      //   return undefined;
      // }
    } catch (err) {
      // throw errors, and handle them gracefully in your application
      return undefined;
    }
  }

  async deleteCallback(id) {
    //console.log('delete callback');
    try {
      return dbSetHelper.deleteSessionForShop(id);
    } catch (err) {
      // throw errors, and handle them gracefully in your application
      throw new Error(err)
    }
  }
}

// Export the class
module.exports = SessionHandler

This is pretty much it, do you see anything wrong?

I am tracking down the path for loading the session, and I've discovered that loadCurrentSession calls the getCurrentSessionId function. This function takes in the request and response arguments. It then reads the authorization header:
https://github.com/Shopify/shopify-node-api/blob/0c16494755f4507bca01dcef3e9243bcc0478ff8/src/auth/oauth/oauth.ts#L240
The problem is that for me this header is not present when my server.js file loads the / route like so:
router.get("/", async (ctx) => { //function here });
ctx.req does not contain auth headers. If you go through the rest of the getCurrentSessionId function, you'll see that it then causes it to be treated like an offline session and tries to read the session from a cookie, which is also undefined. It then returns the undefined session. And with no session, we cannot do anything other than go back to auth again.

@jt274 In this case, the issue is on our side? Or can be considered a bug?

@jt274 In this case, the issue is on our side? Or can be considered a bug?

I am not sure, I am currently trying to find what is supposed to supply those headers and why they are not there.

Well, my app works now. Literally changed nothing since last night when it was completely broken! Using the exact same deployment as before. Not sure what to say. I'll keep digging and see what I can do to have the auth break again.

I am having a similar issue.

I am also facing the same issue. Any findings?
@jt274 The Authorization header is added only when authenticatedFetch from @shopify/app-bridge-utilities is used to make a fetch request from the frontend.

Hi guys, the issue occurs only when a user is on the "You are about to install #APP_NAME" page and they wait for more than 1 minute to click "Install app"
This issue occurs when using the Shopify.Session.MemorySessionStorage and Shopify.Session.CustomSessionStorage.
As noted above, the loadCallback function isn't even called and results in the following error Cannot complete OAuth process. Could not find an OAuth cookie for shop url: #SHOP_URL even though there is a session in the storage.
My relevant dependencies are:
"@shopify/app-bridge": "^2.0.3",
"@shopify/app-bridge-react": "^2.0.3",
"@shopify/app-bridge-utils": "^2.0.3",
"@shopify/koa-shopify-auth": "^4.1.3",
"koa": "^2.13.1",
"koa-bodyparser": "^4.3.0",
"koa-ignore": "^1.0.1",
"koa-logger": "^3.2.1",
"koa-router": "^8.0.8",
"shopify-api-node": "^3.6.12",

@jt274 In this case, the issue is on our side? Or can be considered a bug?

I think this should be considered a bug. We are in the process of onboarding new clients and have told them to try and zoom through the install page, but this isn't ideal as most clients like to read about what they're installing!

Hi guys, the issue occurs only when a user is on the "You are about to install #APP_NAME" page and they wait for more than 1 minute to click "Install app".

I might see this as a different issue if it's happening during install. For me, when it was happening, it was after install and happened regularly.
I have a couple areas of the app auth that feel a bit like they're being held together with tape. Definitely think the whole auth situation could be improved. It can make for some long loading times.


Handle not supported content encoding

Although HtmlWeb class allows to ignore resp.ContentEncoding by OverrideEncoding property, it cannot help in the case where resp.ContentEncoding has encoding name which is not supported by Encoding class, and throws ArgumentException.
When OverrideEncoding is provided, the result from Encoding.GetEncoding method has not been actually used so that simply skipping Encoding.GetEncoding method call can make it work without impact to existing behaviors.
EncodingNotSupportedException is added in order to notify that such not supported content encoding is received from server. It helps when writing code to retry loading page with OverrideEncoding.
fix #326

Hello @y-code ,
Thank you for the pull, we will look at it.
Best Regards,
Jonathan

Performance Libraries
context.BulkInsert(list, options => options.BatchSize = 1000);
Entity Framework Extensions • Entity Framework Classic • Bulk Operations •  Dapper Plus
Runtime Evaluation
Eval.Execute("x + y", new {x = 1, y = 2}); // return 3
C# Eval Function • SQL Eval Function

Hello @y-code ,
Sorry for the long delay, we were unable to work on HAP during September.
We checked the pull and it looks good but it's possible to get one case in which the new exception will be throw?
If you want, you can add it to the unit test section or just provide the code here.

Hi @JonathanMagnan,
Thank you for having time to review my change. I'll try to add a unit test.

Hello @y-code ,
Do you think you would have time to add those unit tests soon?
We currently cannot merge this fix since we don't know how to reproduce the issue.

Hello @y-code ,
Whenever you are ready to provide a unit test, just add it and we will re-open this pull.
Meanwhile, we will close it as my developer asked me to don't push it unless we better understand what will be the impact and for this, we need an example.

Hi @JonathanMagnan,
I added tests for my change. Please re-open this pull request and review the code I added.
In order to make HtmlWeb class testable in unit test, I added a code refactoring in the class. I hope you wouldn't mind this change. This refactoring abstracts HttpWebRequest and HttpWebResponse used in HtmlWeb class. It applies only to the code active with preprocessor symbol !(NETSTANDARD1_3 || NETSTANDARD1_6 || METRO).
For testing, I added another project so as to run the tests over .NET Core as well. This project targets multiple frameworks; net40, net45 and netcoreapp2.1. The tests can be run with every framework in Visual Studio. To run them in the command line, dotnet.exe test can run tests only over netcoreapp2.1. For net40 and net45, we still need to use nunit3-console.exe. To debug test with netcoreapp2.1, it sounds not reasonable but we need to edit csproj file so that netcoreapp2.1 comes first in  tag.
I also migrated the existing tests in HtmlAgilityPack.Tests.Net45 test project to the new test project, so if the test project looks okay, we can remove HtmlAgilityPack.Tests.Net45 test project.
In addition, I added one more project for a tool to generate test code. It was a code I used for creating the base of the test code which I added this time. I thought it could be generally useful, so I included it in this pull request. If it is not, please advise me to remove it.

Awesome,
We will look at it ;)


[Feature]: Adding the hover effect and animation effect

Is your feature request related to a problem? Please describe.
Add hover effect and animation effect on the heading:-

SERVICES
TESTIMONIALS
CONTRACT US

Describe the solution you'd like.
will add the hover effect and animation on heading
Describe alternatives you've considered.
this feature improves the overall user experience.
Add any other context or screenshots about the feature request here.
No response

I have already worked on this type of issue like enhancing the hover effect n all under GSSoC'23 .Assign this issue to me under GSSoC'23, I Will fix the issue.

Sure @dheeraj1129

solved issue #452


Rename unwrap to into_inner.

Implements #460 for Unit, Rotation, Transform, Orthographic3 and Perspective3. In all cases, unwrap() is retained, but deprecated.

Thanks!


Creating an index in pouch that is synced to couch throws error

The problem statement is fairly straightforward.  I have replicate setup and call a db.createIndex(...) call, which results in the following:
CustomPouchError
{
error: true
message: "Something wrong with the request"
name: "bad_request"
reason: "Referer header required."
status: 400
}

i ended up setting a spoofed header of 'http://localhost:5984', but now it comes back with:
error: true
message: "Only reserved document ids may start with underscore."
name: "bad_request"
reason: "Only reserved document ids may start with underscore."
status: 400

I believe this issue is that you are using a database that does not support Cloudant-style queries (e.g. CouchDB 1.x).

@nolanlawson, you are correct, i am on couch 1.6.  we selected it exclusively because i'm a raving pouch fan :) .  do you have any personal recommendations that will still exploit all the great pouch sync-ability?  much appreciated!

You can build CouchDB master from source (it's quite stable; passing our tests), or wait for 2.0 to be released. :)

Oh, or you could use PouchDB Server.

cool. good to know couch 2.x is coming along!  ill give it a shot.  thanks for the tips, as always!


Initial TAG Env website into Spanish

This is the first PR to contribute to continuous, translate the TAG Env website. We are planning to contribute each month for update this website.

For the Spanish grammar validation what do you suggest, remove the grammar validation by adding

Or add another language to the cspell.json? @leonardpahlke

Thank you so much @sergioarmgpl !!

For the Spanish grammar validation what do you suggest, remove the grammar validation by adding
Or add another language to the cspell.json? @leonardpahlke

Would defer to @guidemetothemoon here. What are your thoughts?

@guidemetothemoon :)

I will check language support in cspell and get back to you😊

@sergioarmgpl apologies for delayed response here, I finally got time to dig properly into this. So cspell supports a bunch of dictionaries that can be imported, including Spanish one. I made it work locally with cspell tool but it fails with cspell GitHub action and I'm currently in a dialogue with maintainers to find a solution for this: https://github.com/streetsidesoftware/cspell-action/issues/181#issuecomment-1962978997
For now you can ignore that this specific step fails and I will follow it up once I hear back from cspell maintainers.
I also fixed most of the broken links flagged by the link check step directly in your branch - hope it's OK☺

We can merge it @guidemetothemoon cc: @leonardpahlke all good by our side as team @shlopezm4 @jossiebk @Dianmz @JuanPabloGarciaMonzon @MRJeff99 @yimmirp

Awesome!! Merged 🙌


When InteractionManager is set to DontDestroyOnLoad, holding an object while changing scenes null refs in CheckContactEnd()

Another one from JCorvinus.
The behaviour gets deleted upon loading the new scene but it still has an entry in the contact list.
His workaround is the correct strategy; upon loading a new scene, all interaction tracking data should be cleared.
protected virtual void Start() {
      if (manager == null) manager = InteractionManager.instance;
      UnityEngine.SceneManagement.SceneManager.activeSceneChanged +=
      (UnityEngine.SceneManagement.Scene oldscene, UnityEngine.SceneManagement.Scene newscene) => {
          ClearHoverTracking();
          ClearPrimaryHoverTracking();
          ClearContactTracking();
      };
}

Couldn't reproduce after some fixes were implemented for other bugs; we now correctly clear tracking state when an InteractionBehaviour is destroyed, which was not happening before, and must have been causing this bug as well when loading a new scene.


Clear instructions for setting up everything upfront & using PowerShell on Windows

[ ] Insert a step 2 to make sure everybody has exactly the same setup:

[ ] Terminal on Mac / Linux, Powershell on Windows.
[ ] In correct location. No spaces / special characters in path (see prog-econ repo, slides on Shell Introduction).
[ ] All paths to required programmes should be correct (explain that we will need to launch them from the shell), i.e., pdflatex and, if required, anything that is required like stata, matlab, r should start the respective programme (check the files {{cookiecutter.project_slug}}/.mywaflib/waflib/extras/run_*_script.py). Assume atom is installed and atom launches editor from shell. Similar for git.
[ ] Links to how to set paths on MacOS, Windows. Explain that new shell needs to be launched./

[ ] New step 3 (currently 2) should read
$ conda deactivate $ conda install cookiecutter pre-commit
First part just to be sure. Second because conda init often fails (Mac, Windows) for reasons I have not fully understood.
[ ] Add a step 7 (currently between 5 and 6) on what to do if anything fails:
1. Understand the error
2. Type
$ atom ~/.cookiecutter_replay/econ-project-template-[version].json
Fix the faulty setting if something went wrong there, alternatively fix paths etc.  When done, launch a new shell if necessary and type:
$ cookiecutter --replay https://github.com/hmgaudecker/econ-project-templates/archive/[version].zip

is that with the paths only a windows problem or also a mac problem?

Regarding the point with the pre-commits, I think the cleanest wa to do it and this also has a "Lerneffekt" for the pre-commit users, is to do it in step 7 after activate env , run pre-commit install... because that is what you always have to do if you want to use pre-commmit hooks outside of the template. And then people dont have to put it in the base env if they dont want to.

what is the terminal in mac called?

is that with the paths only a windows problem or also a mac problem?

Well, a "problem" in the sense that system paths are not modified by programmes that are installed, which is mostly a good thing. The only actual problem is that most new users have no idea where to modify them. Same on Linux -- unless you install stuff via package managers -- but there we can assume people know what they are doing.
On MacOS, it is just a matter of modifying things in ~/.bash_profiile, the instructions in the econ-python-environment docs on github.io should be reasonably up-to-date.

what is the terminal in mac called?

Terminal.

Regarding the point with the pre-commits, I think the cleanest wa to do it and this also has a "Lerneffekt" for the pre-commit users, is to do it in step 7 after activate env , run pre-commit install... because that is what you always have to do if you want to use pre-commmit hooks outside of the template. And then people dont have to put it in the base env if they dont want to.

Sounds good.

Does the atom refer to the editor? Not everyone might have this.

Yes. We should include it in the installation instructions. If somebody wants to use something else, they should know how to start whatever they want to use.

fixed in #65


Include sponsors section

For reference:
https://opencollective.com/emplea_do
https://opencollective.com/emplea_do/members/organizations.json <- List of organizations
https://opencollective.com/emplea_do/members/users.json <- List of individual

Asigname este issue please.


Replace Android link with firebase-ios-sdk PR

Hey there! So you want to contribute to a Firebase SDK?
Before you file this pull request, please read these guidelines:
Discussion

Read the contribution guidelines (CONTRIBUTING.md).
If this has been discussed in an issue, make sure to link to the issue here.
If not, go file an issue about this before creating a pull request to discuss.

Testing

Make sure all existing tests in the repository pass after your change.
If you fixed a bug or added a feature, add a new test to cover your code.

API Changes

At this time we cannot accept changes that affect the public API.  If you'd like to help
us make Firebase APIs better, please propose your change in a feature request so that we
can discuss it together.

SGTM


Fix docker compose

Noticed that config dir wasn't mounted and that the ports were different in the config file.  Also added the docker mysql password to the config sample.  Open to suggestions.
It's probably best to include some vars that can be provided by env vars via docker if they dont already exist.

Fixed in PR #37.
Thanks!


tests/kernel/threads/tls/kernel.threads.tls.userspace failing

Describe the bug
tests/kernel/threads/tls/kernel.threads.tls.userspace is failed on following targets:

frdm_k64f
disco_l475_iot1, nucleo_f429zi (and more STM32 targets)

To Reproduce
$ twister  -T tests/kernel/threads/tls/
Impact
What impact does this issue have on your progress (e.g., annoyance, showstopper)
Logs and console output
*** Booting Zephyr OS build zephyr-v2.4.0-2965-gadb2e982e840  ***
Running test suite thread_tls
===================================================================
START - test_tls
thread 0: result 0 (expecting 0)
thread 1: result 0 (expecting 0)
thread 2: result 0 (expecting 0)
PASS - test_tls
===================================================================
Test suite thread_tls succeeded
Running test suite thread_tls_userspace
===================================================================
START - test_tls_userspace
E: 0x200 is not a valid z_thread_stack_element
E: address is not a known kernel object
E: syscall z_vrfy_k_thread_create failed check: bad stack object
E: r0/a1:  0x00000000  r1/a2:  0x00000000  r2/a3:  0x00000000
E: r3/a4:  0x00000000 r12/ip:  0x00000000 r14/lr:  0x00000000
E:  xpsr:  0x00000000
E: Faulting instruction address (r15/pc): 0x00000000
E: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
E: Current thread: 0x20000318 (unknown)
E: Halting system

Environment (please complete the following information):

OS: Linux
Toolchain: Zephyr SDK 0.12.0
Commit SHA: zephyr-v2.4.0-2952-g86e98f0894

Additional context
Add any other context about the problem here.

duplicate of #30393

duplicate of #30393


Parenting for externally defined class functions in package

Issue: Function defined outside of a class (which is a member of a package) is parented to the package instead of the class definition.
Test case: UnitForeach
File: top2.v
package uvm_pkg;
    function void uvm_sequencer_base::do_print (uvm_printer printer);
        ......
    endfunction
endpackage

UHDM:
  |vpiTaskFunc:
  \_function: (uvm_pkg::uvm_sequencer_base::do_print), id:39, line:5:3, endln:11:14
    |vpiParent:
    \_package: uvm_pkg (uvm_pkg::), id:38, file:E:\Davenche\Surelog\tests\UnitForeach\top2.v, line:3:1, endln:14:11

Expected:
The function should be parented to the uvm_sequencer_base class definition.

Correct, and the vpiInstance should point to the package, please perform the change.

The class uvm_sequencer_base is not defined, so the function is not referring it.
If you define the class, it does what you ask:
package uvm_pkg;

   class uvm_sequencer_base;
   extern function void do_print (uvm_printer printer);
   endclass

  function void uvm_sequencer_base::do_print (uvm_printer printer);
    super.do_print(printer);
    printer.print_array_header("arbitration_queue", arb_sequence_q.size());
    foreach (arb_sequence_q[i])
      printer.print_string($sformatf("[%0d]", i),
         $sformatf("%s@seqid%0d",arb_sequence_q[i].request.name(),arb_sequence_q[i].sequence_id), "[");
  endfunction

endpackage


Allow fallback to Service Cluster IP

two ways to solve this

add a field within EnvoyProxy called disableEndpointRouting / enableClusterIPRouting which allows us to fallback to routing using Service Cluster IP
incorporate this into the load balancing API

ptal @envoyproxy/gateway-maintainers

chatted with @kflynn the other day about this and we both feel adding it in the load balancing API is more suitable

if we added it another API, userX may enable serviceIP at the EnvoyProxy level, user Y may set the LB Policy and then wonder why the LB policy isn't working. Adding it inside the LB Policy forces the user to be aware of the lb & routing decision to endpoints

I am +1 on load balancing api, if we set this in EnvoyProxy, IMHO, this is on GC level and working for all managed Gateways, but if people just want this to work in specific Gateways, a Policy is more suitable.

this new ClusterIP load balancing type should live in https://github.com/envoyproxy/gateway/blob/main/api/v1alpha1/loadbalancer_types.go

Hi @arkodg, i think this use case can be achieved by adding a fallbackToClusterIP field
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: BackendTrafficPolicy
metadata:
  namespace: default
  name: policy-for-route1
spec:
  targetRef:
    group: gateway.networking.k8s.io
    kind: HTTPRoute
    name: httproute-1
    namespace: default
  loadBalancer:
    type: LeastRequest
    slowStart:
      window: 300s
    fallbackToClusterIP: true # Enables fallback to service's cluster IP

@yeedove, I personally prefer
  loadBalancer:
    type: ClusterIP

Turns out that to get Envoy Gateway working well with Linkerd, we either need this or we need an l5d-dst-override header to be added to the request, so I would definitely like this. 🙂
I'd personally vote for routingType: service or routingType: endpoint, but I'm good with @arkodg's type suggestion.

/assign

please assign to me

I like @kflynn's suggestion of a dedicated field routingType, if we take this approach, we'll have to use CEL to disable loadBalancing if routingType: Service

we discussed this in the community meeting today, most were in favor of this field living in the BackendTrafficPolicy
thanks for volunteering to pick this up @kflynn, temporarily assigning this to you for now
here's a link to help you get started https://github.com/envoyproxy/gateway/blob/2a38de6067d421026994b8cbea202e399e68c98e/internal/gatewayapi/route.go#L1074 (you'll need to override global EndpointRoutingDisabled field)

I guess this depends on do we need per-service configuration for the choice of cluster IP vs pod IP?

one reason to select Service routing is for mesh case (sidecar beside gateway) to work seamlessly, so it will work for the xRoute backends (with sidecars ) but not if the ext auth / ext proc / Otel (have sidecars ) but it won't get intercepted properly in the gateway sidecar

Any progress on this? I’m looking to deploy EG alongside an Istio mesh and from what I’m hearing here and in the related ticket, I would need this feature to make it work?

@kflynn still planning on working on this one ?

@kflynn by setting the routingType: service would we lose the observability into each endpoint in the /clusters config & metrics and only display the ClusterIP?

I think if service-mesh is being used, the metrics are likely going to be more useful from the mesh than from the ingress, because the mesh will handle service -> service as well as envoy -> service in the same format and namespace..

I think @lnattrass has the right of it – part of the point of the mesh is that it should be handling both metrics and routing for you in this case.

@arkodg I'd still like to, yes! so here's a question for you. There already is an EndpointRoutingDisabled field in the Translator; do we think that works as a global switch? or is a leftover untested vestigial thing? 🙂

@arkodg I'd still like to, yes! so here's a question for you. There already is an EndpointRoutingDisabled field in the Translator; do we think that works as a global switch? or is a leftover untested vestigial thing? 🙂

@kflynn this should work as expected, the gatewayapi test should prove this easily, if the flag is set, the clusterIP we get set it in the IR

@lnattrass we're not necessarily interested in Linkerd for routing on our ingress, but more so for cross-cluster service discovery and mTLS. So we'd prefer to keep the load balancing capabilities and metrics as close to our proxy as possible. In the past the CPU requirements of running 4k RPS+ on an ingress pod with linkerd over doubles our usage and since we've always used headless services we haven't relied on Linkerd's load balancing.
I suppose this is more of a niche use-case, but it does limit us on implementing multi-cluster Linkerd.
@kflynn would Linkerd be open to mirroring EndpointSlices as well or is it out of scope? I could open an issue (and potentially work on it) if you think it's worth considering

Hi @kflynn I'm sorry to take this over from you, but we internally needed a fix earlier :) feel free to check out and comment my PR, though!

@evacchi No apology needed! as you can see, I've been pulled onto other things, thank you for making this happen!! 🙂


warning: failed to read collections cache: FileNotFoundError(2, 'No such file or directory')

Not sure if this program is being looked at anymore. Perhaps it's too old or something has changed on gab's end?

Gab moved to using a Mastodon based system back around July 2019 IIRC. This project was written for the old Gab site API. Unfortunately, you cannot use the Python Mastodon API package since it actively blocks connections to several Gab Social instances. You need to either patch the library or use a modified version. I host a forked version that removes the block but I have not updated it in a while; it still works on the site.
https://github.com/Ryochan7/Mastodon.py
Making a bot for Mastodon is fairly simple once you get a proper library. Here is a decent tutorial on how to make a bot that will work with Mastodon instances.
https://shkspr.mobi/blog/2018/08/easy-guide-to-building-mastodon-bots/
Also, here is an example of an active bot that I use with Gab and the BotsInSpace Mastodon instance. It is a bot that takes an NIST randomness beacon and posts a Bible passage based on the number that is obtained.
https://gitlab.com/ryochan7/nistbot-mastodon

Wow, that's brilliant... it's exactly the use I wanted to put this to ;)
On Mon, Dec 7, 2020 at 7:53 AM Travis Nickles<EMAIL_ADDRESS>wrote:

Gab moved to using a Mastodon based system back around July 2019 IIRC.
This project was written for the old Gab site API. Unfortunately, you
cannot use the Python Mastodon API package since it actively blocks
connections to several Gab Social instances. You need to either patch the
library or use a modified version. I host a forked version that removes the
block but I have not updated it in a while; it still works on the site.
https://github.com/Ryochan7/Mastodon.py
Making a bot for Mastodon is fairly simple once you get a proper library.
Here is a decent tutorial on how to make a bot that will work with Mastodon
instances.
https://shkspr.mobi/blog/2018/08/easy-guide-to-building-mastodon-bots/
Also, here is an example of an active bot that I use with Gab and the
BotsInSpace Mastodon instance. It is a bot that takes an NIST randomness
beacon and posts a Bible passage based on the number that is obtained.
https://gitlab.com/ryochan7/nistbot-mastodon
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/a-tal/gab/issues/1#issuecomment-739562130, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOPCVF4NFWWEPJARE4IUCDSTPVNHANCNFSM4UPSPKCQ
.

thanks @Ryochan7

Looks like it doesn't matter now. It seems Torba removed support for the Mastodon API endpoint and third party app support. It is now impossible to make a bot account on Gab. The last post my bot made was dated 2020/12/22 and the Gab API Developers group confirms that the breakage was intentional. Supposedly Mammudeck will be allowed again at some point but nothing else. RIP @NIST_Oracle bot.


TQ REST API does not return attributes or score /api/indicators/search

When hitting the /api/indicators/search endpoint and specifying that a score and attributes be returned, the ThreatQ REST API does not appear to be returning values for those properties even when included using the with=score,attributes syntax.
Based on the documentation both of these related objects should be supported.  This might be a documentation issue.

Should be resolved in latest 3.0.0-beta release


docs(neovim): add show_refs default

Motivation
No default was put in doc/renamer.txt for show_refs.
Proposed changes

update doc/renamer.txt

Test plan
Documentation changes do not require testing.

merged in GH-54


Why is there no ADL.activities object?

Since ADL.verbs exists, I'm just wondering why ADL.activities (or activityTypes) doesn't?
I'm using the xAPIWrapper in a project I'm working on and was surprised that it wasn't there.

Thanks for bringing this up. I added verbs.js a few years ago as I found I kept looking for the verbs while I was using the wrapper. There is no reason activity types couldn't be added. I put it on the list of enhancements.
If you would like we would be willing to accept a pull request. Otherwise, we'll update this in a coming release.

Hi @creighton, thank you for the quick response.  I only mentioned it because I find myself looking up the activity types in the same way.  I'm happy to create a PR for this.
Is something like this ok, with a key-value object on the activity type and the IRI?
   ADL.activites = {
      "assessment" : "http://adlnet.gov/expapi/activities/assessment"
   };

Yep that looks great. Can you name it activityTypes?


Error:ssl3_get_record:wrong version number

Hello,
I get these messages if I try to connect to the mqtt server by hass:
1557245132: OpenSSL Error: error:1408F10B:SSL routines:ssl3_get_record:wrong version number
1557245132: Socket error on client <unknown>, disconnecting.

This is my add-on config:
{
  "log_level": "info",
  "certfile": "fullchain.pem",
  "keyfile": "privkey.pem",
  "web": {
    "enabled": true,
    "ssl": false
  },
  "broker": {
    "enabled": true,
    "enable_ws": false,
    "enable_mqtt": false,
    "enable_ws_ssl": true,
    "enable_mqtt_ssl": true,
    "allow_anonymous": false
  },
  "mqttusers": [
    {
      "username": "hass",
      "password": "mypass",
      "readonly": false,
      "topics": [
        "hass/#"
      ]
    }
  ]
}

Any idea to solve that?
Thanks in Advance!

How did you configure it in HA?

Sorry - Embarassing. It went out that my certificate was stale.


check the Text-to-speech documentation

From Steve:
When you all get around to updating documents...the TextToSpeech languages should be updated as per this thread.
Perhaps it is only more recent Android versions get Korean and Japanese or units manufactured in Asia?

There seems to be no good (stable) source of documentation.  But it looks like we can add a command to get the available languages.   AI does this in ternally in TextToSpeech, and we should be able to expose it without much effort.

Addressed in #293


Add more docstrings

Description
This PR attempts to add docstrings to all public classes, methods, functions, and modules. Those which shouldn't be public are now largely made private. Most aren't what I would characterize as complete, but they do exist.
Linting is handled by pydocstyle, with minimal configuration, in order to at least ensure a baseline level of consistency.
This should improve the results of #255, so I would prefer completing this PR before merging that one.

@Yoshanuikabundi not sure if/how you'd go about reviewing these. Maybe it would be better for this to be merged and any errors corrected in later revisions?

Thanks for finding the typos! One of my keyboards has a rebellious "d" key which I expected to be the cause of some troubles. Luckily it looks like the number of typos wasn't too bad.
I'm going to go ahead and merge this without totally cleaning up the matrix methods, which I haven't yet had enough coffee to find the right words for. It's also something that's likely subject to a major refactor soon.

I also feel I should point out that a file called .pre-commit-config.yaml has been modified.

Yeah, the diff on that file is larger than it should be since an auto-update got sucked into this branch. The relevant bit was adding the pydocstyle hook. (Also, raising the minimum % of docstrings that interrogate requires.) The framework is basically automation for linting/style/etc tools; opt-in for developers but enforced with a CI hook: https://github.com/openforcefield/openff-interchange/blob/master/docs/developing.md#pre-commit


Learn Maven or Gradle

I should learn about Maven or Gradle for easy use of VK Java SDK. First I should read about both of them.

It will be Gradle!

First I should read an introductory free book from O'Reily.

Some gradle understanding enough for making first steps was achieved.


[Feature -Request] - Send to many copy-paste

Once Send to Many windows is open sparrow does not allow to copy -paste from the background windows. Allowing it could make the workflow (of data copy paste) smoother, instead of solely relying on .csv

As of 4c408ac7 the Send to Many dialog is non-modal (can move to the background). If the menu command is used with an existing dialog in the background, it is moved to the foreground.


[ui-v0.6.7] ui manifest

Signed-off-by: David Echelberger<EMAIL_ADDRESS>

Codecov Report

Merging #636 (e8c1c35) into main (0e10191) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main      #636   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          311       311
  Lines        18860     18860
=========================================
  Hits         18860     18860

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 0e10191...e8c1c35. Read the comment docs.


Cascading attributes to SubFactories?

Hello,
I currently have this situation:

class GroupFactory(DjangoModelFactory):
  class Meta:
    model = Group

  # ...
  org = factory.SubFactory(OrganizationFactory)

class ProfileFactory(DjangoModelFactory):
    class Meta:
      model = Profile

    # ...
    user  = factory.SubFactory('app.factories.UserFactory', profile=None)
    org   = factory.SubFactory(OrganizationFactory)
    group = factory.SubFactory(GroupFactory)  # <-- Want this to be created using Profile's org

Is there any clean way to pass in the org from one model to another dependent model?

factory.SelfAttribute... I can totally read.


Clearing of Introduction to Parallel Programming

Making the title of the course Introduction to Parallel Programming clear by mentioning which tech used in the course.

@abderraouf-adjal thanks but this is not the title of the course.


Request: Add feedback option to Chorus to make a flanger

Hi there,
As I understand, the only differences between a Chorus and a Flanger are these:

A Flanger has a shorter delay time than a Chorus.

The delay time of a Flanger modulates to 0, but doesn't with a Chorus.

With a Flanger, the delay has feedback, with a chorus it doesn't.

You can do the first 2 with the current implementation, but not the 3rd.
Would it be possible to add a feedback option to the Chorus?
If it is as simple as swapping the Delay for a FeedbackDelay I could try it myself, although I'm not entirely familiar with Tone's architecture.
Or maybe make Flanger is own, separate effect. But I wouldn't know how to do that without copying alot of code from the Chorus effect.
Thanks in advance

I made Chorus extend StereoFeedbackEffect instead of StereoEffect which now gives it a feedback property. I test it out and with the right settings you get flanger-y effects. With chorus.feedback.value = 0 it is the same old chorus effect.
I'll also add a note in the docs which mentions that this effect can be used for both chorus and flanger effects

That's awesome. Thanks tambien!


Use existing cognito userPool with amplify graphql / datastore

Is your feature request related to a problem? Please describe.
Currently it seems impossible to use an existing userPool (deployed via cdk) with an amplify graphql API, at least there is no option with the CLI.
Describe the solution you'd like
Introduce the ability to add an existing userPoolId/clientId/etc with the CLI.

@bkniffler This is something we currently looking into as a part of this RFC https://github.com/aws-amplify/amplify-cli/issues/3977
Closing this issue in favor of the RFC.

Was there any updates on this?


Added example for cross-compiling on Intel Edison

@pbosetti How about wrapping this into a toolchain?


Unable to pull JMX data using jolokia from Kafka -Connection Refused

I have installed Jolokia in centos 7 machine and trying to pull Kafka metrics using Jolokia agent and integrate with Icinga monitoring tool using Nagios plugin check_jmx4perl. Below are the configuration steps I have followed
Step 1: Downloaded jolokia-jvm-1.3.4-agent.jar
Step 2: Copied to /home/usr/
Step 3: Provided permissions by issuing command chmod a+x /home/usr/jolokia-jvm-1.3.4.jar
Step 4: Added to class path by issuing command export KAFKA_OPTS="$KAFKA_OPTS -javaagent:/home/usr/jolokia-jvm-1.3.4-agent.jar=host=*"
Step 5: Started Zookeeper and Kafka in standalone mode and tried to fetch list of topics which works fine by displaying the message
INFO: No access restrictor found, access to all MBean is allowed
Jolokia: Agent started with URL http://0:0:0:0:0:0:0:0:8778/jolokia/

Step 6: Testing jolokia agent by issuing the command j4psh http://localhost:8778
Connection refused

I have also tried by providing IP address but the issue still remains the same. Do I need to make an entry of the host in etc/hosts file?

Hmm, could you try with host=<IP_ADDRESS> in the options ? Feel like a confusion with IPv6 vs IPv4

I have tried with <IP_ADDRESS> but still facing the connection refused issue

And you are sure that you are running on the same host ? Can you try to add -Djava.net.preferIPv4Stack=true to the KAFKA_OPTS ?

I have added export KAFKA_OPTS="$KAFKA_OPTS -javaagent:/home/usr/jolokia-jvm-1.3.4-agent.jar=host=* -Djava.net.preferIPv4Stack=true" but now facing different issue Error opening zip file or JAR manifest missing : /home/usr/jolokia-jvm-1.3.4-agent.jar
Error occurred during initialization of VM
agent library failed to init: instrument
Did I add correctly?

I have added the following
export KAFKA_OPTS="-javaagent:$JOLOKIA_JAR=port=7778,host=* $KAFKA_OPTS -Djava.net.preferIPv4Stack=true"
Still facing the same issue connection refused j4psh http://localhost:7778/jolokia and I dont see any process running on the port. I have checked using netstat -plten

it's not running in a VM or docker container or so ? I'm pretty sure its something simple which is wrong here. do you see still the "Jolokia: Agent started with  ..." log line ?
I'm not deep in kafka but one issue could be that these opts are only used for a starter JVM which finished soon.

It is not running on any docker or VM container. Yes when I try to fetch list of topics from Kafka I still see the log line.

@rhuss : what happens if Centos 7 is installed as VM? Do I need to enable any settings?

no, but you can't use localhost (thats my point).
please note that I'm on PTO for the next two weeks. I'm pretty sure its not an intrinsic Jolokia issue, would be awesome if someone else with Kafka experience could chime in.

Are you still facing this issue?
I think the port for Jolokia that you are using is incorrect(7778), i think the correct port is 8778!


Support resource definition in different scopes

Fixes issue: https://github.com/Azure/autorest.azureresourceschema/issues/50

@anthony-c-martin please help check this PR

Would you mind adding Microsoft.Consumption to the list in https://github.com/Azure/autorest.azureresourceschema/blob/master/.gulp/regeneration.iced (e.g. just to ensure there are no future regressions)?

(as discussed offline) Please could you confirm you've run npm run regenerate? If there are any changes, please include them in this PR.


Update deps-new to 0.5.0

The 0.5.0 version no longer references build-clj in generated projects, so users get a more "standard" experience and can rely on the official documentation instead of trying to figure out how to use my wrapper (which I am trying to sunset).

Published as 0.1.56


[Feature] Request database on heroku server

Is your feature request related to a problem? Please describe.
It is tricky to write api's that combine data from different csv files. Working with csv files is not ideal.
Describe the solution you'd like
I would like to request a database be added to the heroku server for storing and serving the data
Describe alternatives you've considered
The alternative is files that have the issues listed above
Additional context
csv files can still be used for source data and can be used by importers to bring the data into the database.
Something like for example:
postgresql + postgrest could be a simple yet comprehensive solution.

@Vutlhari

Are you looking for an actual database you can query or would having an HTTP API suffice for the request?


Docker container for tgtg_get_tokens

Would be great if we could just run a docker command to fire this up.
I will probably try this for myself. If I get anywhere I can post the docker file.
You would need build scripts to create the image, copy the tgtg_get_tokens script and upload to docker hub (or github packages).

Hey @DavidDeSloovere thanks for your input!
That would be a very good idea, however I don't have a lot of experience in docker files.
If have the skills and time to do it, I would be more than happy to merge or reference it here!

An even better solution would be to manage everything from the Home-Assistant UI (see #3), but I won't have the skill & time to do it.

I saw the #3 but I'm guessing the effort for that one would be bigger. I'll see what I can come up with for the docker route.

https://github.com/Chouffy/home_assistant_tgtg/pull/35


Breaks other wifi, after uninstall

Swapped out Intel 9560 for a DW1820A, but can now not get a DHCP lease. Had the DW1820A before trying the intel card and it worked fine.
How do I revert any changes this driver made?

fixed by removing wifi network from saved, and reconnecting with password.


How to auto merge pr

Description
Just added documentation on how to auto merge pr if someone so desired.
Fixes #213
Checklist

[ ] I have squashed my commits into a single one with a message that aligns with the contributing guidelines
[ ] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

Thanks for the PR! I'll review it in the upcoming days.

Coverage remained the same at 90.816% when pulling 38bd468924de5383c62b6368a0474376dfe01e46 on utkarshsethi:auto-merge-pr into a23f32b17e2fcc9986a99fc2a84eafce7b97e5e2 on FantasticFiasco:master.


Add test unit

Motivation:

add some test unit

Modification:
increase coverage  50% to 60%
Result:
Fixes #.
If there is no issue then describe the changes introduced by this PR.

@glmapper 测试用例先 self review  下然后再修改下。

@glmapper Capitalize the first letter next commit!!!!


Update circe to 0.7.0

Updating circe to 0.7.0. This required updating to latest argus since the circe API has changes quite a bit. And updating argus required generating Spec.scala

Codecov Report

Merging #103 into master will increase coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master    #103      +/-   ##
=========================================
+ Coverage   70.25%   70.3%   +0.05%
=========================================
  Files          27      27
  Lines        1785    1785
  Branches        6       6
=========================================
+ Hits         1254    1255       +1
+ Misses        531     530       -1

Impacted Files
Coverage Δ

core/src/main/scala/vegas/spec/Spec.scala
69.42% <ø> (ø)
:arrow_up:

...os/src/main/scala/vegas/macros/AliasWithLens.scala
100% <0%> (+100%)
:arrow_up:

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 ff51dff...0eee06a. Read the comment docs.


Timesheet - 18/04/2021 - Justin N.

Task 1
Add projects to the website API
Proof of Work

https://github.com/thenewboston-developers/Website-API/tree/feat/projects

Time Spent
2 hours

Total Time Spent
2 hours
Account Number
3f9b32ffde20179abd0df8a201e1d2ec8e407f62c93bc9e76c110c0d26ad1593

Approved

Approved


Owners controller, repo, and BL complete

Created:  OwnerRepo, IOwnerRepo
OwnerBL, IOwnerBL
OwnersController

SonarCloud detected three code smells, regarding splitting a method, in three files, into two, one handling parameters check and the other handling the asynchronous code. This was targeting the line "throw new ArgumentNullException(nameof());"

try-catch blocks may be necessary to address the three code smell.


Rewrite of schedulebot

This will need some environment variables set:
ACUITY_API_USER
ACUITY_API_KEY
For now it takes an event and if its a reservation it will correctly handle it by putting it into the proper spreadsheet. Will need to repeat this for lessons and racing signups

Deployed to Prod!


Missing libresolv.so Reference with fips enabled

It would appear that the node-driver-registrar container is missing a reference to libresolv.so
Expected Behavior
Expect the container to start without any error (or at least not one related to libresolv).
Current Behavior
/usr/local/bin/node-driver-registrar: error while loading shared libraries: libresolv.so.2: cannot open shared object file: No such file or directory

Possible Solution
From what I can see this might be resolved by copying libresolv into the container like it does for libc.so, which means by adding
COPY --from=ubi /lib64/libresolv.so.2 /lib64/libresolv.so.2

The problem might be resolved. Unfortunately I can't get it to build on my mac so can't test it.
Steps to Reproduce (for bugs)
Set fipsMode to enabled in the installation:
  installation:
    fipsMode: Enabled

Your Environment

Calico version - 3.27.0
Orchestrator version - Kubernetes (EKS)
Operating System and version: 1.27.0

Thank you for reporting this @KrisJohnstone. We have created https://github.com/projectcalico/calico/pull/8516 to address this.

Closing the issue, since the fix is merged now. It will be released in calico v3.27.2 patch release which we expect to happen soon.


Missing dependency Relation.Binary.Construct.Closure.ReflexiveTransitive.Equivalence?

Compiling Everything fails with the error
Categories/Category/Construction/Graphs.agda:29,8-86
Failed to find source of module
Relation.Binary.Construct.Closure.ReflexiveTransitive.Equivalence

I'm using the latest version (master) of the standard library. Am I missing a patch?

No, that's my bug. I was experimenting with WeakGraph as the proper notion of underlying graph (I've abandoned that for now, may get back to it later) and this was part of the experiment. It's not needed, I'll fix it asap.

Fixed by d8dc5081833


Few questions

In guide it use "," separator but google sheets only accepts ";"

I can't add headers by this way

I get 403 error but when I do the same request via reqbin.com - it goes right

In USAGE section "=IMPORTJSONAPI("https://test.com/api", "$..Title", "@", 1)"
But when I try to add another arguments I get this

use commas.


Invoke-Sqlcmd2 cannot pass parms to stored procedure

I cannot call a stored procedure with parms.  here is my code
$QUERY = 'EXEC DBATools.dbo.DatabaseRestore @dbname,@backupPath,@restoreDBname'
Invoke-Sqlcmd2 -ServerInstance $s -QueryTimeout 2700 -ConnectionTimeout 0 -Query $QUERY -SqlParameters @{dbname = "SE_Prod";backupPath = "\dbabackup\SQL_Server_Backups\SQLPRD02$SE\SE_PROD\FULL";restoreDBname = "SE_SBX"}

I fixed the problem.  the backupPath parm contained a $ in the name.  I had the string in double quotes which would remove the value.  Changed to a single quote and now it works

Awesome, thanks for the heads up!  Closing this out.  On a side note, if you do run into issues hit us up at the dbatools repo, where we've moved Invoke-SqlCmd2


Migrate all tests to Junit 5

Related to https://github.com/square/okhttp/issues/6296
We should run our tests with Junit 5, for better test features, graal support and dogfooding our mockwebserver-junit5.

And run the GraalVM tests in CI!

Is this 4.10 blocking?

For 4.10 I’d like to know what our GraalVM bugs are.

Closing with https://github.com/square/okhttp/pull/6421
Separate task for CI.


Unrecognized tag: Numberformat|Workbook,false|Styles,false

Why i try to read an old xls file, i get this error. I tried to update the xml string to update the Numberformat to "NumberFormat" but then it failed in next HTML tag.  Can you please look. Also, the live demo at sheetJS also not able to parse thru the file. let me know if you need more info.

Can you share the file?  If you can't do it publicly, feel free to email<EMAIL_ADDRESS>


Use BBVA's public APIs?

Just learnt about https://www.bbvaapimarket.com/web/api_market/products#bbva-products from a friend, and it looks like there's a way to access all the info without having to scrape their website.
Might be worth investigating : )

@bomberstudios yes, indeed we have access to that API and we've had conversations with the API Market team to create a new adapter for that API and it is in our roadmap.
However, there is a reason why we decided to create adapters for BBVA mobile app API and BBVA Net Cash mobile app API:

Right now the public API is on alpha stage and to use it you need to require and invitation to it (and it may take some time), where the current Bankscrap adapters let use their APIs right away, just with your normal credentials.
The public API doesn't offer the same level of detail for each transactions. For instance, last time we checked, the public API didn't provide the resulting balance after each transaction.
The public API doesn't offer support for business accounts yet.

As I said to their devs, in my humble opinion the starting point for the public API should be to provide the same features that their two other APIs offer – as the two APIs behind bankscrap-bbva and bankscrap-bbva-net-cash are also public APIs, they're just not documented.
I think the fact that projects like Bankscrap are unlocking these undocumented APIs is a good motivator for Banks to start working on well-documented and free APIs – we'll keep pushing until that times comes. As bank customers we think our financial data should belong to us, and we should be allowed to decide how to consume it.
Some banks we've talked to say they have problems to offer public APIs because their legal teams say that could make phishing attacks way easier. They don't realize that someone who may want to do phishing only needs a few hours to find out what's the API behind the mobile apps they're already offering. And it doesn't matter if they do SSL certificate pinning, or code obfuscation.
There is one thing worth mentioning: on their roadmap there is a future API for subscribing to notifications. I think this may be super useful, as it would avoid having to use polling for many use cases.
In any case, we definitely want to implement a new bankscrap-bbva-api-accounts (name may be different) adapter. I was planning to do this soon, but if you wanna go ahead an contribute to the project you will be more than welcome!
PS: note that BBVA API Market is a group of several APIs, the relevant one for Bankscrap is the Accounts one.
PS2: kudos to the devs behind BBVA API Market, they're doing an awesome job within a very complex organization. I just hope their legal colleagues won't stop them.

Thanks a lot for the detailed answer. It is much appreciated : )


[Documentation] Provide brief installation instructions for --docker setup

Overview
First off, thanks to all of you who work on K3s. It's such an awesome service. I have a use-case which requires running K3s on Docker. I'm following Using Docker as the Container Runtime. I realized after running the K3s install (see version / arguments below) that I also had to install Docker (which I found a bit odd, seeing as the flag is called --docker; would this be the same flag to run any other container runtime environment, then?), so I went ahead and followed the Docker Install Guide for Ubuntu. Things seem to be 👌 so far.
Now upon validation, I'm noticing a few things:
Docker is working
First, docker images and docker ps are working, and show the initial K3s images pulled / running.
crictl is not working
The default container runtime endpoint for crictl (unix:///run/k3s/containerd/containerd.sock), throws a fatal exception (despite, oddly, it existing in the default location 🤔).
$ sudo crictl version
FATA[2020-03-25T19:45:49.230724133Z] failed to connect: failed to connect, make sure you are running as root and the runtime has been started: context deadline exceeded

I tried to set the container runtime to unix:///run/containerd/containerd.sock, but was still left with an error.
$ sudo crictl -r "unix:///run/containerd/containerd.sock" images
FATA[2020-03-25T20:44:15.272398583Z] listing images failed: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService

But, (following this comment) after overriding the Docker's default Containerd configuration with containerd config default in addition to setting the container runtime to unix:///run/containerd/containerd.sock, I'm getting some information back now.
$ sudo crictl -r "unix:///run/containerd/containerd.sock" version
Version:  0.1.0
RuntimeName:  containerd
RuntimeVersion:  1.2.13
RuntimeApiVersion:  v1alpha2

Docker's Containerd Configuration
#   Copyright 2018-2020 Docker Inc.

#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at

#       http://www.apache.org/licenses/LICENSE-2.0

#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.

disabled_plugins = ["cri"]

#root = "/var/lib/containerd"
#state = "/run/containerd"
#subreaper = true
#oom_score = 0

#[grpc]
#  address = "/run/containerd/containerd.sock"
#  uid = 0
#  gid = 0

#[debug]
#  address = "/run/containerd/debug.sock"
#  uid = 0
#  gid = 0
#  level = "info"

Containerd Default Configuration
root = "/var/lib/containerd"
state = "/run/containerd"
oom_score = 0

[grpc]
  address = "/run/containerd/containerd.sock"
  uid = 0
  gid = 0
  max_recv_message_size = 16777216
  max_send_message_size = 16777216

[debug]
  address = ""
  uid = 0
  gid = 0
  level = ""

[metrics]
  address = ""
  grpc_histogram = false

[cgroup]
  path = ""

[plugins]
  [plugins.cgroups]
    no_prometheus = false
  [plugins.cri]
    stream_server_address = "<IP_ADDRESS>"
    stream_server_port = "0"
    enable_selinux = false
    sandbox_image = "k8s.gcr.io/pause:3.1"
    stats_collect_period = 10
    systemd_cgroup = false
    enable_tls_streaming = false
    max_container_log_line_size = 16384
    disable_proc_mount = false
    [plugins.cri.containerd]
      snapshotter = "overlayfs"
      no_pivot = false
      [plugins.cri.containerd.default_runtime]
        runtime_type = "io.containerd.runtime.v1.linux"
        runtime_engine = ""
        runtime_root = ""
      [plugins.cri.containerd.untrusted_workload_runtime]
        runtime_type = ""
        runtime_engine = ""
        runtime_root = ""
    [plugins.cri.cni]
      bin_dir = "/opt/cni/bin"
      conf_dir = "/etc/cni/net.d"
      conf_template = ""
    [plugins.cri.registry]
      [plugins.cri.registry.mirrors]
        [plugins.cri.registry.mirrors."docker.io"]
          endpoint = ["https://registry-1.docker.io"]
    [plugins.cri.x509_key_pair_streaming]
      tls_cert_file = ""
      tls_key_file = ""
  [plugins.diff-service]
    default = ["walking"]
  [plugins.linux]
    shim = "containerd-shim"
    runtime = "runc"
    runtime_root = ""
    no_shim = false
    shim_debug = false
  [plugins.opt]
    path = "/opt/containerd"
  [plugins.restart]
    interval = "10s"
  [plugins.scheduler]
    pause_threshold = 0.02
    deletion_threshold = 0
    mutation_threshold = 100
    schedule_delay = "0s"
    startup_delay = "100ms"

But (the 2nd), I'm not getting images through crictl
$ sudo crictl -r "unix:///run/containerd/containerd.sock" images
IMAGE               TAG                 IMAGE ID            SIZE

Containerd's CLI tool ctr is still installed
Is this supposed to be the case? 😅
Documentation for Docker setup includes unused Containerd configuration
Going back to the Docker setup reference documentation, it includes configuration setup for Containerd, which doesn't seem to be used / generated when the --docker flag is passed.
$ sudo cat /var/lib/rancher/k3s/agent/etc/containerd/config.toml
cat: /var/lib/rancher/k3s/agent/etc/containerd/config.toml: No such file or directory

In summary, I'm not sure if I have everything set up correctly. I'm attempting to highlight the fact that it would be extremely helpful if the documentation outlined the steps in setting up other container runtime environments.
K3s Version
$ k3s -v
k3s version v1.17.4+k3s1 (3eee8ac3)

K3s Argument(s)
$ curl -sfL https://get.k3s.io | sh -s - --docker

This second comment will be reserved for findings / solution.
I noticed from this Kubernetes page if I set the container runtime to unix:///var/run/dockershim.sock I get the correct output for all commands.
$ sudo crictl -r "unix:///var/run/dockershim.sock" version
Version:  0.1.0
RuntimeName:  docker
RuntimeVersion:  19.03.8
RuntimeApiVersion:  1.40.0

@james-r-smith After running
curl -sfL https://get.k3s.io | sh -s - --docker
You should be able to run docker ps and see the CoreDNS, Traefik, and metrics servers containers.
I think you shouldn't have to manually install Docker. What was the output after you originally ran the installation command?

Thanks, @catherineluse. After going through the install process a few more times, I was able to get it working just fine. 😊 I am curious as to why you had to install crictl, though. Couldn't you use the one provided by k3s?

Closing this issue because https://github.com/rancher/docs/pull/2523 and https://github.com/rancher/k3s/pull/1950 were merged


Extend notification order with service affiliation

Description
A notification order may or may not have a service affiliation identified by a resource id and (optionally) a resource instance.
An organization should be able to link a notification order request to a resource. The properties should be persisted in the database and made available when recipients are to be identified.
Considerations

Should it be required to provide the person or organization number for the recipient if a resource id is provided?

Yes, it should not be up to Notifications to identify the instanceOwner's person or organization number based of the resource id. Use cases for this will be that an order is placed from an app or a system that has access to the instance data, from which the person or organization number is easily available.

Should the resource affiliation properties be exposed in the notifications summaries (e.g. notifications/api/v1/orders/{orderId}/notifications/email) and order status endpoint?

No, resource affiliation should be treated as a part of the notification templates and not be included in OrderWithStatus or NotificationSummary model. This saves us from having to retrieve data from the jsonb or placing the data in individual columns to support retrieval in relation to notification summaries.

Assumptions / Pre-requisites

[x] Flag for bypassing reservation in KRR is defined on the notification order object

Tasks

[x] Add resource affiliation properties to external order models

EmailNotificationOrderRequestExt
SmsNotificationOrderRequestExt
NotificationOrderExt

[x] Add resource affiliation properties to domain models

NotificationOrderRequest
NotificationOrder

[x] Add mapping of service affiliation to relevant mapper methods in OrderMapper.cs
[x] Add / extend unit tests
[x] QA
[x] Manual testing

Acceptance Criterias

[x] It is possible to place an email notification order with a service affiliation
[x] It is possible to place an SMS notification order with a service affiliation
[x] The service affiliation of a notification order is persisted in the database
[x] The service affiliation of a notification order is exposed to the end user through all GET endpoints for an order
[x] Posting an order with a service affiliation missing application id results in a 400 response
[ ] Posting an order with a service affiliation missing instance id results in a 202 accepted response.
[x] Regression tests are successful

Implemented in #511. No support for adding instanceId yet. Will be a new feature if ever required


Mavenized project

Quickly converted the project to a maven project and prepared it for maven central deployment.

Could you set the version in the pom.xml to 1.4.0-SNAPSHOT and more importantly undelete build.xml (having support for maven is great but I still want to be able to build with ant) ?

Sure.

It was getting a little late yesterday, hence the short pr message. I checked the scripts you had around for building a android version. From what I've seen there are no Dependencies left that are not available on Android, so the scripts should be obsolete.
the pom is also prepared for maven central deployment, but before that a groupid must be registered at sonatype. Alternatively I could deploy it to a group ID I have access to.

Yes, the Android scripts are obsolete. You can remove them or I'll do it
myself.
On Fri, Feb 16, 2018 at 10:28 AM, Phillip Schichtel <
<EMAIL_ADDRESS>wrote:

It was getting a little late yesterday, hence the short pr message. I
checked the scripts you had around for building a android version. From
what I've seen there are no Dependencies left that are not available on
Android, so the scripts should be obsolete.
the pom is also prepared for maven central deployment, but before that a
groupid must be registered at sonatype. Alternatively I could deploy it to
a group ID I have access to.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flanglet/kanzi/pull/11#issuecomment-366319067, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABJ5hyp6eOQLbGoPBs8orAgK4Pf5GzClks5tVci7gaJpZM4SHt0N
.

Rebased the branch, restored the build.xml and changed the version to 1.4.0-SNAPSHOT.
Last open question: What to do about the groupId ? Currently it's set to tel.schich.

Hmmm. Not sure what to put in there. I do not want to have a reference to
another branch/repo in the master so maybe I'll just put 'flanglet',
Feel free to keep a different group ID in your clone it you want (but
you'll have to keep it in mind if/when you sync).
So change it or keep it and let me know when you are done.
On Sat, Feb 17, 2018 at 4:36 PM, Phillip Schichtel<EMAIL_ADDRESS>
wrote:

Rebased the branch, restored the build.xml and changed the version to
1.4.0-SNAPSHOT.
Last open question: What to do about the groupId ? Currently it's set to
tel.schich.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flanglet/kanzi/pull/11#issuecomment-366482773, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABJ5h9zYJEQUhe3uMjRtGidO1ERmIv2Xks5tV3CGgaJpZM4SHt0N
.

The typical convention is to use a domain name you own in reverse, e.g. com.flanglet if you own that domain.

I know. I have not registered any domain so far.
On Sat, Feb 17, 2018 at 6:37 PM, Phillip Schichtel<EMAIL_ADDRESS>
wrote:

The typical convention is to use a domain name you own in reverse, e.g.
com.flanglet if you own that domain.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flanglet/kanzi/pull/11#issuecomment-366487974, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABJ5h8s8uPdWvNCLRL4257Hof5sbeXGBks5tV4zegaJpZM4SHt0N
.

Ok, I've set it to io.github.flanglet.
The PR is ready now.

Thanks. Merge is done.


Alternate organization ideas

What are some ways that the current doc organization could be improved?
The shortcomings I see right now are:

Long nav list (could also be good, it's all on one page at least)
dom-testing-library setup and API is the main focus and dominates the nav structure; other wrappers refer to it. Implementations that don't rely on or have significant wrapping of the core library need additional treatment (e.g. ReasonReact and React Native).

Current Organization

TOP LEVEL: Docs, Help, Blog
Docs:

Getting Started

Introduction
Install
Example
Setup
Guiding Principles

Examples

Codesandbox Examples
Input Event
Update Props
React Context
React Intl
React Redux
React Router
Reach Router
React Transition Group
External Examples

API

Queries
Firing Events
Async Utilities
Helpers

Guides

Which query should I use?
Appearance and Disappearance

Frameworks

React Testing Library

Introduction
Example
Setup
API
FAQ

Cypress Testing Library
Vue Testing Library
Angular Testing Library
(Puppeteer Testing Library - missing)
(Preact Testing Library - missing)
ReasonReact Testing Library

Introduction
Examples

Ecosystem

user-event
jest-dom
bs-jest-dom
native-testing-library

Help

FAQ
Learning Material

Alt 1: Extract Examples and Guides
TOP LEVEL: Docs, Recipes, Help, Blog

Recipes

Examples
Guides

Docs

Move setup, API, and under a new DOM Testing Library section of Frameworks
RTL and other wrappers can still reference DTL content, but the docs would treat them as equal top-level entry points
Native Testing Library and ReasonReact Testing Library have more equal footing

Help

Move FAQ content here and give the pages a sidebar

@bcarroll22 @kentcdodds what do you think?

I like the suggestion 👍


Use static versions for interdependencies

Explanation

If you have a project that depends on a package in this monorepo and you want to test changes to the package locally, you cannot simply configure that project to use a local reference to that package. Instead, you must use a preview build of the package. While publishing that preview build is a relatively easy process, getting the project to use that preview build is not.
The reason why preview builds are needed is because of the way that interdependencies work. If a package in the monorepo needs to depend on another package in the monorepo, it uses workspace:^ as the version. Yarn, which understands the workspace: protocol, will resolve this reference to the version of whatever the dependency package happens to be when the dependent package is published.
But if no packages are published, such as the case when testing locally, then workspace: references will never be resolved. If an attempt is used to update the dependency on the package in question — let's say @metamask/base-controller — by replacing the version with a file: or portal: reference, Yarn will produce an error that looks like:
➤ YN0001: │ Error: @metamask/base-controller@workspace:^: Workspace not found (@metamask/base-controller@workspace:^)

To solve this problem, this commit replaces the workspace: references with static references and adds a Yarn constraint to ensure that all interdependencies match their actual versions. That is, if transaction-controller depends on base-controller, then the version it uses is guaranteed to match the version in base-controller's manifest.
References

Fixes #1586.
Changelog

(No consumer-facing changes)
Checklist

[x] I've updated the test suite for new or updated code as appropriate
[x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
[x] I've highlighted breaking changes using the "BREAKING" category above as appropriate

Looks great! We should have some documentation about how this workflow works though

@Gudahtt Okay, I've updated the docs. Let me know if anything doesn't make sense!


question about iframes

hi 👋 , this library looks really neat!
Will web2vr support iframes?
Based on this discussion, it seems like iframes are very difficult to render in a-frame 😢, but I'm still curious to see if you intend to add iframe support.
see thread:
https://github.com/aframevr/aframe/issues/1380#issuecomment-211318260

Right now it doesnt support that.


Automatic Page Refresh on Image Detection with Human Library in Worker Environment

Issue Description
I'm encountering what I suspect to be an Out of Memory (OOM) issue on my iPhone SE 2 with iOS 17.2.1, in a basic web application that inputs images and processes them using the Human library for facial detection. My setup only utilizes the face model with all other models disabled.
While using a worker on the iPhone SE 2 (iOS 17.2.1), the webpage automatically refreshes when detecting images, suggesting a potential OOM situation. Interestingly, this issue does not occur when workers are not used, and the application functions normally. Both scenarios have also been tested on a Windows 10 platform with smooth operations.
Human Library Configuration:
{
  "backend": "wasm",
  "modelBasePath": "https://cdn.jsdelivr.net/npm/@vladmandic/human/models",
  "face": {
    "enabled": true,
    "emotion": { "enabled": false },
    "age": { "enabled": false },
    "gender": { "enabled": false },
    "iris": { "enabled": false }
  },
  "body": { "enabled": false },
  "hand": { "enabled": false },
  "object": { "enabled": false },
  "gesture": { "enabled": false },
  "segmentation": { "enabled": false }
}

Environment

Human library version: 3.1.2
Type of module used: ESM
OS and Hardware platform: iPhone SE 2 (17.2.1), also tested on Windows 10
Browsers: Safari (iOS), Edge and Chrome (Windows 10)
Framework: React, NextJS

Questions:

What could be causing this issue in the worker environment, leading to a potential OOM scenario?
Are there any methods to reduce memory usage to prevent this issue?
Considering that the Human library uses OffscreenCanvas, is it only suitable for Safari on iOS versions 17.0 and above?

Testing URL: Home (human-next-js-worker.vercel.app)
Code Repository: Bobo100/human-next.js-worker (github.com)
Thank you for your assistance and time in addressing this issue.

to show if there is memory leak or not, you need to enable debug in configuration and collect browser logs, without that its just a speculation which is not actionable.
and yes, webworkers require offscreencanvas - there is no way around it.

Thank you for your response.
I have enabled debug mode and added some console.log statements for debugging.
Regarding the console results, there haven't been any error messages.
In the screenshot I provided (obtained through Mac's Web Inspector), the last console.log message before a forced page refresh is always "human.detect."
This has led me to suspect that it might be an out-of-memory (OOM) issue.

Sometimes, when performance is worse, it will display a message saying "A Problem Repeatedly Occurred on…" before a forced refresh.
I'm not entirely sure if the screenshots I have are what you were referring to. However, I have genuinely conducted numerous tests.
At times, the issue arises with just 5 images, while on other occasions, it can handle up to 18 images without any problems.
My biggest challenge is the lack of additional console information, which led me to this speculation.
However, as I mentioned earlier, when I disable the use of worker mode, the issue doesn't occur on an iPhone SE 2 (iOS 17.2.1).
I have also conducted similar tests on other phones without using worker mode:
iPhone 15 Plus, iOS 17.1 => OK
iPhone SE 3, iOS 16.6 => NG (This might be expected as it doesn't support OffscreenCanvas)
iPhone 11, iOS 17.2.1 => NG
I haven't yet tested it in worker mode, but I will do so.
In any case, thank you for your response.

Additional supplement
iPhone SE 2 (17.2.1) still automatically refreshes in non-worker mode. Previously, I only uploaded around 20 images, and there were no issues. However, today, when I uploaded more than 20, around 23 or 24, the problem started to occur.”
Thanks.

some devices/platforms are just not good enough for web-worker mode.
but if it works for 10 image and and break on 20 - there is no reason for that unless you're either submitting them in parallel or not doing cleanups in your code. i'm sorry i cant say more, but i really cannot spend time analyzing your code.

I think I will double-check my syntax on this end to see if there are any missing cleanups.
Thank you once again for your assistance.


Memory leak detected ?

What version of WebTorrent Desktop? (See the 'About WebTorrent' menu)
Version 0.12.0 (0.96.3)
What operating system and version?
Windows 10 1607
What did you do?
Downloaded two torrents, close app, open app - look at console.
What did you expect to happen?
App starts without any errors.
What actually happened?

This warning can safely be ignored. It's Node.js being overzealous. We could disable this type of warning, but sometimes it actually catches leaks, so we'll leave it enabled.
Thanks for the report.


Bad log_dir in hil.cfg crashes server

If log_dir is set to something inappropriate, the server will crash an report Unexpected error:.
This error should report something more useful to the user.  After this is fixed, perhaps it could be added to the config precheck (#966)

Poked at this a little bit, this should be a simple matter of catching IOError specifically in the cli and handling it. we'll want to wait until #969 is merged though, since it will likely cause conflicts.

Wouldn't what I suggest here fix this?

It could still crash if the directory can't be accessed.  The config check in #966 will only check for malformed directories, not if they exist or not.

Fixed by #966


skip sync of appliedmanifestwork if work is not applied yet

The related issue: https://issues.redhat.com/browse/ACM-5519

/test integration

/test integration

/test integration

/test integration

/test integration

/test verify

/test integration

/test verify

/test verify

/approve
/lgtm

/lgtm

/cherypick backplane-2.2


nginx upload module directives

Hello,
does someone use the nginx upload module in combination with flow.js? I'm trying to get it working but having issues. It seems that each chunk is saved as individual file.
I set testChunks to false. Otherwise I'm using the default configuration.
The nginx-directives I'm using so far:
http://pastebin.com/xnya90r6
Thanks

What seems to be missing is the Content-Range header sent along each byte segment. (http://www.grid.net.ru/nginx/resumable_uploads.en.html)
I'll try to add that.


Cleaning up unused jupyter notebooks + outputs

Removing two old Jupyter notebooks that had figures we didn't end up using, and removing kernel outputs to shrink repository size.

hi Baris, huh! I didn't get an email notification for this, argh!
Fine with me to merge this PR, I've backed up all my previous notebooks elsewhere now.


.gitignore cleared

see https://github.com/aspnet/Docs/commits/aspnetmigration/.gitignore
@neusamir Is this clearing temporary?  When will it be restored? We rely on it to keep the repository clean.
cc @tdykstra  @danroth27

Good question. I will look into ignoring everything under /aspnet instead of the whole tree. It was removing files that we needed to include.

Can you add a ./aspnet/gitignore to that folder and restore this file?

And is it possible to determine which files were getting excluded and remove only those from the .gitignore rather than clearing out the whole file?  Maybe we can still have just one repo-level file.

You can nest .gitignore, so just add an empty ./aspnet/gitignore

Ok this is done.


Enable workflow schema update.

Connect #284.
See updates in WORKFLOWS.md for behavior changes.

Coverage increased (+1.7%) to 91.356% when pulling 18d266f4907d378848b924d056c36316dbdd12ae on jangsutsr:284_enable_workflow_schema_update into d663046542a78c78985ac10a53cb6d7c7a22c045 on ansible:master.

It looks like the node ids are returned with a simple schema GET,
$ tower-cli workflow schema asdf
- id: 1
  job_template: 18

I see why that might be desired to add, but I'm wondering if it was intended.

@AlanCoding No it's not. I just don't want to explicitly add that handling and increase code confuse.

Oh yeah, that's totally fine. I will just want to check that creation of a new WFJT will work the same given the schema output.

This looks excellent with my testing so far. Here are some materials that I'm gathering for this, along with the other feature about looking up inventory sources by a partial name:
https://github.com/AlanCoding/tower-cli/commit/4096c6db4e0dd304228365db7e12d31d0292aa40
I've been testing switching between two different schemas, and it's going very well. When telling it to apply the schema example after it already exists, I see 8 GET requests and no changes made. That is nice idempotency.
I still might want to cycle through one more example early tomorrow with a more complex branching structure. So far this is incredible.

The culmination of my testing:
Schema A
# Branch that has deeply nested content removed  going to schema B
- job_template: workflow JT
  failure_nodes:
    - inventory_source: tower script1 (workflow demo
  success_nodes:
  - project: Ansible Examples
    always_nodes:
    - job_template: workflow JT
      success_nodes:
      - job_template: workflow JT

# Branch that is modified going to schema B
- job_template: workflow JT2
  failure_nodes:
  - job_template: workflow JT2
  - job_template: workflow JT
  success_nodes:
  - job_template: workflow JT2
  - job_template: workflow JT

# Branch that is deleted going to schema B
- project: Ansible Examples
  always_nodes:
  - inventory_source: tower script1 (workflow demo
  - inventory_source: tower script2 (workflow demo

Schema B
# Branch that has deeply nested content removed  going to schema B
- job_template: workflow JT
  failure_nodes:
    - inventory_source: tower script1 (workflow demo
  success_nodes:
  - project: Ansible Examples
    always_nodes:
    - job_template: workflow JT

# Branch that is modified going to schema B
- job_template: workflow JT2
  failure_nodes:
  - inventory_source: tower script1 (workflow demo
  - inventory_source: tower script2 (workflow demo
  success_nodes:
  - project: Ansible Examples
  - job_template: workflow JT

This feature seems to be able to swap back and fourth between A and B. I see DELETEs and POSTs right where I expect them. Reapply either A or B after that state has already been reached, and it makes only GET requests, no changes are done.
I have actually avoided the indeterminate cases where 2 of the same JTs are on the same level next to each other. I presume that you have tested this, but I don't think it's high enough customer value to bother with right now. I would recommend that schema authors just avoid that, and my example schemas will, thus, follow the rule as well.
Also, we can't really have any PATCH actions with the approach to schema authoring I'm testing. I presume we would if the ids were used, but I would also hesitate to directly suggest that method as a reusable and sharable format.
This is tremendously complex, and executed perfectly.


added listings_restrictions endpoint and docs

Created ListingsRestrictions endpoint and doc

Cool, thanks!

Added a release for your changes
https://github.com/saleweaver/python-amazon-sp-api/releases/tag/v0.9.1


Async example

First of all, thank you very much for this library. Especially for the great recent release of 0.10 🎉
I was wondering if there is an example how to setup async processing of resolvers (or their returned promises)? E.g. with something like react/event-loop.

@lordthorzonus as far as I remember you were experimenting with ReactPHP version. Any hints how to use it?

@vladar Yup! Currently running a small api gateway in prod and it works like a charm, thanks for the awesome package :).
@adri We are using https://github.com/lordthorzonus/php-dataloader as the dataloader/batch-loader as it's integrated with React's event-loop. And then returning it's promises from resolvers. In our codebase it looks something like this:
<?php

class EventType extends AbstractObjectType
{
    protected $name = 'Event';

    /**
     * @var TypeRepository
     */
    private $types;

    /**
     * @var CountryByIdLoader
     */
    private $countryLoader;

    public function __construct(TypeRepository $types, CountryByIdLoader $countryLoader)
    {
        $this->types = $types;
        $this->countryLoader = $countryLoader;
    }

    public function fields()
    {
        return [
            'id' => [
                'type' => Type::int(),
            ],
            'country' => [
                'type' => $this->types->getType(CountryType::class),
                'resolve' => function (Event $event) {
                    return $this->countryLoader->load($event->countryId);
                },
            ],
        ];
    }
}

Then in our controller endpoint we are just executing the query, telling the event-loop to run and returning the resolved response. Note that we are using still older version of this package where the results could be either promises or ExecutionResults. (should update soon..)  This is not the case anymore if I have been following the package's development correctly. Now you should probably just call GraphQl::promiseToExecute() and be happy.  Pseudo code example from our codebase:
<?php

class GraphqlController extends Controller
{
    /**
     * @var GraphQl
     */
    private $graphQl;

    /**
     * @var LoopInterface
     */
    private $loop;

    public function __construct(GraphQl $graphQl, LoopInterface $loop)
    {
        $this->graphQl = $graphQl;
        $this->loop = $loop;
    }

    public function queryAction(Request $request)
    {
        $query = $request->getBodyParam('query');
        $variables = $request->getBodyParam('variables');

        $result = $this->graphQl->execute($query, null, null, $variables);

        // There is a possibility in our API gateway that the query isn't using promises at all
        // In that case a normal result is returned. Otherwise we'll handle the promise.
        if (!is_array($result)) {
            return $this->handlePromiseResult($result);
        }

        return $result;
    }

    private function handlePromiseResult(Promise $result)
    {
        $response = null;

        // Let the EventLoop run to resolve the promises.
        $this->loop->run();

        $result->then(
            function ($promiseResult) use (&$response) {
                $response = $promiseResult;
            }
        );

        return $response;
    }
}

The graphql class that we use is just a small wrapper around https://github.com/webonyx/graphql-php/blob/master/src/GraphQL.php which just builds our schema and sets the correct PromiseAdapter in our DI container when it's constructed.
The same singleton EventLoop is injected from DI container to all our data loaders and to the controller.
Hope this helps! Ping me if there's something you would like to discuss, happy to help :).

Awesome thanks for the detailed example. This should be enough to get me started.
I was wondering; how are your experiences using async libraries in PHP? I’m thinking about e.g.  MySQL, Memcached and Redis. Any tips, also in regards to using react-php?


Docs: Update issue and PR templates

Overview
This PR updates the issue templates and pull request templates since the current ones do not fit our needs.
Changes

Deleted all the existing issue templates
Added the following three issue templates

enhancement.md: For new features, ideas or any other enhancement
problem.md: For bugs or any other problems
task.md: For the tasks our team members would take charge of

Added a new PR template called merge.md used when merging the develop branch to the main branch
Changed the directory structure for PR templates to house multiple templates
Renamed the pull_request_template.md to default.md

Review Points

Please share your thoughts about these changes

Thank you! Let it try!

@kotaaaa Thank you!


Adjust README

@Trollgeir we discussed removing the Comparison section. However, I kept it here because I noticed that most open-source projects on GitHub (from the ones I viewed) do not provide a comparison. Providing a comparison helps users understand advantages/disadvantages of their SDK choice, Argo SDK in this case. Thoughts?

@Trollgeir we discussed removing the Comparison section. However, I kept it here because I noticed that most open-source projects on GitHub (from the ones I viewed) do not provide a comparison. Providing a comparison helps users understand advantages/disadvantages of their SDK choice, Argo SDK in this case. Thoughts?

I think the comparison I feel we should sell isn't Hera vs the other SDKs, rather Hera vs YML.


Unit Testing major modules

TODO: Define modules to be tested

cuisine (mostly core)
AYS
SSH client
executors
These are IMO some critical modules we should take care of.

Maybe some of the more heavily used modules, like:

HRD
FS

PR for cuisine unittests: https://github.com/Jumpscale/jumpscale_core8/pull/281