The WebView has no support for Basic Authentication (or custom headers).

[x] I have reviewed the documentation
[x] I have searched existing issues
[x] I am using the latest React Native version

This is kind of a duplicate of issue #8693, an almost two year issue outlining the same problem. I have left a comment there regarding this. But just to make it clear:

Given how common hybrid apps are, and how common Basic Authentication is, I honestly think this deserves more attention.

That issue also does not conform to your template (likely because of its age), and it has no steps outlined for reproduction, so I figured I'd open a new issue for this; concerning Basic Authentication only.

There is currently no way to use Basic Authentication in the WebView!
It is possible to pass custom headers in the first request via source.headers; but this only applies to the very first request. Meaning: external resources, such as script files, style-sheets, images, videos, etc.— will not be loaded; because they fail authorization. This renders source.headers useless in many cases.
Personally, though; think this is "as expected". The property is named "source" after all. Instead, I think it should be possible to provide the WebView with "default headers": Headers that will be included with every request. Or via an onRequest-callback, which would be a more "catch-all"-solution.
Environment
OS: Windows 10
Node: 8.9.4
Yarn: Not Found
npm: 6.0.0
Watchman: Not Found
Xcode: N/A
Android Studio: Version  <IP_ADDRESS> AI-173.4697961
Steps to Reproduce
An important feature is missing! However, one could argue that the source property of the WebView should forward headers with each consecutive request: Because it is currently the only mechanism which allows for this. Just to make it super clear: I don't think this should be the case, but in order to better explain the issue, I will outline it as if it should be.

I have created a proof-of-concept repository, which can be used to reproduce the bug.
First: Create a server which requires Basic Authentication for all resources. Then have it serve HTML with scripts and/or styles referenced via <link href="..."> or <script src="..."> tags.
Then: Create an application with a WebView in React Native, have it request the web server with Basic Authentication, like so:
const source = {
  uri: "http://<your-host-with-basic-auth>/index.html",
  headers: {
    Authorization: "Basic Zm9vOmJhcg==" // base64 of 'foo:bar'
  }
};

export default class App extends React.Component {
  render() {
    return <WebView source={source} style={{ flex: 1 }} />;
  }
}

Expected Behavior
I expect the CSS and JS files to be loaded, i.e. for the headers provided in source to be included with subsequent requests to these resources.
If my example were to be used, then this is what i expect in my web view:

Actual Behavior
No CSS or JS is loaded, i.e. the headers are not included in the subsequent requests.
This is the actual output:

@react-native-bot I have updated the issue; removed the code block around the "Environment". Hope that satisfies all your parser needs! 😄👍

Thanks for opening the issue. In general, the guidance for WebView has been to use a third party component whenever the core WebView is not sufficient.
We'd probably take a look at a PR, but be aware there may be some friction to get it merged upstream.

headers no effect,how to fix?

@wuyunqiang, that's what this issue is about. There is no fix, other than using another web view, because the RN WebView does not support headers (other than in the first request).

You have to create your own.

Plenty of options.
https://www.npmjs.com/search?q=react native webview

Hi @birkir. It might be that I'm not looking for the right thing here, but I can't find a web view on NPM which support custom headers. Nor does Google yield any results.

I am also facing this exact issue. Would love to know if a workaround exists, or if another WebView exists that gets around this issue. But like @mausworks, I have been unable to find anything that might help

@FrikkieSnyman
If you (for some reason) are only targeting iOS, you can use a<EMAIL_ADDRESS>for basic authentication, as suggested by @banichols.
If you're targeting android as well, though; you're out of luck!

Looks like someone had a similar problem and may have found a workaround https://blog.bigbinary.com/2016/07/26/passing-request-headers-on-each-webview-request-in-react-native.html. Unfortunately can't test because I can't be making changes to state like that in my app.

@mausworks Thanks, but it is cross platform.
@ThomasAriano I did see that post, however, that is when the webview actually redirects. It intercept requests made to the resources.

@FrikkieSnyman
Wat het jy hier gedoen? Krap nou my kop met die een...

@userotti in my case, I could fortunately make use of a progressive web app. Did not spend much more time on trying to get this to work.
One of my colleagues had the same issue later on as well, and he reported success on Android by making use of<EMAIL_ADDRESS>as @mausworks suggested. Haven't confirmed it from my side yet, but I suspect it worked because he only had to make the initial GET requests.

Migrated to https://github.com/react-native-community/react-native-webview/issues/18 and can be closed.


Setup module system

Should they be disableable/enableable while the server is running? For Nucleus, that's a challenge because of deps, but for this, it might not matter so much.

I think I'm just going to use QSML and potentially build a disabling function into the modules when I get time.

Blocked by NucleusPowered/QuickStartModuleLoader#7 and NucleusPowered/QuickStartModuleLoader#8


Add stain augmentation

We should figure out an augmentation for placing stains on a document image, which generates the stains itself.
This probably looks like 2 new functions in augraphy.augmentations.lib:

a function to generate a boundary for the stain
a function to color&darken the interior of the boundary generated by function 1

We can probably use the model here to produce a realistic diffusion effect for function 2.

To generate a boundary, we can choose a pixel in the image and make several particles {p1, p2, ..., pn} randomly walk starting at that pixel, for some number of cycles. The resulting points {p1_final, p2_final, ..., pn_final} will lie on the boundary. The Graham scan algorithm can then be used to generate the convex hull enclosing those points, which we can then smooth by drawing Bezier curves or cubic splines through the hull points.

I was testing on the effect earlier and was able to generate something like this:

Will something like this useful?
Actually I couldn't access the full paper above, so couldn't get much info from it.

This is now added in this pull request:
https://github.com/sparkfish/augraphy/pull/422


Account for the fact that compare_exchange_weak can fail sometimes.

The asserts in preprocessQueue() assume that the only reason we are
preprocessing is due to running into a concurrent enqueuer while
draining. However, sometimes we can go into this code path because
compare_exchange_weak failed spuriously. We need to account the fact
that compare_exchange_weak can fail spuriously. Also add more asserts.
Radar-Id: rdar://problem/89236911

@swift-ci please test

@swift-ci please test


Minor typo in README.md

There is also the same typo in the description of your GitHub repository.
But I can't send a pull-request for this.
Have a good day,
Tortue Torche

Thanks! It's the small things that matter :)


FR: Read hostnames from spec.tls.hosts for Ingress

On Ingress object "spec.rules" block is not strictly required for it to function.
"If unspecified, or no rule matches, all traffic is sent to the default backend",
see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#ingressspec-v1beta1-extensions
There is another place external-dns could learn hostnames from: "spec.tls.hosts".
Would be nice to have support for this so we can skip using annotation workaround on Ingress object, see https://github.com/kubernetes-incubator/external-dns/commit/c2751f81cf10666dccec13abccff9038c4aa161e
Examples:
This is how I want to have my Ingress object defined
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
  annotations:
   ... # annotations for cert-manager omitted for clarity
spec:
  tls:
  - hosts:
    - myfoo.example.com
    secretName: external-ingress-tls
  backend:
    serviceName: fooservice
    servicePort: 80

This is how I have to define it now (with annotation workaround):
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
  annotations:
   ... # annotations for cert-manager omitted for clarity
    external-dns.alpha.kubernetes.io/hostname: myfoo.example.com
spec:
  tls:
  - hosts:
    - myfoo.example.com
    secretName: external-ingress-tls
  backend:
    serviceName: fooservice
    servicePort: 80

Or, alternatively, more verbose with "spec.rules.hosts":
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
  annotations:
   ... # annotations for cert-manager omitted for clarity
spec:
  tls:
  - hosts:
    - myfoo.example.com
    secretName: external-ingress-tls
  rules:
  - host: myfoo.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: fooservice
          servicePort: 80

Not opposed to this but it was a bit surprising to see this come up on a few Ingress resources we had previously deployed but conditionally exposed via Annotation.
In the future it would seem like a major version bump for fairly significant functional change that doesn't have a flag to turn off might be valuable.
That being said, thanks for contributing to the project!

I like picking up the domain names from the Ingress rather than from the annotation. However, the behavior change appears to remove the choice about which Ingress' you wish external DNS to act on, as @jrnt30 discovered. I would prefer, just like cert-manager in your example, that some flag or annotation is required, so you can choose. Or at least the install option to regain control - is that still possible with this change?

this new behaviour breaks my setup so I cannot update to v0.5.4.
At the same time I need some features introduced in v0.5.5.
Could you please introduce some toggle to be able to retain old logic?


Trouble installing on a Linux server

Hello, I'm trying to setup an install of Voyager for a tech lab at Michigan State University (@msu-dhi-lab). I cannot figure out what I am doing wrong during the install process.
My server is a DigitalOcean droplet with Ubuntu 22.04. I have also installed NodeJS, NPM, and Apache2 (for eventual access via a browser). Just to confirm, I did successfully load the Apache2 index.html file via my browser. Additionally, I have tried to install both with and without Apache2 installed on the server.
I've failed while both creating the voyager directory both at server root, and at /var/www/html (when trying with Apache2 installed). In each instance, I've copied the droplet's IP address into the .env file on the line "VOYAGER_SERVER_IPV4_ADDR" (I don't have a domain set up for it yet) and leave the port as the default.
I tried following the non-Docker installation instructions in all cases:

npm install (this finishes, but with a bunch of deprecation warnings and 8 moderate severity vulnerabilities)
then
npm run build-server
followed finally by
npm run build-prod

After running the last command, it appears to be successfully running in console, but when using my browser to visit http://[IP-ADDRESS]:8000, nothing loads and I get the error "ERR_CONNECTION_RESET". I don't believe there's a firewall blocking the port.
I have also tried visiting http://[IP-ADDRESS]:8000/voyager-explorer.html and http://[IP-ADDRESS]:8000/dist/voyager-explorer.html, but none load (I did this because I can't tell what web address I would visit in my browser to view one of the applications working).
Am I missing something during the setup or installation process? Using Docker is not an option for me, but I did try a test on my own personal droplet and had the same problem with nothing loading in my browser.

Hi @geyerbri ,
I don't have any specific experience with that environment (one of the reasons we recommend Docker) but a few general questions:

Are you planning to do development work with Voyager? If not, I would recommend taking a look at https://smithsonian.github.io/dpo-voyager/introduction/hosting/ - Since Voyager is just a web component, it doesn't require any real installation to use, just a web server and access to a WebDAV enabled location for the source files.
The commands listed above build the included express server and web component, but are you also starting the server? Try "npm run start" or "npm run server".
The Voyager distribution (built or pre-built) includes a set of example html pages showing how you can embed the various components. You can use these or embed the component in your own page to see it working. If you were using the included express server to serve the pages, the url would be something like http://[IP-ADDRESS]:8000/voyager-explorer.html

Thanks for getting back to me. Let me apologize in advance for all of the following detail. I don't know what's relevant so I'm trying to be thorough in trying things and then reporting the outcome.
I think I have a slightly better handle on what my issue is. It turns out, I haven't been watching the terminal long enough after running the final npm command I reported - npm run build-prod - so I wasn't catching that in my case this command wasn't actually completing. Because of my lack of knowledge, I was assuming that this command was starting the server and so it wouldn't complete and return to the terminal prompt.
After waiting a longer time, it finally showed "killed" and then returned to the prompt. Here's what the console showed after running the build-prod command:
root@voyager:/var/www/voyager# npm run build-prod

><EMAIL_ADDRESS>build-prod
> cd source/client; webpack --mode=production --env=app=all; cd ../..

VOYAGER - WEBPACK BUILD SCRIPT
  application = voyager-explorer
  mode = production
  offline = false
  version = v0.39.0
  source directory = /var/www/voyager/source
  output directory = /var/www/voyager/dist

VOYAGER - WEBPACK BUILD SCRIPT
  application = voyager-mini
  mode = production
  offline = false
  version = v0.39.0
  source directory = /var/www/voyager/source
  output directory = /var/www/voyager/dist

VOYAGER - WEBPACK BUILD SCRIPT
  application = voyager-launcher
  mode = production
  offline = false
  version = v0.39.0
  source directory = /var/www/voyager/source
  output directory = /var/www/voyager/dist

VOYAGER - WEBPACK BUILD SCRIPT
  application = voyager-story
  mode = production
  offline = false
  version = v0.39.0
  source directory = /var/www/voyager/source
  output directory = /var/www/voyager/dist
Browserslist: caniuse-lite is outdated. Please run:
  npx browserslist@latest --update-db
  Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
Killed
root@voyager:/var/www/voyager#

(I cloned the current version of the repo, so I don't know why it starts by saying it's v0.37.0 when the current repo is v0.39.0.)
Per the part right before the "Killed" line, I ran npx browserslist@latest --update-db, then tried running npm run build-prod again, but it hangs after again showing the four "VOYAGER - WEBPACK BUILD SCRIPT" blocks,, then showing "Killed" and ending itself. After checking the "dist" directory, I can see that the only html file it created is "voyager-mini.html", so it appears to not be finishing the process. Even so, I still tried npm run start to start up the server (which I hadn't done before you pointed this out). The server starts up ok. When I visit voyager-mini.html via browser, it 'resolves' (so no 404 error or anything) but it's blank and the console shows this one error:
Uncaught Error: document schema validation failed
    at qv.openDocument (voyager-mini.min.js:52:138002)
    at Xv.createDocument (voyager-mini.min.js:52:141387)
    at new My (voyager-mini.min.js:55:13938)
    at Ay.firstConnected (voyager-mini.min.js:55:16737)
    at Ay.connectedCallback (voyager-mini.min.js:8:75046)
    at voyager-mini.min.js:8:75474
    at Ty (voyager-mini.min.js:55:16201)
    at voyager-mini.min.js:55:16814
    at voyager-mini.min.js:55:16855
    at voyager-mini.min.js:55:16859

Is the build command not working properly, possibly due to an issue with my server droplet (or with nodejs) not having enough allocated resources? The droplet is configured with 2GB of RAM and one hyper-thread allocated for its CPU (this is how DigitalOcean handles their basic virtual servers). What are the system requirements for the nodejs app, and/or for the express server?
Also just fyi, I haven't ignored your suggestion to just host the pre-built web component, but I'm also unsure how WebDAV would work in my case (because I don't know about it), so to simplify things I wanted to rely on the express server to try out Story. The self-hosting instructions page for Story says that to rely on the express server I'll need to do this install process. Following your suggestion though, I did spin up a server with just the web component (served with Apache2) and finally got the empty voyager-explorer.html file to load, as well as voyager-story.html?mode=standalone. I could upload gbl files to pose them (obj versions of the same models wouldn't upload though, are objs supported?) and save the project as a zip containing the models and an svx.json file.

I've never seen the 'Killed' message before, but doing a little research it looks like you are right and that this relatively common with DigitalOcean servers when Webpack runs out of memory. A couple of ideas:

You can try building Explorer or Story independently with a command like: cd source/client; webpack --mode=production --env=app=explorer; cd ../.. - just swap app type for whatever you want to build.

You can try allotting more memory to Node with the 'max-old-space-size' flag like cd source/client; node --max-old-space-size=8192 ../../node_modules/webpack/bin/webpack.js  --mode=production --env=app=explorer; cd ../.. but my understanding is that the default is 2GB already, so it's not clear to me that this will help in your situation.

Re: .obj files, Voyager does support them but the standalone version doesn't currently support dragging and dropping that file type. You'd have to manually add it to the scene file. We are trying to encourage use of web friendly formats.

Ok it sounds like Voyager's system requirements (particularly RAM), whatever they might be, are larger than what are currently allocated to my virtual server/droplet. If you're able to share these requirements, I'd still like to know them so that we can make a cost/benefit decision about having a setup that meets the minimum requirements for the express server.
Given the system req limitations (and not knowing how much RAM I'd need to add to my current droplet to get it to work properly), I'm instead teaching myself about WebDAV. I have it appropriately configured for a directory on the same server as a Voyager pre-build and have set up authentication; the WebDAV enabled directory is a subdirectory of dist, alongside all the voyager html files. How do I make the connection between that WebDAV directory and Story? Is there some bit of html code to be added to voyager-story.html? I've already tried simply including the directory as the defined root variable, both as a URL variable (i.e. https://[IP-ADDRESS]/dist/voyager-story-dev.html?root=assets) and as an attribute defined in the page's html (i.e. <voyager-story root="assets"></voyager-story>). I have also tried making the dist directory itself the WebDAV enabled directory.

Were you able to try building an individual app with the commands I listed above? This will require significantly less memory and should definitely work with less than 2GB. It's hard to say exactly what the requirements would be as some of that is platform dependent but I can try to come up with something. On my platform, on out of memory error will be thrown that provides some insight.
For the WebDAV piece there's no code to be added, it's just setting the root variable appropriately. What happens when you do that? Are you pointing at a location that has a Voyager scene document? In your example, you would want to put a '/' at the end to indicate that it is a directory, but other than that it looks good. Have you checked for errors in the browser console?

To get Voyager to install without significant errors, I had to make sure nodejs was v14, but DigitalOcean provides v12 through apt. But by using an alternative source for v14 (and the included npm version, see https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-22-04 if you want to understand what I'm talking about in more detail), somehow I'm not able to then install webpack to use it for building apps individually. I get errors saying that dependencies can't be installed. So I'm stuck on that front.
For WebDAV and Story, I don't know what you mean by pointing at a scene document. Isn't Story for creating the scene document in the first place? ("The Voyager Story tool is used to author Voyager scenes and documents.") I think I clearly don't understand how the tool works at all, which is why I don't understand why I'd need to supply it with an initial scene document, given that I DON'T supply it a scene document when I open it in Standalone mode. Is there documentation somewhere that specifically notes which of the available properties (root, document, model, geometry, texture, quality, referrer, mode) are required for Story to start up correctly in an express server or WebDAV environment and not in Standalone mode?

We are woefully behind on Node.js version support so I can't offer any help with potential v14 issues, but hopefully soon.
My question was meant to get a better understanding of what you were trying to do. Without knowing the specifics and any errors you may be getting in the browser, it's tough to speculate on what the issue is.
As originally intended, no, Story was not meant to create the core scene document that identifies the models you want to load. It was meant to author the experience. Pose the model, add educational content, etc., as documented here: https://smithsonian.github.io/dpo-voyager/story/usage/ . Our original pipeline relies on our Cook workflow orchestration tool which generates the scene file.
As the tool has evolved and gained more users, it became clear that we needed a way for these scene files to be created outside of Cook. Currently this comes in the form of Voyager 'Standalone' mode or adding the dragdrop attribute to the standard mode that will allow you to drag and drop models. There really aren't any 'required' attributes, it all depends on your goal. If you were trying to edit an existing scene for example, it would be necessary to provide the 'root' and 'document' attributes so that the scene can be found. There are examples of this in the docs.
We are a small team and always working to improve. If you have any feedback on better new user documentation please let us know, or better yet feel free to make a PR directly and we will include it!

Following up again with a little memory usage investigation:
With the setup used for the Docker image, building has the following top usage:

build-dev: ~2 GB
build-prod: ~2.8 GB

There is an optimization forthcoming from @sdumetz (#242) that drops to:

build-dev ~700MB
build-prod: ~2.8 GB

The memory usage when building for production is mainly coming from the terser plugin that does minification of the code. It seems to be a well documented issue. If you change the plugin's 'parallel' parameter to false (stopping the generation of worker threads) it drops build-prod to ~1.8 GB but also increases build time by about 50%.

Hi @jcope, thank you very much for putting a ton of work into this. My apologies if the tone of my last comment was frustrated, as that was entirely directed at my own lack of knowledge and skills but I suspect it came across as more broad than that.
With the info about intentions, workflow, RAM reqs, and the possibility of dropping the required RAM by disabling parallel for terser, I've been able to piece together a rough idea of how parts work together and evaluate it for our needs.
So to give you more info about our intended use (I should have done this earlier, so please accept another apology from me), we were looking at the possibility of using Packrat to standup and manage a 3D collections repository, with a variety of filetypes, possibly including obj and stl. Then, we were wondering if it would be possible to standup an instance of Voyager Story, then have the 3d models (glb, gltf, obj, and if possible stl) from Packrat's directories available to select and import into a blank scene for posing, lighting, etc., and then that scene with models could be exported with a unique filename to a folder on the server, so it could be embedded using Explorer on a website. Due to our resource limitations here, we are unable to use Cook for initially creating scenes instead.
While I know Story wasn't designed to do this at all and I knew this from the beginning, it is now obvious to me that it isn't really possible to 'hack' it together either and have the tool work via the web interface in the way we wanted. But I couldn't figure that out until I had some idea how Story worked when not running in Standalone mode, which is why I've been trying so hard to get it up and running.
Following the revelation about the RAM reqs (even disabling the parallel parameter didn't drop the req low enough, because the DigitalOcean droplet only has about 1.5GB free), I temporarily upped the RAM to meet the reqs to get the build to complete. I was finally able to familiarize myself with Story enough to know I won't be able to get it working how we were thinking.
One final thing, about NodeJS, is that I was able to get the installation to complete when my version was either 14 or 16, but none of the others, as an fyi. With my limited knowledge I am still unable to get webpack installed when my NodeJS version is different from DigitalOcean's default though, so that is why I ultimately could not follow your advice to build the tools individually. I don't know enough to understand why the build worked when using npm and your authored processes, but not webpack on its own, but the details probably don't matter.

Hi @geyerbri , no worries at all.
I'm glad to hear you finally got it to build and appreciate the extra info. Hopefully we'll have time to streamline that build process in the near future, but it will probably still be geared towards Docker for broader use.
What you propose actually sounds doable to me. We are doing something similar with Packrat right now, albeit not with empty scene files but that shouldn't make much of a difference. To put together something custom, the key function to take a look at would probably be https://github.com/Smithsonian/dpo-voyager/blob/e4efdba89a6ea124cd1b99b713f7571722cc8b38/source/client/components/CVMediaManager.ts#L116
Or there are some hackier ways it could happen if you don't want to get that deep (like using the 'model' url parameter). If it's something you are still interested in pursuing, I'd be happy have a conversation offline. https://dpo.si.edu/contact

For anyone who also struggles on it showing an empty page, it's user error from not RTFM.
Make sure you have the URL set with a view and parameters matching a model in your files/ directory: http://localhost:8000/voyager-story-dev.html?root=models/tusk/&document=tusk.svx.json
After that it'll work.


'classProperties' isn't currently enabled for CRA

Describe the bug
throws me an error for building an application with CRA for class properties ES2019.
Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the 'plugins' section of your Babel config to enable transformation.
After adding the babel plugin also this issue persists. Is there any workaround officially not using react-app-rewired or ejecting
mentioned in the previous issue below as it is experimental, But now it is official in ES2019. Is there any workaround for this issue of classproperties.
https://github.com/facebook/create-react-app/issues/4648#issuecomment-398540069
(Write your answer here.)
Did you try recovering your dependencies?

(Write your answer here.)
Environment

System:
OS: Windows 10 10.0.18363
CPU: (4) x64 Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz
Binaries:
Node: 14.4.0 - C:\Program Files\nodejs\node.EXE
Yarn: Not Found
npm: 6.14.6 - C:\Program Files\nodejs\npm.CMD
Browsers:
Edge: 44.18362.449.0
Internet Explorer: 11.0.18362.1
npmPackages:
react: 16.13.1 => 16.13.1
react-dom: 16.13.1 => 16.13.1
react-scripts: Not Found
npmGlobalPackages:
create-react-app: Not Found

In an older bug report, I found this explanation for the current behaviour:

Yes, class properties are turned on by default in application code. Because you have full control over it, and if the spec changes, you could run a codemod.

Class properties are intentionally off for library code. Because they are not finalised, and the spec may change or even become abandoned. Supporting this would create a huge ecosystem burden because now people won’t be able to upgrade to future Babel releases without also breaking the libraries that they depend on, and vice versa. They’re also completely unusable in Node and other environments.

https://github.com/facebook/create-react-app/issues/4648#issuecomment-398540069
I am having the same issue after adding react-router-dom to my app. It appears that library now uses the new class properties but CRA will not let it use the babel plugin:
./node_modules/react-router-dom/modules/BrowserRouter.js
SyntaxError: /home/[user]/[cra-project]/node_modules/react-router-dom/modules/BrowserRouter.js: Support for the experimental syntax 'classProperties' isn't currently enabled (11:11):
     9 |  */
   10 | class BrowserRouter extends React.Component {
> 11 |   history = createHistory(this.props);
       |           ^
 12 |
   13 |   render() {
   14 |     return <Router history={this.history} children={this.props.children} />;
Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the 'plugins' section of your Babel config to enable transformation.


Dependency update

Pull Request Test Coverage Report for Build 15

5 of 6 (83.33%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 93.874%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/mongo.ts
5
6
83.33%

Totals

Change from base Build 11:
0.2%

Covered Lines:
277

Relevant Lines:
288

💛  - Coveralls


Vehicle characteristics scraper

Hey!
I had an idea for a while to make a tool where you can filter vehicles by br and every other metric. For example you select a tank and you can view what tanks can it face etc.
Your work is excellent but I would need a scraper for vehicle characteristics as well. I would love to contribute but I don't know Rust.
What do you think how much work would it be to do the vehicle scraper?

Hi,
I originally planned on scraping the vehicle pages but never did since i didn't end up needing it. The only problem with scraping the vehicle pages is. That it can't do them all at once since the execution time limit on cloudflare workers is too short. But that is easily solved by running that part on a different server. But that may cause a rate limit since there are a lot of vehicles. Although i have never tested this.
Other then that if i remember correctly the vehicles pages html is quite complex. So it might be a bit harder to scrape all the data from it. To cache all of that correctly. The current way of how data is cached in the DB might need to change a bit. But that's fine since that's a mess anyways. I got really confused how i made that when I was trying to fix something.
TL;DR
Scraping the vehicle pages should be doable. If a request is up to 5 vehicles at a time or something around that. Would need to test what a good limit would be. Might also need to rethink how to store the cache in the DB.

It should be enough to gather the data once every patch or something.
Now I checked out a few vehicle pages and yes it really is complex. :(
Also would the free tier be enough on heroku to store everything?

There are currently about 2400 vehicles in game. So assuming that each vehicle has 64kb of data (which is probably way too much). All the data will only take 154MB. But first thing to do is to check what the wiki rate limit is.
It also should be possible to use the steam api to check for a new patch.

Hey! It's been a while. :)
So I did some scraping on my own using you apis vehicle list as a base.
There are some vehicles that has wrong names and wiki link. The _s are missing. eg:
{
     "name": "GladiatorMkII",
     "thumbnail_img_url": "https://encyclopedia.warthunder.com/slots/gladiator_mk2.png",
     "wiki_page": "https://wiki.warthunder.com/GladiatorMkII"
}

it should be Gladiator_Mk_II
This is where I'm at currently if intrested:
https://wt-portal.vercel.app/vehicles/filter

Hey,
I took a look for you. It seems that some vehicles like the Gladiator use nbsp instead of a normal space. This breaks the way that i get the wiki url.  I'll quickly look into it and try to fix it.

Hi,
36a914d Should fix your issue. I tested some urls for random vehicles and they all seem to still work. Let me know if you have any further issues. This is the new output:
{
    "name": "Gladiator Mk II",
    "thumbnail_img_url": "https://encyclopedia.warthunder.com/slots/gladiator_mk2.png",
    "wiki_page": "https://wiki.warthunder.com/Gladiator_Mk_II"
 }

Also site looks cool. Interested in seeing how it will be when fully functional.

Hey
Sorry to inform you but I'm not using you api anyone nor do I scrape anything. I found out that the datamine repo contains everything as a json. It's still hard to parse but at least somewhat consistent.
And the current progress is: Techtree :)

Hey
Looks pretty cool. Especially the raw json button is quite handy. Don't need to search trough the files to get that anymore. Only thing I'm wondering is where that raw json comes from. Since it doesn't seem to be the contents of the blkx file.
And no worries about not using the api anymore. The only reason it even exists is because i wanted to try web scraping with rust. Getting the data from the datamine repo is a much better idea honestly.


Add LICENSE.md

We should consider which license to include for Creative Collab. We could refer to choosealicense.com for inspiration!
Any and all discussion welcome 🗣

I think MIT Licence would be the best option as it provides all of the permissions we would need for this project.
Additionally, it explicitly states that it does NOT provide any warranty.
I can add the licence if you want.

If any of you decide you want to sell something based on this later, MIT is nice because it leaves the door open.  It's what I'd use if it were me.

Sounds great @SeanPrashad ! I will get a PR up soon.

Fixed with #24


VNF external alias mapping

Description
Enhance VNF (and potentially required OpenNebula services) to support the maping of external NIC aliases prototyped by https://github.com/OpenNebula/one/blob/master/share/start-scripts/map_vnets_start_script without the prerequisite of running router and network nodes within a OneFlow service.
Use case
More details: https://support.opennebula.pro/hc/en-us/articles/360043445132-Virtual-Network-Mapping
Interface Changes
Extend OneGate for VR instance type.

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

OneGate PRs:
(master)
https://github.com/OpenNebula/docs/pull/1325 (docs)
https://github.com/OpenNebula/development/pull/1200 (tests)
https://github.com/OpenNebula/one-ee/pull/339 (one)
(5.12)
https://github.com/OpenNebula/one-ee/pull/338 (one)

PRs:
https://github.com/OpenNebula/infra/pull/541
https://github.com/OpenNebula/development/pull/1203
https://github.com/OpenNebula/marketplace-docs/pull/16


Bump cct_module tag to 0.43.0

This fixes building RHEL7-based images, which are broken at the moment
because half of the "remove jolokia" change was committed to the image
descriptor, but the other half was committed to cct_module between
0.42.0 and 0.43.0. It also catches up the RHEL8 images to the latest
developments queued up for the next release.

@jerboaa thanks, needs to be looked at closer. but it looks like something that was done for OpenJ9, removing /etc/java/maven.conf which forced JAVA_HOME to a jdk8 path, I'll dig.

@jmtd OK. I brought it up because the github actions checks fail:
Failing scenarios:
  features/cct_module/jboss/container/s2i/core/bash/s2i-core.feature:7  run an s2i build and check that /tmp/src has been removed afterwards
  features/image/java/gc.feature:7  Check default GC configuration
  features/image/java/gc.feature:12  Check GC_MIN_HEAP_FREE_RATIO GC configuration
  features/image/java/gc.feature:19  Check GC_MAX_HEAP_FREE_RATIO GC configuration
  features/image/java/gc.feature:26  Check GC_TIME_RATIO GC configuration
  features/image/java/gc.feature:33  Check GC_ADAPTIVE_SIZE_POLICY_WEIGHT GC configuration
  features/image/java/gc.feature:40  Check GC_MAX_METASPACE_SIZE GC configuration
  features/image/java/gc.feature:47  Check GC_CONTAINER_OPTIONS configuration
  features/image/java/java_s2i.feature:11  run the s2i and check the maven mirror and proxy have been initialised in the default settings.xml, uses http_proxy
  features/image/java/java_s2i.feature:24  run the s2i and check the maven mirror, proxy (including username and password) and non proxy have been initialised in the default settings.xml, uses http_proxy
  features/image/java/java_s2i.feature:36  run the s2i and check the maven mirror, proxy (including username) and non proxy have been initialised in the default settings.xml, uses http_proxy
  features/image/java/java_s2i.feature:47  run the s2i and check the maven mirror and proxy have been initialised in the default settings.xml, uses HTTP_PROXY
  features/image/java/java_s2i.feature:60  run the s2i and check the maven mirror, proxy (including username and password) and non proxy have been initialised in the default settings.xml, uses HTTP_PROXY
  features/image/java/java_s2i.feature:72  run the s2i and check the maven mirror, proxy (including username) and non proxy have been initialised in the default settings.xml, uses HTTP_PROXY
  features/image/java/java_s2i.feature:83  run the s2i and check the maven mirror and proxy have been initialised in the default settings.xml, uses http_proxy and HTTP_PROXY
  features/image/java/java_s2i.feature:97  run the s2i and check the maven mirror, proxy (including username and password) and non proxy have been initialised in the default settings.xml, uses http_proxy and HTTP_PROXY
  features/image/java/java_s2i.feature:110  run the s2i and check the maven mirror, proxy (including username) and non proxy have been initialised in the default settings.xml, uses http_proxy and HTTP_PROXY
  features/image/java/java_s2i.feature:122  run the s2i and check the maven mirror and proxy have been initialised in the default settings.xml, uses https_proxy
  features/image/java/java_s2i.feature:135  run the s2i and check the maven mirror, proxy (including username and password) and non proxy have been initialised in the default settings.xml, uses https_proxy
  features/image/java/java_s2i.feature:147  run the s2i and check the maven mirror, proxy (including username) and non proxy have been initialised in the default settings.xml, uses https_proxy
  features/image/java/java_s2i.feature:158  run the s2i and check the maven mirror and proxy have been initialised in the default settings.xml, uses HTTPS_PROXY
  features/image/java/java_s2i.feature:171  run the s2i and check the maven mirror, proxy (including username and password) and non proxy have been initialised in the default settings.xml, uses HTTPS_PROXY
  features/image/java/java_s2i.feature:183  run the s2i and check the maven mirror, proxy (including username) and non proxy have been initialised in the default settings.xml, uses HTTPS_PROXY
  features/image/java/java_s2i.feature:194  run the s2i and check the maven mirror and proxy have been initialised in the default settings.xml, uses https_proxy and HTTPS_PROXY
  features/image/java/java_s2i.feature:208  run the s2i and check the maven mirror, proxy (including username and password) and non proxy have been initialised in the default settings.xml, uses https_proxy and HTTPS_PROXY
  features/image/java/java_s2i.feature:221  run the s2i and check the maven mirror, proxy (including username) and non proxy have been initialised in the default settings.xml, uses https_proxy and HTTPS_PROXY
  features/image/java/java_s2i.feature:233  run the s2i and check the maven mirror, proxy (including username and password) and non proxy have been initialised in the default settings.xml, uses https_proxy and HTTPS_PROXY
  features/image/java/java_s2i.feature:246  run s2i assemble and check HTTP_PROXY_NONPROXYHOSTS is honoured
  features/image/java/java_s2i.feature:258  run s2i assemble and check HTTP_PROXY_NONPROXYHOSTS is honoured with multiple entries
  features/image/java/java_s2i.feature:270  run an S2I build that depends on com.redhat.xpaas.repo.redhatga being defined
  features/image/java/java_s2i.feature:278  Ensure legacy ARTIFACT_COPY_ARGS works as it used to
  features/image/java/java_s2i.feature:286  Test that maven is executed in batch mode
  features/image/java/java_s2i_inc.feature:8  Check incremental builds cache .m2
  features/image/java/ports.feature:7  Check ports are available
  features/image/java/runtime.feature:7  Ensure JVM_ARGS is no longer present in the run script
  features/image/java/runtime.feature:15  Ensure JAVA_ARGS are passed through to the running java application
  features/image/java/runtime.feature:25  Ensure diagnostic options work correctly

Do you know why?

@jerboaa not sure why (yet), but I'm seeing the same failures for #173 so I think it's something unrelated. I'll raise a github issue to track.

Thank you!


Documentation for VectorTileLayer has duplicate options

Describe the bug
VectorTileLayer has the options renderOrder and style show up twice in the options list.
To Reproduce
Steps to reproduce the behavior:

Go to VectorTileLayer.
Scroll down to the options section.
See that renderOrder and style show up twice in the options list.

Expected behavior
Options should not be duplicated.

Thanks for the report.  This was addressed in https://github.com/openlayers/openlayers/commit/e73931a9b25097451685a75308271a20c051d195, and the duplicate property is no longer in the documentation.


feat: raft log store sync detail metrics

As titled.
... and, the sync duration looks weird, 20ms?
Ref: #66 .

It reasonable that the fsync duration is more than 20ms on macbook with rust, even if fio has gaven a much smaller duration, because fio is not calling F_FULLFSYNC on mac, and fsync only flush dirty buffer to device but not waiting.
FYI: https://twitter.com/marcan42/status/1494213855387734019

From TiKV:
https://github.com/pingcap/tidb/issues/18024
https://docs.google.com/document/d/1P_CsHs-9Vlzizohzr6REIgVacPwBG_0vP4T7QEKswxI/edit


add how.wtf to the sites.yml

This PR is:

[x] Adding a new domain
[ ] Updating existing domain size
[ ] Changing domain name
[ ] Removing existing domain from list
[ ] Website code changes (512kb.club site)
[ ] Other not listed

[x] I used the uncompressed size of the site
[x] I have included a link to the GTMetrix report
[x] This site is not an ultra lightweight site
[x] The following information is filled identical to the data file

I confirm that I have read the FAQ section, particularly the two red items around minimal pages and inappropriate content and I attest that this site is neither of these things.

[x] Check to confirm

- domain: how.wtf
  url: https://how.wtf/
  size: 18.2
  last_checked: 2012-12-29

GTMetrix Report: https://gtmetrix.com/reports/how.wtf/VHoHfgqI/

Thanks!


css will emitted everytime when watch mode

my package.json like this:
"extract-text-webpack-plugin": "^2.0.0",
"webpack": "^2.2.1"
'CommonsChunkPlugin': xxx

question?
everytime I save my entry js not the css, the css will emitted again however the css did not change, so what happens?
I notice that this plugin register 'compilation.plugin("additional-assets")' and everytime compilation.assets[somecssfile] = new object, so the compilation.assets[somecssfile].emitted = true
who can help me, thanks?

@winnerhp thanks for issue. Can your provide minimum reproducible test repo?

@evilebottnawi

repos
npm install
npm run dev

then
everytime you change src/page/entry_one.js or entry_two.js，the control will print like
          Asset      Size  Chunks             Chunk Names
js/entry_two.js    2.8 kB       1  [emitted]  entry_two
  entry_one.css  42 bytes       0  [emitted]  entry_one
  entry_two.css  22 bytes       1  [emitted]  entry_two

both entry_one.css and  entry_two.css will emitted,however the content of css is not change.

@winnerhp seems related to https://github.com/webpack/webpack/issues/5321 (just information)

@winnerhp Duplicate https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/594. Thanks for issue!


GREEN_PIPS = 10 missing from ValueUIStyle enumerator

Long story short.

The enumeration for GreenPips is not in the ValueUIStyle enumerator.
Expected Result

The value 10 would be enumerated to GREEN_PIPS
Actual Result

This bug causes a ValueError when you try to enumerate 10.
  File "/home/gman1230321/bountyoptimizer/Bounty-Optimization-Tool/app.py", line 53, in getCharacters
    objectives = [await objective.fetch_self() for objective in objectives]
  File "/home/gman1230321/bountyoptimizer/Bounty-Optimization-Tool/app.py", line 53, in <listcomp>
    objectives = [await objective.fetch_self() for objective in objectives]
  File "/home/gman1230321/bountyoptimizer/Bounty-Optimization-Tool/lib/python3.9/site-packages/aiobungie/crate/records.py", line 111, in fetch_self
    return await self.net.request.fetch_objective_entity(self.hash)
  File "/home/gman1230321/bountyoptimizer/Bounty-Optimization-Tool/lib/python3.9/site-packages/aiobungie/client.py", line 939, in fetch_objective_entity
    return self.factory.deserialize_objective_entity(resp)
  File "/home/gman1230321/bountyoptimizer/Bounty-Optimization-Tool/lib/python3.9/site-packages/aiobungie/internal/factory.py", line 1702, in deserialize_objective_entity
    progress_value_style=entity.ValueUIStyle(payload["inProgressValueStyle"]),
  File "/usr/lib/python3.9/enum.py", line 360, in __call__
    return cls.__new__(cls, value)
  File "/usr/lib/python3.9/enum.py", line 678, in __new__
    raise ve_exc
ValueError: 10 is not a valid ValueUIStyle

System info

Ubuntu 20.04 on WSL
Python 3.9.5
aiobungie 0.2.5
Further info

The solution is incredibly simple. Just add GREEN_PIPS = 10 to class ValueUIStyle(enums.IntEnum):  in crate.entity.py. I've attached a patch file that will solve this issue. I'm having trouble right now getting a development copy on my system so I can't just submit a PR at this moment. Just apply the patch to crate/entity.py with patch crate/entity.py < patch.txt
patch.txt

Additionally, here is the Bungie.net API documentation for this enumerator for reference. https://bungie-net.github.io/#/components/schemas/Destiny.DestinyUnlockValueUIStyle

I made a PR but I have not been able to run tests since I cannot get my environment to work properly.

Thanks for catching that, Will take a look at the PR now :)


transient spurious error when duplicate explicit limits are specified

Reported by andrew wittenberg on 10 Oct 2014 19:40 UTC
This one doesn't appear to be new; I see it in v6.725 as well.
Suppose we doubly-specify the same explicit limits on a variable.  E.g. in my present application, a script is operating on the output of another script, and is then re-applying the limits.  As you can see below, we first get an error -- along with a message that puzzlingly contradicts the fact that the two sets of limits are identical.
If we then evaluate the variable with the limits applied just once, it works as expected.
But then if re-try the first command -- the error disappears!
Why does the error appear at all, and then why does it disappear?
 	NOAA/PMEL TMAP
 	FERRET v6.927 (beta)
 	Linux 2.6.32-431.29.2.el6.x86_64 64-bit - 10/09/14
 	10-Oct-14 15:16

yes? use coads_climatology
yes? let a = sst[list/x=140w/y=0 a[t=1-jan-0001:1-jul-0001](t=1-jan-0001:1-jul-0001]
yes?)
 **ERROR: illegal limits: T axis limits don't match variable def'n: A
          Are you giving explicit limits when SET REGION would suffice ?
yes? list/x=140w/y=0 a
             VARIABLE : SST[            FILENAME : coads_climatology.cdf
             FILEPATH : /home/atw/ferret/exe/x86_64/rhel6/ferret-6.9/fer_dsets/data/
             SUBSET   : 6 points (TIME)
             LONGITUDE: 141W
             LATITUDE : 1S
                    141W
                    100
 15-JAN      / 13:  25.30
 14-FEB      / 14:  26.15
 17-MAR      / 15:  26.51
 16-APR      / 16:  27.05
 17-MAY      / 17:  26.75
 16-JUN      / 18:  26.85
yes? list/x=140w/y=0 a[t=1-jan-0001:1-jul-0001](T=1-JAN-0001:1-JUL-0001]
)
             VARIABLE : SST[T=1-JAN-0001:1-JUL-0001]
             FILENAME : coads_climatology.cdf
             FILEPATH : /home/atw/ferret/exe/x86_64/rhel6/ferret-6.9/fer_dsets/data/
             SUBSET   : 6 points (TIME)
             LONGITUDE: 141W
             LATITUDE : 1S
                    141W
                    100
 15-JAN      / 13:  25.30
 14-FEB      / 14:  26.15
 17-MAR      / 15:  26.51
 16-APR      / 16:  27.05
 17-MAY      / 17:  26.75
 16-JUN      / 18:  26.85

Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2208

Comment by ansley.b.manke on 10 Oct 2014 23:11 UTC
It has to do with applying the modulo transformation.  A similar example with monthly_navy_winds on its non-modulo time axis works correctly.
yes? set mode diag
yes? can mode 6d_lab  ! (shorten up the output)

yes? use coads_climatology
yes? let a = sst[list/x=140w/y=0 a[t=1-jan-0001:1-jul-0001](t=1-jan-0001:1-jul-0001]
yes?)

 getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1
 getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1
 allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
 allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME

 strip limits reconciliation : EX#1
 eval    EX#1     C:  5 dset:   1 I:  100  100  J:   45   45  K: -999 -999  L: -999 -999
 strip moduloing A on T axis:    13    18 dset:   1

 eval    A        C:  9 dset:   1 I:  100  100  J:   45   45  K: -999 -999  L:    1    6
 strip moduloing SST on T axis:    13    18 dset:   1

 reading SST      M:  1 dset:   1 I:  100  100  J:   45   45  K: -999 -999  L:    1    6
 doing moduloing SST on T axis:     1     6 dset:   1

 **ERROR: illegal limits: T axis limits don't match variable def'n: A
          Are you giving explicit limits when SET REGION would suffice ?
 -DELETE A        M:  3 dset:   1 I:  100  100  J:   45   45  K: -999 -999  L:   13   18

I've added blank lines to make it somewhat more readable.  The Moduloing lines say:
 strip moduloing   A on T axis:    13    18 dset:   1
 strip moduloing SST on T axis:    13    18 dset:   1
 doing moduloing SST on T axis:     1     6 dset:   1

So for parts of the evaluation it decides to use indices 13-18, and for other parts it uses indices 1-6, and those translate to different world time coordinates, hours since 1-jan-0000.


Missing option to add a custom/personal repository

I need to enable a custom/personal repository to install a specific app. Within "Storeman" settings I see one existing repository enabled which is called "basil". Via localized pulley menu I have four options which I would translate to "Update", "Update Cache", "Deactivate all" and "Remove all".
I expect an option to add a repository next to the mentioned options - but there is no such option.
Details on my environment: Storeman 0.0.25, SailfishOS <IP_ADDRESS> (Lapuanjoki), device "Jolla Phone", installation of 3rd party apps is enabled.

You can add a repository with the pulley menu on the app page. Storeman is an OpenRepos.net client so it works with these repositories. If you need to add a custom repository you can use the Terminal app:
devel-su ssu ar <repo> [url]

To read more about ssu commands run ssu without arguments.

Thank you for the quick reply! I would like to use the pulley menu rather than the command line tool. Just to be sure that we are talking about the same "pulley menu on the app page" I attached a screenshot showing "my way" to that menu. Is this the menu, you think of, or am I missunderstading you?

Nope, I'm talking about another page :) Open the page of the application you want to install (from the "Recently updated" for example) and then pull down the menu.

Thank you very much for your explanation! It helped me to understand the process of adding repositories within "Storeman". Now I was able to add the custom/personal repository, that the app I actually wanted to install, needed for resolving dependencies.


Improve Footer Section

I would like to work on this issue, please assign it to me.

/assign

@jenyyy4 can you explain how you will update the UI?

@divyanshudhruv i wanna make it match the theme and add home buttons and more.


[AKS] az aks install-cli: Add --kubelogin-version and --kubelogin-install-location arguments

Description

This PR is to install kubelogin using az aks install-cli. The user can use --kubelogin-version and --kubelogin-install-location to specify the kubelogin version and install location.
Testing Guide

Run az aks install-cli.
kubelogin will be installed.
Run kubelogin -h to check the version.
Run which kubelogin to check the install location.

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

AKS

@weinong Could you please help review the PR?

@arrownj This PR is ready to merge. Could you please help review and merge it? Thanks!


[AutoPR cosmos-db/resource-manager] Update cosmos-db management Node.js package version to 2.0.0

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/3516

(message created by the CI based on PR content)


Unexplained lag.

Basically, my server after about 5 minutes of running is lagging like crazy with about 20 people actively playing. Im hosting on a Centos 7 8 GB Ram VPS with 4x Cores.  Also, the server is updated to the latest commit.
If you want to see what im talking about, go to http://popsplit.us/.

Hi @chewydev
a little of invention would be nice, especially that recently @MastaCoder merged template below, which means guys are tired a little and seems you have purposely deleted template completely...
Now:

[ ] You have provided logs […]
Please install such monitoring or any other tool and provide logs, when idle and under load: https://nicolargo.github.io/glances/ (most preferably see how this thingy stores data in logs and sent not only screenshot but main log itself)

I'm hosting only MultiOgar without client. For me there is much bigger issue with transfer than resource drain, I have 4 instances of MO-E running on my VPS, 1 core (2,4GHz), 1GB RAM and for now Ubuntu as OS, and most of the time CPU usage below 30% for node processes, so it has to be some shit related with your VPS and/or Centos packages, or specific node you have... or even something not related... there is a lot of space.
Please install monitoring tool to see for sure what is draining resources, provide node version (and other required packages). Check your network settings (if you setup internal rules), your DB, bla bla bla.
I would suggest to run new installation on your VPS, with all staff downloaded from here + check if you haven't "hardcode" node or related packages versions.
Please in future give something useful from start, to not waste time for ping-pong guessing...

BEFORE POSTING NEW ISSUE READ THIS: You will find below few points, that you must follow or provide required info to. If you are not going to provide what we need in format we require your issue will be closed instantly without explanation. Spam is treated with fire.
Helpful checklist:

[ ] You have checked prev issues first and you didn't found answer for your problem (if there is something similar put reference links)
[ ] You are using and you have tested the latest version of MultiOgar.
[ ] Issue is in English.
[ ] Issue is not off-topic, and is related to the project.
[ ] You have provided below good description of the error, making sure it is something we can reproduce.
[ ] You have provided logs if there is crashing happening.

Tutorial of how to format text on github, to make your issue not only readable but clean and neat

I have a lot of my own custom code implemented into my server, i still dont lag. Try running a draft server unedited, does the same error occur?

Your provider probably has a bandwidth cap, after full use at one rate it will cap you down the amount you can upload. Most hosts do this to avoid abuse, if your host does this 90% sure they don't accept gameservers hosted with them.
Also less cores, stronger cores > more cores, weaker ones.

Ill look for better hosts, im currently hosting with https://www.vultr.com.

@chewydev If you find a super cheap host that doesn't bottleneck let me know please.

@chewydev If someone like me were to use https://www.vultr.com/ for hosting which playing option would I buy for hosting this server.

@Logan7432 Actually FadeHost (A minecraft server hosting company) has awesome CPUS, I just started host my 6 game-servers on a 5GB VPS for $20/mo and the average update time is around 3 or 4 ms (incredibly fast). I'd recommend getting a VPS with them: https://www.fadehost.com/billing/cart.php?gid=9


add: new incremented streamlit example for titanic dataset modelling

Enhances the current Hermione streamlit example, adding a reusable framework for developing multipage apps in a more organized way, as well as making available an example of integration of machine learning model in the app.

Valeu pelo PR Pedro!!


test: xCall send call message scenarios

Description:
Commit Message
test: test script for all send call message scenarios

see the guidelines for commit messages.
Checklist:

[x] I have performed a self-review of my own code
[x] I have documented my code in accordance with the documentation guidelines
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have run the unit tests
[ ] I only have one commit (if not, squash them into one commit).
[x] I have a descriptive commit message that adheres to the commit message guidelines

Please review the CONTRIBUTING.md file for detailed contributing guidelines.

Codecov Report

Merging #345 (78ee56a) into main (ec2f965) will increase coverage by 29.20%.
The diff coverage is 66.66%.

@@              Coverage Diff              @@
##               main     #345       +/-   ##
=============================================
+ Coverage     45.58%   74.79%   +29.20%
=============================================
  Files           125       84       -41
  Lines         20895    10480    -10415
  Branches        284        0      -284
=============================================
- Hits           9526     7839     -1687
+ Misses        11228     2641     -8587
+ Partials        141        0      -141

Impacted Files
Coverage Δ

libraries/rust/common/src/rlp/impls.rs
50.71% <60.00%> (+0.71%)
:arrow_up:

...ntracts/cosmwasm-vm/cw-xcall/src/types/response.rs
78.26% <66.66%> (-0.91%)
:arrow_down:

...ts/cosmwasm-vm/cw-xcall/src/handle_call_message.rs
68.18% <100.00%> (-18.11%)
:arrow_down:

... and 50 files with indirect coverage changes


[Analytics] Issues on API reference

Issues In the page https://developer-stage.adobe.com/client-sdk/documentation/adobe-analytics/api-reference/

Missing Unity and Xamarin tabs.  (Unity is deprecated, Xamarin is not)
e.g

Swift and Objective order for ACP2.x.  In GitBook, we have Swift first, then Objective-C
e.g.

extensionVersion API is missing syntax
e.g

Missing Objective-C syntax in iOS(AEP 3.x) and missing Swift syntax in iOS(ACP 2.x).  They were updated in the latest GitBook
e.g.

Broken links
MobileCore.resetIdentities
https://developer-stage.adobe.com/client-sdk/documentation/foundation-extensions/mobile-core/mobile-core-api-reference.md#resetidentities
Should be
https://developer-stage.adobe.com/client-sdk/documentation/mobile-core/api-reference/#resetidentities

setVisitorIdentifier links to GitBook, it should link to this doc

getTrackingIdentifierWithCompletionHandler, need to add
Starting with v1.2.9 (Android) / v3.0.3(iOS AEPAnalytics) / v2.5.1 (iOS ACPAnalytics) this API does not generate or retrieve a new tracking identifier (AID) for new visitors.....warning block at in the GitBook

sendQueuedHits API has no content under iOS(AEP3.x) and the tabs next to it.

All these issues have already been resolved!


[Identity] Add support for App Service 2019

We removed support for it a while ago, let’s add it back.
Once we add it, let’s also support resource Id. Remember that the parameter for App Service 2019 is mi_res_id.

Here’s the deleted file that used to support App Service 2019: https://github.com/sadasant/azure-sdk-for-js/blob/d981b57d72fd0ff00adc564681ebba46e1fd8c8f/sdk/identity/identity/src/credentials/managedIdentityCredential/appServiceMsi2019.ts
How to add it back:

What really matters from this deleted file are the names: the client_id property name, the name of the environment variables.
For the rest of the file, it should behave identically to the current App Service 2017 file.
The only thing missing is that App Service 2019 supports the mi_res_id parameter, similar to how we’re adding support for this feature here: https://github.com/Azure/azure-sdk-for-js/pull/20043 — keep in mind that the documentation says that App Service 2019 supports this parameter with the name mi_res_id.

Here are the docs: https://docs.microsoft.com/en-us/azure/app-service/overview-managed-identity?tabs=portal%2Chttp


evaluation results

First of all, thanks for sharing the work. I quickly run a test of AP with following results, do you know why it is too low?

python3 models/COCO.res50.256x192.CPN/mptest.py -d 0-1 -r 350
loading annotations into memory...
Done (t=2.09s)
creating index...
index created!
loading the precalcuated json files
Loading and preparing results...
4581
4581
DONE (t=2.98s)
creating index...
index created!
Running per image evaluation...
Evaluate annotation type keypoints
there are 40504 unique images
DONE (t=14.41s).
Accumulating evaluation results...
DONE (t=0.53s).
Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets= 20 ] = 0.093
Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets= 20 ] = 0.116
Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets= 20 ] = 0.102
Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets= 20 ] = 0.089
Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets= 20 ] = 0.099
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 20 ] = 0.097
Average Recall     (AR) @[ IoU=0.50      | area=   all | maxDets= 20 ] = 0.117
Average Recall     (AR) @[ IoU=0.75      | area=   all | maxDets= 20 ] = 0.104
Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets= 20 ] = 0.092
Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets= 20 ] = 0.103
AP50
ap50 is 0.141489
ap is 0.099431
I added the AP calculation and saved the json file already

Your result is similar to #11 . I think there is something wrong while testing. I found your testing images are
40504 unique images. We test the results on the COCO minival dataset which contains 5000 images and so as the provided detection boxes. You might get the wrong human detection in your dataset.

Thanks for your quick reply, you are right that my val json files is not the same, I am using the person_keypoints_val2014.json , can you provide those json files, in coco dataset official website, they are not existing anymore

COCO 2014 minival json and its detection result json is provided.

Thanks, now it looks normal

DONE (t=0.37s).
Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets= 20 ] = 0.697
Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets= 20 ] = 0.883
Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets= 20 ] = 0.770
Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets= 20 ] = 0.662
Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets= 20 ] = 0.761
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 20 ] = 0.764
Average Recall     (AR) @[ IoU=0.50      | area=   all | maxDets= 20 ] = 0.927
Average Recall     (AR) @[ IoU=0.75      | area=   all | maxDets= 20 ] = 0.823
Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets= 20 ] = 0.715
Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets= 20 ] = 0.830


:plugin-repositories doesn't pickup aws creds on newer version of lein

on Lein 2.9.6  :plugin-repositories fails to authenticate with aws creds trying to pull any private plugins, going back to lein 2.9.1 and it works fine. Have tested on both Linux and macos (M1)
:repositories still works fine on the latest version of lein its just pluggins

Interesting, I remember there's been issues with private plugins on and off. Probably the next step would be to open an issue against Leiningen and bisect the commits to find where it was introduced?


StringCatalogEnum: Create Decodable Models to decode xcstrings JSON file

Currently, only first level keys in the strings object are used to generate enum.
Decodable models should be created so that xcstrings JSON file can be decoded to native objects, to support more features.
For example, if we can extract $key.localizations.en.stringUnit.value, we can add inline documents to enum case, so that when developer option-click a case name, the whole copy of a chosen language (en in this case) will be displayed.
Formats to be supported
Generated from SwiftUI
    "Home" : {

    },

Generated from SwiftUI, and an English translation is added
    "Login" : {
      "localizations" : {
        "en" : {
          "stringUnit" : {
            "state" : "translated",
            "value" : "Login"
          }
        }
      }
    }

Manually added, English only
    "welcomeBack" : {
      "extractionState" : "manual",
      "localizations" : {
        "en" : {
          "stringUnit" : {
            "state" : "translated",
            "value" : "Welcome back"
          }
        }
      }
    },

Thank you @Uni-boy for your PR! We have some remaining works that will be addressed in future: https://github.com/superarts/XStringCatalog/pull/14#discussion_r1442501350


added validation for url

Hi @whovivekshukla thanks for the PR, but there is another contributor who already took the issue and contributed. Feel free to open a new issue.

Okay, got it. By the way, I can see if you press "Generate QR" you are still calling the QR API, even though you don't have any link in the textbox. With my fix, you'll get an error for that.
Here's the demo - https://qrcode-generator-lac.vercel.app/ (I will delete this deployment later).


Intel only - Model is empty on rollover of ComputerInfo button

possible bug...
macOS 13.4.1 (c)
MacBook Pro 16-inch, 2019
builds: latest master and development

src/Support/Views/ButtonViews/ComputerNameSubview.swift:

a fix, but not an ideal one:
let secondSubtitleString = computerinfo.modelNameString.isEmpty ? computerinfo.modelShortName :  computerinfo.modelNameString

 ItemDouble(title: NSLocalizedString("Computer Name", comment: ""), secondTitle: NSLocalizedString("Model", comment: ""), subtitle: computerinfo.hostname, secondSubtitle: secondSubtitleString, linkType: aboutLinkType, link: aboutLink, image: computerinfo.computerNameIcon, symbolColor: Color(NSColor(hex: "\(customColor)") ?? NSColor.controlAccentColor), hoverEffectEnable: true)

That fix gives the correct output on both Silicon and Intel:

But the underlying issue still remains in that the call to Apple's url returns no results. Tested on several machines.
also verified using curl that the result is empty:
curl "https://support-sp.apple.com/sp/product?cc=[last_4_serial_number]"
<?xml version="1.0" encoding="utf-8" ?><root><name>CPU Name</name><configCode></configCode><locale>en_US</locale></root>%
2023-07-19 10:06:36.608618-0700 Support[11230:1383308] [ComputerInfo] Error matching serial number with model and introduction year...
2023-07-19 10:06:36.608670-0700 Support[11230:1383308] [ComputerInfo] Full Model Name:
2023-07-19 10:06:36.608688-0700 Support[11230:1383308] [ComputerInfo] Model Year:
possible fix?
system_profiler SPHardwareDataType
...Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro16,1
      Processor Name: 8-Core Intel Core i9

Thanks!

@johngsea thanks for bringing this up. It seems like Apple is no longer returning the model name. I also tried a couple of Intel serial numbers and none is working. I think your suggestion to go with the model short name is the best option as it is probably not possible anymore to get the full name on Intel. Also, troubleshooting on Intel gets harder as Apple Silicon is taking over.

Thank you, Jordy! We'll use the short name. Agree, Intel is being phased out anyway.

The link: https://support-sp.apple.com/sp/product?cc=[last_4_serial_number] intel Macs and limited Apple Silicon M1 (Pro/Max/Ultra excluded) Macs only. This is because Apple has switched to a fully randomised Serial Number scheme, therefore no longer adhering to the legacy Serial Number format that included model codes, year and week in the last decade it was made, where it was manufactured, and one or two more bits of information beyond a basic count off the assembly line. As a result the web-link has been an unreliable source of information for 2-3 years now.

This was partially resolved in v2.5. On Intel, it now shows the model shortname because it seems it is no longer possible to obtain the full model name from the Apple API endpoint https://support-sp.apple.com/sp/product?cc=[last_4_serial_number]

You can still get the full Marketing Model Name for Intel Macs from the backend URL API of the Specs Search Apple Support page. (At least you can for now, who knows if Apple will break this one day too.)
Here's an example of how to format the URL and parse the returned JSON: https://github.com/freegeek-pdx/macOS-Testing-and-Deployment-Scripts/blob/main/Other Scripts/get_specs_url_from_serial.sh
That code does 2 URL calls to get the Tech Specs URL, but all you need is the first one just to get the Marketing Model Name.
TLDR, call https://km.support.apple.com/kb/index?page=categorydata&serialnumber=[SERIALNUMBER] and then get the the value from the name key in the returned JSON.

Also, serendipitously, not long before the support-sp URL API went down, I brute force saved every single config code with their Marketing Model Name: https://github.com/freegeek-pdx/macOS-Testing-and-Deployment-Scripts/blob/main/Other Scripts/every_apple_serial_config_code_with_marketing_model_name.txt
I also processed all of that down to just the Intel Mac Marketing Model Name with the relevant Config Codes and Model IDs (only Model IDs are listed in this file for models that don't have multiple possible Marketing Model Name): https://github.com/freegeek-pdx/macOS-Testing-and-Deployment-Scripts/blob/main/Other Scripts/every_intel_mac_marketing_model_name_with_grouped_model_ids_and_serial_config_codes.txt
And here's an example of how that text can be processed to get an Intel Macs Marketing Model Name totally offline: https://github.com/freegeek-pdx/macOS-Testing-and-Deployment-Scripts/blob/3e5f7b24d8efc585de76932ef19dd61f4e530a42/fgMIB Resources/fg-install-os.sh#L223-L389
That code is bash, but the same concept could be done in any language, and the data could be converted into a native data structure rather than just processing a text list, if desired.


Android: *PickListeners not called on main thread

The methods called in the LabelPickListener, MarkerPickListener and FeaturePickListener are not called on the main (UI) thread, but on some GLThread, which is not documented and in my opinion also not desirable behavor since usually a "pick" of a feature, label or marker should do something visual on the screen, just as the callback made on a tap of a button is made on the UI thread.
Notably, the callback is even made on the GLThread when  mapController.pick* was called from the UI thread, i.e. the standard case:
	@Override public boolean onSingleTapConfirmed(float x, float y)
	{
		// I am on the UI thread
		controller.pickLabel(x,y);
		return true;
	}

	@Override
	public void onLabelPick(LabelPickResult labelPickResult, float positionX, float positionY)
	{
		// I am not on UI thread. This will crash the application.
		Toast.makeText(getContext(), "Crash me", Toast.LENGTH_SHORT).show();
	}

Actually, the above example does not even produce any error log on the console like it would normally happen when trying to do something UI on a non-UI-thread. Instead, it simply crashes with no further comment. I guess this has something to do with JNI/native code that can't be helped.
My suggested solution is to post the callback on the main thread by default.

Hey @westnordost ,
Thanks, this is a fair suggestion. You're right that there should be consistency with the callee thread and callback thread. For now, the workaround for you would be to call runOnUIThread from the listener callback, but this is not convenient for end-user.
I'll look into this shortly and make sure the UI thread is the one being called from the listener callbacks.

I've been aware of this situation for a while and have avoided changing the behavior because not all callbacks originate from the UI thread or require synchronization with the UI thread. In those cases, we're imposing a small, but unnecessary delay and synchronization cost. The most flexible option, as I see it, is to allow the user to perform any necessary synchronization.
There are some benefits to consistently running callbacks on the UI thread. It's more convenient in the case where the callback performs some View operation, as you mentioned. It also prevents a long callback operation from delaying the rendering loop, which is possible with the current implementation.
Just sharing my two cents here.

This is resolved by #1495 and will be available in the next release.

This is available now in 0.7.0


Add new InternalAffairs/MethodNameEndWith cop

Added new cop inspired by https://github.com/rubocop/rubocop/pull/10594#discussion_r862368888.
This cop checks potentially usage of method identifier predicates instead of method_name.to_s.end_with?.
example
# bad
node.method_name.to_s.end_with?('=')

# good
node.assignment_method?

# bad
node.method_name.to_s.end_with?('?')

# good
node.predicate_method?

# bad
node.method_name.to_s.end_with?('!')

# good
node.bang_method?

I also did some refactoring of existing cops to conform to this cop.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Thank you so much! I'll start fixing them.

I've fixed and updated except for https://github.com/rubocop/rubocop/pull/10600#discussion_r865547883.

Thanks!


Add Site Design export to Site Design Studio

Hello,
First of all, thanks for the great work.
The export option in Site Scripts is great but it would also be very useful to have a similar option for Site Designs, allowing to export to PowerShell and Office 365 CLI the commands to add the site design and associated site scripts.
Thanks

Hello,
First of all, thank you for the kind words, I am very happy that my work has actual value for folks in the community!
That is a great feedback!
TBH, it was part of my initial plans, but haven't had the time yet to work on that, I'll address that gap ASAP!
Regards,
Yannick

If anyone is willing to help with that feature, please reach out :)


Improve "welcome" message

It promotes a list of known relay servers to use
It gives a proof of work challenge to solve

The list of known relay servers allows us to not always use the same one,
distributing both cost and availability. It also allows to reboot single
relay servers for maintenance without bringing the whole service down. Each
client should pick one or two, this will result in up to four relays being
pinged during relay initialization (remember, there are two clients who both
pick at random). Four connection attempts should be enough to give a
sufficiently high probability of finding one that is up.
The proof of work challenge is added in the attempt to protect the rendezvous
server from a DOS overload. It is a single point of failure, and we want to
be prepared if some dumb-ass spams it with connection attempts for some reason.
The challenge is made in a way that its difficulty is configurable by the server,
thus it can dynamically adapt at the load situation. It is also designed in a
way to be as light on the server resource as possible (also in order to not
accidentally introduce a new DOS vector):

The server can use the first 8 bytes of the challenge as running counter, only
that needs to be stored. A binary heap gives
All other required information are stored and forwarded by the client, a MAC
protects against clients that make up their challenges.

Note that there is already an attempt + implementation at a "nameplate allocation now requires a token" (in the python mailbox server) .. I'd have to (further) remind myself where exactly that is at, but the idea was an open-ended way to demand more from clients. A "proof of work" (I'm assuming "like hashcash" here) token would of course fit in there.

Ahh, I think it was https://github.com/magic-wormhole/magic-wormhole/issues/126 ... I thought I had a branch that implemented most of that too but I can't immediately find it.

That sounds interesting, if you can dig out some details about it I'd be interested!
My current proposal for proof of work is some primitive brute-force task on a hash function. There are a lot of variations on the concept, this one is mostly optimized to minimize the server load. I'll try to investigate Verifiable Delay Functions. They obviously provide a lot more than what we need, but it'd be cool to find a one-way function that doesn't trivially parallelize. Maybe time lock puzzles or "proof of sequential work"?
Another thing that comes to my mind right now is that "nameplate allocation requires a token" is not enough to protect us – Claiming a mailbox directly is a pattern that will become more common when we have seeds.

https://github.com/magic-wormhole/magic-wormhole/issues/126#issuecomment-304058229 has some notes from a #magic-wormhole discussion between (at least) myself and warner.

I have seen that comment, but lacking the surrounding discussion context I don't fully understand the motivation for some of its aspects.
Most importantly, why have a separate abilities/permission round-trip if we can simply add fields onto the existing welcome/bind messages in a backwards-compatible way? Are there any issues with my proposal that I haven't thought of?
If we can't find the code, this will have to be re-implemented. But it shouldn't be too hard, it's a rather simple feature.

Also, any opinions on the relay discovery feature? (Maybe it was a bad idea to have both in one commit). I don't fully know which kinds of attributes one may want to advertise next to the URL (I could only think of "server location" for now). Also, the harder part – how the rendezvous server knows about 3rd-party relays – is not really part of the spec because clients can't be bothered. It however is something that needs to be figured out nevertheless.

Hm, what is the intended semantic of it, when multiple concurrent styles are supported? The client sends all those that it supports as abilities, and then the server picks one? If we let the client pick one that it supports I can make the scheme work with only one round-trip.
Furthermore, I'd like to call the "proof of account"/"proof of human" family as out of scope, as it is requires additional human interaction.

"proof-of-account" doesn't necessarily require additional human interaction. It certainly could require more action if it was e.g. "username + password"-based but a scheme could employ a keypair instead (for example). You're right that could be considered feature-creep on DoS .. but I do think it's worth considering (especially if it could fit in as a further, later enhancement to a DoS scheme).
After all, "in general" what we're talking about here is enhancing the protocol so that the server can ask for "something else" / more interaction from clients. Roughly speaking, an account system could be viewed as DoS / misuse prevention (e.g. for private deployments where any use outside your organization is unwanted).
As to relay-discovery I like the general idea .. but it's probably best expressed as its own enhancement, I think.

I see. I could make it that the server sends the challenge data for all of the possible types of POW/Captcha/Auth that it supports. The client then picks one and submits the answer. This does not add any new message types, and only half a roundtrip is added compared to previously.
The client can freely choose which challenge to do (or none at all, because backwards compatibility). The server can control which one it prefers by making the other ones more expensive (or not providing them).

https://github.com/magic-wormhole/magic-wormhole-protocols/pull/12 covers the proof-of-work parts of this proposal .. but I think the "list transit relays" piece is still interesting and useful; perhaps this could be trimmed down to just that?

Yes, I have not forgotten about this. My plan is to wait for #12 merged, and then rebase on top of that with the PoW changes taken out.

@meejah I've rebased and adapted to the latest changes. There are still a few open questions to resolve, but please have a look at it first.

@meejah I've rebased and adapted to the latest changes. There are still a few open questions to resolve, but please have a look at it first.

One other question that just up: What's the purpose of the error field? Where is it actually used, and what for? I think its main purpose got superseded by the permission-required field. Thus, I propose to deprecated it, and let clients ignore it. If the server wants to tell there's an error, it should use the error inbound message instead.
What do you think?

I believe the error field is for things like "This server is under maintenance, please try again". But it also has some "speculation" about CAPTCHAs etc in the text, so at least that part is superseded by `permission-required .. so I think it still has a purpose ("client should exit after displaying the message") but more narrow than previously anticipated..?

In order to not derail this thread too much, I opened https://github.com/magic-wormhole/magic-wormhole-protocols/issues/15 about error handling instead.

For the record, the hashcash branch is: https://github.com/meejah/magic-wormhole/tree/permissions-proof-of-concept


Ensure TestClient HTTP methods return a context manager

What do these changes do?
A user should be able to run a test as per the client documentation;
async with aiohttp.ClientSession() as session:
    async with session.get('https://api.github.com/events') as resp:
        print(resp.status)
        print(await resp.text())

However, because the test client doesn't return a context manager the above does not work (unless of course I'm doing something wrong).
This PR ensures the HTTP methods on TestClient return a context manager so that it mimics the same interface as a non-test client
Are there changes in behaviour for the user?
Yes, the TestClient will behave the same as the non-test client that their code will be using :)
Let's say or instance your code looked as follows;
# client request code
async request_hello(session):
    async with session.get('...') as resp:
        ...

Note the use of the context manager: async with session.get('...') as resp:
And your test was;
# pytest
from aiohttp import web

async def hello(request):
    return web.Response(text='Hello, world')

async def test_hello(test_client, loop):
    app = web.Application(loop=loop)
    app.router.add_get('/', hello)
    client = await test_client(app)
    resp = await request_hello(client)
    assert resp.status == 200
    ...

On master, this would fail, because TestClient does not return a context manager.
Related issue number
None.
Checklist

[x] I think the code is well written
[x] Unit tests for the changes exist
[x] Documentation reflects the changes
[x] Add yourself to CONTRIBUTORS.txt
[x] Add a new entry to CHANGES.rst

Current coverage is 98.51% (diff: 100%)

Merging #1318 into master will increase coverage by <.01%

@@             master      #1318   diff @@
==========================================
  Files            29         29
  Lines          6515       6516     +1
  Methods           0          0
  Messages          0          0
  Branches       1094       1094
==========================================
+ Hits           6418       6419     +1
  Misses           47         47
  Partials         50         50

Powered by Codecov. Last update de17c89...45c0597

Please resolve conflict in CHANGES.rst.
I'll merge the PR after this.

Rebased master onto my branch and force pushed.

Cool! Thanks!


Rust loader does not copy over the wasm file from the target directory correctly

As you can see from the screenshot, rust-wasm-webpack-template.wasm and rust_wasm_webpack_template.wasm have different filenames, but are the same file. For some reason, the filenames change during the webpack build process and it is causing errors because the web assembly module does not know where the web assembly file is and this causes errors.

fixed here: https://github.com/ianjsikes/rust-wasm-loader/pull/7

Try it without emscripten now that #10 has been merged. Should solve your problem.


fix(apps/prod/tekton/configs/triggers): disable tiflash mac target builds

Signed-off-by: wuhuizuo<EMAIL_ADDRESS>

why: we need to upgrade the builder's OS to support new C++ version.


fix(linkpanel): fixed link panel alignment.

Fixes the link panel, making it more logical in layout and alignment. Not the best css tricks there, but works for now.

@michaelkleinhenz snapshot fabric8-ui is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-1755-fabric8-planner.int.rdu2c.fabric8.io


Feature: Support different base font size for default classes

Right now, the base font size is 14pt for RN. Consider adding a way to set the base font size and let the rest of the default handlers extend from that.

Completed via #15


CONTACT FREE CSS

@cityofbayawan @marysalva @kennethvalor
Asking For Technical Help
We only offer technical help for templates that we have created and or have been part of.
If you require technical help for any reason, please contact the developer / author of the template in question directly.
Each template in our website has its own page, on the templates page you can see the name of the "Author" next to a small icon depicting a person - the author is the developer of that specific template. If it states "Free CSS", then we are the developer / author, in this situation we offer technical help (only in this situation).
In general, you can find the contact details for the templates developer in the file you downloaded from our server(s), either via the "README" or "Licence" file. If there isn't a file, you can click the footer link in the template which will take you to the developers website, where you can then contact them.
Some template developers do not provide free technical help or offer help at all for their free templates, in this case, you will have to seek technical help from your developer of choice or someone who has good working knowledge of HTML + CSS.
Templates Licences Information
Our website features thousands of templates from developers throughout the world. Each developer has chosen a licence type that best serves their needs.
Displayed on each of the template pages is a basic overview of the licence used for said template - if you require more specific information about which licence is in use, please contact the developer of the template directly.
To contact the developer, please follow the instructions as described above.
About The Templates In Our Site
Templates found within the Free CSS website are "HTML" templates, they are not WordPress themes or any other pre-built / pre-ported CMS theme, template or skin.
You can not simply upload the HTML template to your WordPress theme folder and activate the template, it won't work.
To use the templates found here in any form of CMS system, they have to be ported first. For more information we suggest you check out the numerous tutorials that can be found on the web on "how to port a HTML template" to your specific CMS of choice.
Our Details
For any other information please feel free to contact Free CSS via "info AT

Websitebloger".
Due to the amount of emails that Free CSS receives it may take a while for you to receive a response. Free CSS apologises for this but be rest assured all emails are read and where applicable are answered.

@cityofbayawan try to update


Running Kourami with non human MHC

Is there a chance to run Kourami with my own list of non human MHC alleles?

Hi @drtamermansour, I wanted to ask the same thing. Did you manage this to work on your own?

No. I stoped this project @sbgLuka

Fundamentally, it's possible but some modifications will need to be made. How many alleles do you have per locus?