Tensorflow and Flask reloader not playing nicely

Expected Behavior

When running flask via flask run --reload, importing TensorFlow should not cause an error. Leaving out the --reload flag does work.
# Paste a minimal example that causes the problem.
import tensorflow
from flask import Flask
app = Flask(__name__)

Actual Behavior
This error occurs:
Traceback (most recent call last):
  File "venv/bin/flask", line 10, in <module>
    sys.exit(main())
  File "venv/lib/python3.7/site-packages/flask/cli.py", line 966, in main
    cli.main(prog_name="python -m flask" if as_module else None)
  File "venv/lib/python3.7/site-packages/flask/cli.py", line 586, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "venv/lib/python3.7/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "venv/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "venv/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "venv/lib/python3.7/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "venv/lib/python3.7/site-packages/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "venv/lib/python3.7/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "venv/lib/python3.7/site-packages/flask/cli.py", line 860, in run_command
    extra_files=extra_files,
  File "venv/lib/python3.7/site-packages/werkzeug/serving.py", line 1050, in run_simple
    run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
  File "venv/lib/python3.7/site-packages/werkzeug/_reloader.py", line 337, in run_with_reloader
    reloader.run()
  File "venv/lib/python3.7/site-packages/werkzeug/_reloader.py", line 202, in run
    for filename in chain(_iter_module_files(), self.extra_files):
  File "venv/lib/python3.7/site-packages/werkzeug/_reloader.py", line 24, in _iter_module_files
    filename = getattr(module, "__file__", None)
  File "venv/lib/python3.7/site-packages/tensorflow/__init__.py", line 50, in __getattr__
    module = self._load()
  File "venv/lib/python3.7/site-packages/tensorflow/__init__.py", line 44, in _load
    module = _importlib.import_module(self.__name__)
  File "/Users/mulka/.pyenv/versions/3.7.6/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'tensorflow_core.keras'

Environment

Python version: 3.7.6
Flask version: 1.1.1
Werkzeug version: 1.0.0
TensorFlow version: 2.1.0

It's not clear that Werkzeug's reloader is doing anything in particular that would affect this. This is something tensorflow will have to address.

@davidism Unfortunately I wasn't able to reproduce this with just Werkzeug. I could only reproduce it with the flask run command. For example, this seems to work ok:
import tensorflow
from werkzeug.wrappers import Request, Response
from werkzeug.serving import run_simple

@Request.application
def application(request):
    return Response('Hello, World!')

run_simple('localhost', 4000, application, use_reloader=True)

Try turning off lazy loading: flask run --eager-loading. That's the only thing Flask really adds, it tries to load the app in a thread to survive syntax errors. If that's messing with Tensorflow, I don't think there's much we can do.

Thank you. It looks like adding the --eager-loading flag did fix it.


compiler selection could be more lenient/helpful

when building using pydexe I noticed these:
--compiler=ldc2 gives the error message
error: don't know how to compile C/C++ code on platform 'posix' with 'ldc2' compiler
whereas it would be nice if it knew that ldc2 is the same as ldc. A better error message would be enough though, so the user knows what's going on.
--compiler=gdc gives the error
gdc does not support building shared libraries, so python extensions are out of the question
for some reason build_exe isn't being set
There doesn't appear to be any support for ldmd(2) or gdmd. At the very least it would be good if a more useful error message was given.

for gdc, you're using python setup.py pydexe?

Yes

probably should add an optional flag --compiler-cmd that would point pyd at a nonstandard executable.
hopefully, this would be sufficient for ldmd and gdmd.

I don't understand the distutils patching well enough to fix it, but I think it should be simple to at least redirect --compiler=ldc2 to ldc

try alias_ldc2

travis_build fixes the gdc issue (and uncovers a worse one which I can't reasonably fix)


Module not found: Can't resolve 'nsfw-filter'

???

./pages/restore.tsx:18:0
Module not found: Can't resolve 'nsfw-filter'
  16 | import appendNewToName from '../utils/appendNewToName';
  17 | import downloadPhoto from '../utils/downloadPhoto';
> 18 | import NSFWFilter from 'nsfw-filter';
  19 | import { useSession, signIn } from 'next-auth/react';
  20 | import useSWR from 'swr';
  21 | import { Rings } from 'react-loader-spinner';

https://nextjs.org/docs/messages/module-not-found

I'm experiencing the same error...

me too, same error..

./pages/restore.tsx:18:0
Module not found: Can't resolve 'nsfw-filter'
  16 | import appendNewToName from '../utils/appendNewToName';
  17 | import downloadPhoto from '../utils/downloadPhoto';
> 18 | import NSFWFilter from 'nsfw-filter';
  19 | import { useSession, signIn } from 'next-auth/react';
  20 | import useSWR from 'swr';
  21 | import { Rings } from 'react-loader-spinner';

https://nextjs.org/docs/messages/module-not-found

I'm experiencing the same error...

me too, same error..

I used npm install nsfw-filter and npm install again, didn't work.


clasp list formatting is off

Expected Behavior
clasp list produces a visually appealing list of scripts
Untitled project     – https://script.google.com/d/1rz5Mi-EcY9gKeFTjbVljt2duTdP_60un-pCSxVVSpTZhDv6C6K91k6fc/edit
Library              – https://script.google.com/d/1IEgAxCWzTEr8HYV_XJSTDgYqRvCTMcXyrXGBpcfbJEq9HtDJ-iQPsfS8/edit
cal                  – https://script.google.com/d/11mRqlw5hNHxes19MvuWApbfpVXC4lMnDbvxNA6nzjYGRrbh4U0YCYCYr/edit
BigQuery Advanced…   – https://script.google.com/d/1fCBtd67gun0suEq5FQIq1lbk5ZtKMLzKNsMfqOefHk9vNB7B-agQP3Ba/edit
Untitled project     – https://script.google.com/d/137fcd6M-D6RslJQGMCWnr70EyUx21AwVnsHqpkjQMWQixQdD2ftPl1-G/edit
Clasp1.6             – https://script.google.com/d/1CH7k_fZN5O3bTIvkKRkQb4Whr34Ske-Vwonmmnx-ESFc4ZLLspKh6Jlo/edit

Actual Behavior
The list of scripts isn't very pretty.
Untitled project     – https://script.google.com/d/1rz5Mi-EcY9gKeFTjbVljt2duTdP_60un-pCSxVVSpTZhDv6C6K91k6fc/edit
Library              – https://script.google.com/d/1IEgAxCWzTEr8HYV_XJSTDgYqRvCTMcXyrXGBpcfbJEq9HtDJ-iQPsfS8/edit
cal                  – https://script.google.com/d/11mRqlw5hNHxes19MvuWApbfpVXC4lMnDbvxNA6nzjYGRrbh4U0YCYCYr/edit
BigQuery Advanced Services – https://script.google.com/d/1fCBtd67gun0suEq5FQIq1lbk5ZtKMLzKNsMfqOefHk9vNB7B-agQP3Ba/edit
Untitled project     – https://script.google.com/d/137fcd6M-D6RslJQGMCWnr70EyUx21AwVnsHqpkjQMWQixQdD2ftPl1-G/edit
Clasp1.6             – https://script.google.com/d/1CH7k_fZN5O3bTIvkKRkQb4Whr34Ske-Vwonmmnx-ESFc4ZLLspKh6Jlo/edit

Steps to Reproduce the Problem

Have a script with a title >20 chars.
Observe clasp list doesn't look great.

Fixed with https://github.com/google/clasp/commit/461edb7efa12fd750c0e9151ba802fc65aa516ca.


"Current time" value gets stuck when controls are hidden

Current Behavior:
The "current time" value seems to get stuck when the controls are hidden.
Steps To Reproduce:
Repro Example 1:

Click the "Play" button, and move the mouse away from the player immediately (so that the controls hide).
Wait about 30 seconds.
Tap the right arrow key, and notice that it jumps to around the 0:15 mark instead of jumping ahead 10 seconds.  If you were to tap the left arrow key, it would have jumped to around 0:00.

Repro Example 2:

Same as step 1 above
Same as step 2 above
Move the mouse back over the player.  You should notice that the current time shows the wrong value for about half a second.

Reproduction Link:
You can reproduce it on the Vidstack homepage.
https://www.vidstack.io/
Environment:
OS: Windows 10
Browsers: Chrome 123.0 and Firefox 124.0

Thank you, @mihar-22! 😄


[API] Support HTTP API's from API Gateway

Is your feature request related to a problem? Please describe.
HTTP API's were released about a year ago now. Customers can benefit from reduced cost, latency and complexity for many use cases.
Describe the solution you'd like
Amplify CLI should be able to add HTTP API, e.g. via amplify add api.
Describe alternatives you've considered
Currently setting them up outside of amplify via cli/CF/console. Would prefer to have them as part of integrated Amplify IaC and cli experience.

Is there any way to manually modify the template file to support http api, thanks

Would ❤ this!

Would ❤ this!

Really looking forward to this!

Really looking forward to this!

No idea why this hasn't been added yet, HTTP APIs in Amazon API Gateway have been out for a long time now...Amplify CLI even added Fargate support, yet not HTTP APIs? Questionable prioritization of features.

Any updates on this feature?


Getting error while trying the conversion

While I try to convert the model, I keep getting the error where

I am not sure what is wrong because the Keras model looks fine(I was able to start its training)

Try assign a fixed shape for input layer when converting yolo weight to h5.
Modify convert.py line 83 to
input_layer = Input(shape=(416, 416, 3))
and convert h5 again, then run cormel.py to convert h5 to cormel model.

When I do that, I get an error in conversion

Figured this one out but still ran into the first issue where it expects 3 params but gets only 1. I am not sure what is going wrong

Hi there!
I am stuck with the same error.
The process is the following:

The v3 model is trained
Then conversion is done via https://github.com/qqwweee/.
The converted model should then be convertible using the provided script, but coremltools complains:

...
42 : conv2d_10, <keras.layers.convolutional.Conv2D object at 0x1126a3400>
43 : conv2d_13, <keras.layers.convolutional.Conv2D object at 0x1126a3588>
Traceback (most recent call last):
  File "convertml.py", line 3, in <module>
    coreml_model = coremltools.converters.keras.convert('./model_data/yolo.h5', input_names='input1', image_input_names='input1', output_names=['output1', 'output2', 'output3'], image_scale=1/255.)
  File "/usr/local/lib/python3.6/site-packages/coremltools/converters/keras/_keras_converter.py", line 745, in convert
    custom_conversion_functions=custom_conversion_functions)
  File "/usr/local/lib/python3.6/site-packages/coremltools/converters/keras/_keras_converter.py", line 543, in convertToSpec
    custom_objects=custom_objects)
  File "/usr/local/lib/python3.6/site-packages/coremltools/converters/keras/_keras2_converter.py", line 350, in _convert
    image_scale = image_scale)
  File "/usr/local/lib/python3.6/site-packages/coremltools/models/neural_network.py", line 2542, in set_pre_processing_parameters
    channels, height, width = array_shape
ValueError: not enough values to unpack (expected 3, got 1)

Solution Hints:
the output of the keras application is:
...
Parsing section upsample_0
Parsing section route_1
Concatenating route layers: [<tf.Tensor 'up_sampling2d_1/ResizeNearestNeighbor:0' shape=(?, ?, ?, 128) dtype=float32>, <tf.Tensor 'leaky_re_lu_5/LeakyRelu/Maximum:0' shape=(?, ?, ?, 256) dtype=float32>]
Parsing section convolutional_11
conv2d bn leaky (3, 3, 384, 256)
Parsing section convolutional_12
conv2d    linear (1, 1, 256, 141)
Parsing section yolo_1

What I figured, is that the last conv2d layer is not batch normalized, which has an effect on how keras-yolo3 converts the weights (https://github.com/qqwweee/keras-yolo3/blob/master/convert.py#L93-L182)
Maybe the weights get mangled in the wrong way in the case of non-normalized batches?
I will ping you if I find out some more.
If you have any hints, I would be happy to hear about them!
Thanks a lot!

I am not very familiar with the Keras model but it seems strange if the batch-normalizatioon can change the shape because usually we would not expect any change in the shape due to it. Having said that, I am completely clueless anyways.

The version of used components are
python 3.6.5
tensorflow 1.7.0
h5py 2.7.1
Keras 2.1.6
coremltools 0.8

Aha so @Ma-Dan according to you, this failure is because of version mismatch?

@inosms @Ma-Dan I have no idea how to have this working. Any sort of help shall be highly appreciated

I was able to handle the conversion part by using the code:-
coreml_model = coremltools.converters.keras.convert('./model_data/yolo.h5', input_names='input_1', image_input_names='image', output_names = ['output','output2'],image_scale=1/255.)
However, when I try running the converted coreml model, I get the error stating:-
coremlc: compiler error:  Input shapes (height and width dimensions) must be equal for layer: 'concatenate_1'. and I have no idea how in the world to solve it

Have you specified input width and height when converting yolo weights to Keras h5？

@Ma-Dan your first solution of input_layer = Input(shape=(416, 416, 3)) worked fine. Thank you.

Made sure requirements satisfy the ones provided by @Ma-Dan and edited the line in convert.py (it was line 88 for me). Then it worked. Tanks!


Add support for Hive S3 security mapping

Add support for Hive S3 security mapping: https://trino.io/docs/current/connector/hive-s3.html#s3-security-mapping

Just a thought, but maybe this and kafka part of current Helm chart should be refactored to generic config map as file mounting?


How do I use x86-windows-static

Hi,
I'm trying to install boost for x86 static but it seems there is only the x64 version. Is x86-windows-static deprecated? I know I could install boost 1.21.0 version for x86-windows-static.
Thanks

Hi @illera88
Does vcpkg install boost:x86-windows-static not work for you?
The Boost version currently on vcpkg master is 1.72.
I would add that x86-windows-static is a "Community Triplet" which means that we don't do regression testing for that specific triplet but it could still work for you.

It does not:
Warning: Different source is available for vcpkg (2019.9.12 -> 2020.1.17). Use .\bootstrap-vcpkg.bat to update.
Error: invalid triplet: x86-windows-static
Available architecture triplets:
  arm-uwp
  arm64-windows
  community
  x64-linux
  x64-osx
  x64-uwp
  x64-windows
  x64-windows-static
  x86-windows

I guess that the triplet is not being set up for 32 bits systems.

Short answer:
You need to rebuild vcpkg by  running /bootstrap-vcpkg.bat and then try again.
Long answer:
You have a vcpkg.exe that precedes the move of x86-windows-static to the community triplets folder (<vcpkg path>/triplets/community/). You need to rebuild vcpkg (by running the bootstrap again) with the latest sources so that vcpkg knows to search for triplets in the community folder. If you have a reason you cannot rebuild vcpkg then you can move the x86-windows-static triplet back into the root of the triplets folder.


Signup From label mismatch for error handling

I'm submitting a
(Check one with "x" from given options)

[x] Bug report
[ ] Feature request

Current behavior
In sign up form when a user chooses a fully numeric password and clicks the submit button, the server returns a validation error but it does not get displayed under the password's form field.
Expected behavior
The system should show the validation error message under the password's form field.
Steps to reproduce

Open signup form.
Fill the password field with number.
Click submit button.
No validation error is shown.

Related screenshots

Other information

System information
Ubuntu 18.04 LTS

@Shekharrajak I've been able to fix this issue locally, the problem is that when the validation error is returned the field name is "password1" and when this label is passed to formItemForLabel function, it is unable to fetch the form item since the relevant form item has the label "password" and not "password1".
If we change the label to "password1" then it does gets fixed but then the label for the password field is "Password 1" which I think is not acceptable.
Other way to solve it is to fix the field on backend. What do you say?

@Shekharrajak I've done some research on backend and I see that rest_auth is being used and it requires the password fields to be password1 and password2.
Reference: https://django-rest-auth.readthedocs.io/en/latest/api_endpoints.html#registration
What do you say?

Thanks @mtahafarooq  for pointing it out. Can you check once how this functionality works in https://github.com/Cloud-CV/EvalAI repo and if you find the same issue there as well, then we will go to backend otherwise front-end change will be sufficient.

@Shekharrajak it does not appear there. Should I make a PR with the fix?

@mtahafarooq , Yes go ahead .

Fixed https://github.com/Cloud-CV/EvalAI-ngx/pull/124


Standard Filters missing

Zend's standard filters are now absent from the filters list. This is from a download of the 1.3.2 archive and straight up vagrant up.

Looks like it is ignoring the filter_metadata array key and instead looking for the filters->invokables key. If I add a list of Zend Filter names there, they appear.

These are the only 2 filters available in v 1.3.3

Hi @spectravp. Actually it's not a problem in the UI, but in the admin module as in https://github.com/zfcampus/zf-apigility-admin/issues/337.

I believe this is resolved now; please update to the latest admin and/or admin-ui releases, and verify. Re-open the issue if you are still observing a problem, and provide the following details:

Results of executing composer show
A screenshot like you did before, demonstrating what you observe in the select box.

Thanks!


Indexable properties get's persisted in the Description managed property

Category

[x] Question
[x] Bug?

Expected or Desired Behavior
The properties should be perhaps searchable by default, and get their own crawled properties.
Observed Behavior
By adding
protected get propertiesMetadata(): IWebPartPropertiesMetadata {     return {       'Foo': { isHtmlString: true },       'Bar': { isHtmlString: true }     };   }
into my SPFx web part, the values of those properties appear concatenated in the Description managed property. This means I need to type: Description:term in order to get a match.
Is this a bug or by design? Seems to me a property named Foo should get a crawled property named ows_Foo which I can map as I please - making it default searchable, or at least not tied to using the Description managed property.

@patmill any input on this?

Hi Mikael - sorry for not responding here.  I was looking at the sp-dev-docs issues list.
So the current implementation of this should result in all of the webpart content being in the index with the rest of the page content.  The goal being primarily to surface all of the user content in the full text index, rather than having arbitrary crawled / managed properties.  It is something we could consider in the future, but would require a fair chunk of work.  I'll bubble up the request though.  Thanks,

Thank you @patmill. But it still doesn't make sense that all web part properties are appended to the Description managed property upon indexing, or? So some work is already in place here ;)
I do get the point of having custom properties as part of the fti, but using this as a way to add metadata instead of doing content types seems to make a whole lot of sense to me. But at least I know how the current implementation works.

I am facing slightly different issue in which I want SPFX webpart content to be crawled and popup in search result but it doesn't. Any idea how I can make it work or it is something that current implementation does not support. Please provide valuable inputs... @wobba @patmill

@Divyeshkotadia by adding the function in my question - propertiesMetadata(), you should be able to specify which web part properties are added to the index. If you want the rendered html crawled, you need to add that as part of a webpart property.

@wobba thanks for your prompt response.. I have tried what you mentioned but it does not work out... Is it possible for you to share sample code.. Secondly will it work on classic pages as well because my implementation is used on those pages and content that user has entered should be searchable through search. Let me know if you don't relate any part of my query...
Thank you very much...Cheers!!!

Here's a sample React part:
`
import * as React from 'react';
import * as ReactDom from 'react-dom';
import { Version } from '@microsoft/sp-core-library';
import {
BaseClientSideWebPart,
IPropertyPaneConfiguration,
PropertyPaneTextField,
IWebPartPropertiesMetadata
} from '@microsoft/sp-webpart-base';
import * as strings from 'puzzlepartMetadataStrings';
import PuzzlepartMetadata from './components/PuzzlepartMetadata';
import { IPuzzlepartMetadataProps } from './components/IPuzzlepartMetadataProps';
import { IPuzzlepartMetadataWebPartProps } from './IPuzzlepartMetadataWebPartProps';

export default class PuzzlepartMetadataWebPart extends BaseClientSideWebPart<IPuzzlepartMetadataWebPartProps> {

  public render(): void {
	const element: React.ReactElement<IPuzzlepartMetadataProps> = React.createElement(
	  PuzzlepartMetadata,
	  {
		Keywords: this.properties.Keywords,
		Kash: this.properties.Kash
	  }
	);

	ReactDom.render(element, this.domElement);
  }

  protected get dataVersion(): Version {
	return Version.parse('1.0');
  }

  protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
	return {
	  pages: [
		{
		  header: {
			description: strings.PropertyPaneDescription
		  },
		  groups: [
			{
			  groupName: strings.BasicGroupName,
			  groupFields: [
				PropertyPaneTextField('Keywords', {
				  label: strings.KeywordsFieldLabel
				}),
				PropertyPaneTextField('Kash', {
				  label: "Extra"
				})
			  ]
			}
		  ]
		}
	  ]
	};
  }

  protected get propertiesMetadata(): IWebPartPropertiesMetadata {
	return {
	  'Keywords': { isHtmlString: true },
	  'Kash': { isHtmlString: true }
	};
  }
}

`

Thanks a ton @wobba appreciated your efforts.
We tried propertiesMetadata() method and following are the behavior we are getting:

Content does not appear in the Search results for classic pages.
For modern pages, the behavior is even more baffling.  It actually indexes content with a webpart ID as a prefix to the Search text.  The user would then need to enter a search string that looks like this: “{WebpartID}SearchText”.

Please let us know your valuable comments.


fix(vite-plugin-nitro): fix prerender from content directory

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/analogjs/analog/blob/main/CONTRIBUTING.md#-commit-message-guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[-] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

Which package are you modifying?

[ ] vite-plugin-angular
[x] vite-plugin-nitro
[ ] astro-angular
[ ] create-analog
[ ] router
[ ] platform
[ ] content
[ ] nx-plugin
[ ] trpc

What is the current behavior?

https://github.com/analogjs/analog/issues/894
Closes #
What is the new behavior?
The user can specify the contentDir with and without adding '/' as first character
Does this PR introduce a breaking change?

[ ] Yes
[x] No

While setting up the content directory the user has access to "transform" property, that's a callback. The callback is being called with the object returned by getMatchingContentFilesWithFrontMatter as its argument. Property "path" used to be always starting with '/' as first character but it's not anymore. Right now it's a relative path from root to content directory. I think that's the expected behavior.
Other information
[optional] What gif best describes this PR or how it makes you feel?

I don't know why is the pipeline red, but I've noticed it was also red for this one: https://github.com/analogjs/analog/pull/893 so I assume that's not on me :D Let me know if I have to do anything

Thanks! @allcontributors add @remes2000 for code


Update stable version in repo from 1.0.7 to 1.1.0

Think about update stable version to 1.1.0
Version: stable=1.0.7 (98 days old) => latest=1.1.0 (15 days old)
Installs: stable=32 (72.73%), latest=7 (15.91%), total=44
Click to use developer portal
Click to edit
Do not close this issue manually as a new issue will be created if condition for update still exists.
Please drop a comment if any reason exists which blocks updating to version 1.1.0 at this time.
Note: This is an automatically generated message and not personally authored by bluefox!
@mcm1957 for evidence

PR is placed


How to reference different fixtures types that start by the same name?

In the following example, how to make the difference between dummy and dummy_configuration?
In this case it seems AliceBundle try to pass in Product a DummyConfiguration instead of a Dummy.
# app/Resources/fixtures/orm/product.yml
AppBundle\Entity\Product:
    product_{1..10}:
        name: <name()>
        dummy: '@dummy*'

# app/Resources/fixtures/orm/dummy.yml
AppBundle\Entity\Dummy:
    dummy_{1..10}:
        name: <name()>

# app/Resources/fixtures/orm/dummy_configuration.yml
AppBundle\Entity\DummyConfiguration:
    dummy_configuration_{1..10}:
        name: <name()>

For the time being I just added a prefix to make AliceBundle able to differentiate them.

I reopen, because I think that should be managed differently. The user should not have to add prefix as a workaround. May be AliceBundle could browse every name with the given pattern @dummy* and if there are different names (here dummy and dummy_conf), select the shorter one, here dummy, instead of dummy_configuration.

Follow up in #672


Universal Packages Download task fails on x86 self hosted agents

The error is:
Error: Failed to get artifact tool metadata from source url https://uipath.vsblob.visualstudio.com/_apis/clienttools/artifacttool/release?osName=windows&arch=ia32
Environment

Server - Azure Pipelines
Agent - Private:

Windows 7 Agent.OSVersion | 6.1.7601, Agent.Version | 2.141.0
But it does not really matter, it happens on any x86 OS
Issue Description
You can find the debug logs:
universal_package_w7_x86_log.zip

@bogdancucosel is this still happening?

@alexmullans sorry for the late reply.
I just checked, now i get a message like :
##[error]Failed to get artifact tool. Universal Packages require an x64 agent.
So, this is not going to work ?

Unfortunately we don't currently produce an x86 version of Artifact Tool. We'll need to look into our dependency graph to see whether we can support it.

@bogdancucosel I managed to produce a test build of a win7-x86 compatible version of our artifact tool. Let me know if you are interested in trying it out (we haven't pushed it through the release pipeline, we are just trying to see whether it can work at all initially).

@mitchdenny yes please, how do I do that ?

Shoot me an e-mail at midenn at microsoft com and I'll walk you through how to try it out.

Hey people @bogdancucosel  & @mitchdenny , did you both reconvene here?

I gave @bogdancucosel a private build that worked for x86 just to validate it works (not supported) but there was no immediate plans to support x86.

Though that would be great.
We use x86 agents for testing and we are currently using Azure to upload and download stuff.
People using this do not necessarily have access to Azure, nor they know how to use it.
So, for us it would really make sense to have this.

@infin8x - we support x86 build agents in azure pipelines.  can we get this added?

Added to the backlog, but not something we'll get to this quarter. Will see where it falls on next quarter's stack of Universal Package asks.

Ok, thanks


Fixing http adapter to allow HTTPS connections via HTTP

##Summary
We are using axios at Contentful for both our JS SDKs contentful.js and contentful-management.js.
Axios was assuming always that the proxy protocol is the same as the URL it is requesting. This a problem when you use a http proxy when requesting data from https endpoint.
see more at https://github.com/mzabriskie/axios/issues/925 and https://github.com/mzabriskie/axios/issues/753
Purpose of the PR
This PR make httpAdapter to allow https connections via http by introducing a new config param to the proxy object called isHttps which defaults to false
TODO

[ ] Add Integration test ?
[ ] Add documentation

Coverage remained the same at 93.734% when pulling 27375aabf08a8039f427fff37ffc772901603d5a on contentful:fix/https-via-http-proxy into 46e275c407f81c44dd9aad419b6e861d8a936580 on mzabriskie:master.

Coverage remained the same at 93.734% when pulling b829df33e5a8071b0fe850085f3f6d0e7df091a0 on contentful:fix/https-via-http-proxy into 46e275c407f81c44dd9aad419b6e861d8a936580 on mzabriskie:master.

Coverage remained the same at 93.734% when pulling b2c7cb4dc18f00bf8eb189d3e74f6be2bc5b571a on contentful:fix/https-via-http-proxy into 46e275c407f81c44dd9aad419b6e861d8a936580 on mzabriskie:master.

Coverage remained the same at 93.734% when pulling e6c944fbfe14cd1af37f4a689388590393c52fa0 on contentful:fix/https-via-http-proxy into 46e275c407f81c44dd9aad419b6e861d8a936580 on mzabriskie:master.

Coverage remained the same at 93.734% when pulling 486c956313b4937d83202ae72304d3eb210487bb on contentful:fix/https-via-http-proxy into 46e275c407f81c44dd9aad419b6e861d8a936580 on mzabriskie:master.

@mzabriskie When is this going to get merged and released? I need it for a project I'm working on and will need to move to something else if it's not going to be soon

Please merge this, for now, we have to use the contentful 3.8.1 as a work around.

Please remove all changes relating the package.json and the generated files in dist as that would be part of our release process.

Please merge this, I need this behavior for my project. I was recently switched to axios from request.js.

Coverage remained the same at 93.812% when pulling e9a9c62ce02115f7a4d7f197ba43362dcf0ea3d0 on contentful:fix/https-via-http-proxy into 07a7b7c84c3ea82ea3f624330be9e0d3f738ac70 on mzabriskie:master.

<3

Please merge this, i need this for a project that i working on.
Thanks.

Can we get this merged? We're also having issues with this, and are using a fork for now.

FWIW: It would be excellent to see this merged in sometime :)

Doesn't fix the real problem for me. Instead, fails with a nicer (and faster) error:
Error: Protocol "http:" not supported. Expected "https:"

@mrchief are you trying to connect to an HTTP endpoint through an HTTPS proxy? Do you have a small code snippet that fails?

@zcei I was using Fiddler proxy. I set it up to decrypt HTTPS traffic so that it listens for https requests.
I don't have any small snippet but it should be reproducible fairly easily by:

configure fiddler proxy to decrypt https
start node with  NODE_TLS_REJECT_UNAUTHORIZED=0 env var (this is to allow the self signed fiddler cert to pass thru - you can probably pass the cafile instead but I don't find it worth the hassle for this small test)
run unit tests or make a call to any mock HTTPS API (requestbin, mockbin etc. will work) via axios.

Did you pass it like this literal value? '<IP_ADDRESS>:8888'? Pretty sure it should be 'https://<IP_ADDRESS>:8888' then, to indicate your intention to connect via HTTPS

Tried passing it as https://.... This time its a different error and looks all weird. Here are the axios configs (some parts redacted):
 Message -> getaddrinfo ENOTFOUND https://<IP_ADDRESS> https://<IP_ADDRESS>:8888
 ---------------------------------------------------------
 Config -> { adapter: [Function: httpAdapter],
   transformRequest: { '0': [Function: transformRequest] },
   transformResponse: { '0': [Function: transformResponse] },
   timeout: 0,
   xsrfCookieName: 'XSRF-TOKEN',
   xsrfHeaderName: 'X-XSRF-TOKEN',
   maxContentLength: -1,
   validateStatus: [Function: validateStatus],
   headers:
    { Accept: 'application/json, text/plain, */*',
      Authorization: 'Bearer ...',
      'User-Agent': 'axios/0.16.2',
      host: 'api.test.io' },
   method: 'get',
   url: 'https://api.test.io/test',
   params: { ... },
   data: undefined,
   proxy: { host: 'https://<IP_ADDRESS>', port: 8888 } }
 ---------------------------------------------------------
 Request -> Writable {
   _writableState:
    WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      bufferedRequest: null,
      lastBufferedRequest: null,
      pendingcb: 0,
      prefinished: false,
Emitted: false,
      bufferedRequestCount: 0,
      corkedRequestsFree:
       { next: null,
         entry: null,
         finish: [Function: bound onCorkedFinish] } },
   writable: true,
   domain: null,
   _events:
    { response: [Function: handleResponse],
: [Funct] },
   _eventsCount: 2,
   _maxListeners: undefined,
   _options:
    { maxRedirects: 21,
      protocol: 'http:',
      hostname: 'https://<IP_ADDRESS>',
      port: 8888,
      path: 'https://api.test.io/test?...',
      method: 'get',
      headers:
       { Accept: 'application/json, text/plain, */*',
         Authorization: 'Bearer ...',
         'User-Agent': 'axios/0.16.2',
         host: 'api.test.io' },
      agent: undefined,
      auth: undefined,
      host: 'https://<IP_ADDRESS>',
      pathname: 'https://api.test.io/test',
      search: '?...' },
   _redirectCount: 0,
   _bufferedWrites: [],
   _onNativeResponse: [Function],
   _currentRequest:
    ClientRequest {
      domain: null,
      _events:
       { response: { [Function: bound onceWrapper] listener: [Function] },
         socket: [Function],
         abort: [Function],
         aborted: [Function],
: [Function] },
      _eventsCount: 5,
      _maxListeners: undefined,
      output: [],
      outputEncodings: [],
      outputCallbacks: [],
      outputSize: 0,
      writable: false,
      _last: true,
      upgrading: false,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket:
       Socket {
         connecting: false,
: true,
         _handle: null,
         _parent: null,
         _host: 'https://<IP_ADDRESS>',
         _readableState:
          ReadableState {
            objectMode: false,
            highWaterMark: 16384,
            buffer: BufferList { head: null, tail: null, length: 0 },
            length: 0,
            pipes: null,
            pipesCount: 0,
            flowing: true,
            ended: false,
            endEmitted: false,
            reading: true,
            sync: false,
            needReadable: true,
            emittedReadable: false,
            readableListening: false,
            resumeScheduled: false,
            destroyed: true,
            defaultEncoding: 'utf8',
            awaitDrain: 0,
            readingMore: false,
            decoder: null,
            encoding: null },
         readable: false,
         domain: null,
         _events:
          { end: { [Function: bound onceWrapper] listener: [Function: onend] },
            finish: [Function: onSocketFinish],
            _socketEnd: [Function: onSocketEnd],
            connect:
             [ { [Function: bound onceWrapper] listener: [Function: oncreate] },
               { [Function: bound onceWrapper] listener: [Function: connect] },
               { [Function: bound onceWrapper] listener: [Function] } ],
            free: [Function: onFree],
            close: [ [Function: onClose], [Function: socketCloseListener] ],
            agentRemove: [Function: onRemove],
            drain: [Function: ondrain],
:Listener] },
         _eventsCount: 9,
         _maxListeners: undefined,
         _writableState:
          WritableState {
            objectMode: false,
            highWaterMark: 16384,
            finalCalled: false,
            needDrain: false,
            ending: false,
            ended: false,
            finished: false,
            destroyed: true,
            decodeStrings: false,
            defaultEncoding: 'utf8',
            length: 1456,
            writing: true,
            corked: 0,
            sync: false,
            bufferProcessing: false,
            onwrite: [Function: bound onwrite],
            writecb: [Function: bound onFinish],
            writelen: 1456,
            bufferedRequest: null,
            lastBufferedRequest: null,
            pendingcb: 1,
            prefinished: false,
Emitted: true,
            bufferedRequestCount: 0,
            corkedRequestsFree:
             { next: null,
               entry: null,
               finish: [Function: bound onCorkedFinish] } },
         writable: false,
         allowHalfOpen: false,
         _bytesDispatched: 0,
         _sockname: null,
         _pendingData: 'GET https://api.test.io/test?... HTTP/1.1\r\nAccept: application/json,
 text/plain, */*\r\nAuthorization: Bearer ...\r\nUser-Agent: axios/0.16.2\r\nhost: api.test.io\r\nConnectio
n: close\r\n\r\n',
         _pendingEncoding: 'latin1',
         server: null,
         _server: null,
         parser: null,
         _httpMessage: [Circular],
         read: [Function],
         _consuming: true,
         _idleNext: null,
         _idlePrev: null,
         _idleTimeout: -1,
         [Symbol(asyncId)]: 292884,
         [Symbol(bytesRead)]: 0 },
      connection:
       Socket {
         connecting: false,
: true,
         _handle: null,
         _parent: null,
         _host: 'https://<IP_ADDRESS>',
         _readableState:
          ReadableState {
            objectMode: false,
            highWaterMark: 16384,
            buffer: BufferList { head: null, tail: null, length: 0 },
            length: 0,
            pipes: null,
            pipesCount: 0,
            flowing: true,
            ended: false,
            endEmitted: false,
            reading: true,
            sync: false,
            needReadable: true,
            emittedReadable: false,
            readableListening: false,
            resumeScheduled: false,
            destroyed: true,
            defaultEncoding: 'utf8',
            awaitDrain: 0,
            readingMore: false,
            decoder: null,
            encoding: null },
         readable: false,
         domain: null,
         _events:
          { end: { [Function: bound onceWrapper] listener: [Function: onend] },
            finish: [Function: onSocketFinish],
            _socketEnd: [Function: onSocketEnd],
            connect:
             [ { [Function: bound onceWrapper] listener: [Function: oncreate] },
               { [Function: bound onceWrapper] listener: [Function: connect] },
               { [Function: bound onceWrapper] listener: [Function] } ],
            free: [Function: onFree],
            close: [ [Function: onClose], [Function: socketCloseListener] ],
            agentRemove: [Function: onRemove],
            drain: [Function: ondrain],
:Listener] },
         _eventsCount: 9,
         _maxListeners: undefined,
         _writableState:
          WritableState {
            objectMode: false,
            highWaterMark: 16384,
            finalCalled: false,
            needDrain: false,
            ending: false,
            ended: false,
            finished: false,
            destroyed: true,
            decodeStrings: false,
            defaultEncoding: 'utf8',
            length: 1456,
            writing: true,
            corked: 0,
            sync: false,
            bufferProcessing: false,
            onwrite: [Function: bound onwrite],
            writecb: [Function: bound onFinish],
            writelen: 1456,
            bufferedRequest: null,
            lastBufferedRequest: null,
            pendingcb: 1,
            prefinished: false,
Emitted: true,
            bufferedRequestCount: 0,
            corkedRequestsFree:
             { next: null,
               entry: null,
               finish: [Function: bound onCorkedFinish] } },
         writable: false,
         allowHalfOpen: false,
         _bytesDispatched: 0,
         _sockname: null,
         _pendingData: 'GET https://api.test.io/test?... HTTP/1.1\r\nAccept: application/json,
 text/plain, */*\r\nAuthorization: Bearer ...\r\nUser-Agent: axios/0.16.2\r\nhost: api.test.io\r\nConnectio
n: close\r\n\r\n',
         _pendingEncoding: 'latin1',
         server: null,
         _server: null,
         parser: null,
         _httpMessage: [Circular],
         read: [Function],
         _consuming: true,
         _idleNext: null,
         _idlePrev: null,
         _idleTimeout: -1,
         [Symbol(asyncId)]: 292884,
         [Symbol(bytesRead)]: 0 },
      _header: 'GET https://api.test.io/test?... HTTP/1.1\r\nAccept: application/json, text/pl
ain, */*\r\nAuthorization: Bearer ...\r\nUser-Agent: axios/0.16.2\r\nhost: api.test.io\r\nConnection: close
\r\n\r\n',
      _onPendingData: [Function: noopPendingOutput],
      agent:
       Agent {
         domain: null,
         _events: { free: [Function] },
         _eventsCount: 1,
         _maxListeners: undefined,
         defaultPort: 80,
         protocol: 'http:',
         options: { path: null },
         requests: {},
         sockets:
          { 'https://<IP_ADDRESS>:8888:':
             [ Socket {
                 connecting: false,
  : true,
                 _handle: null,
                 _parent: null,
                 _host: 'https://<IP_ADDRESS>',
                 _readableState:
                  ReadableState {
                    objectMode: false,
                    highWaterMark: 16384,
                    buffer: BufferList { head: null, tail: null, length: 0 },
                    length: 0,
                    pipes: null,
                    pipesCount: 0,
                    flowing: true,
                    ended: false,
                    endEmitted: false,
                    reading: true,
                    sync: false,
                    needReadable: true,
                    emittedReadable: false,
                    readableListening: false,
                    resumeScheduled: false,
                    destroyed: true,
                    defaultEncoding: 'utf8',
                    awaitDrain: 0,
                    readingMore: false,
                    decoder: null,
                    encoding: null },
                 readable: false,
                 domain: null,
                 _events:
                  { end: { [Function: bound onceWrapper] listener: [Function: onend] },
                    finish: [Function: onSocketFinish],
                    _socketEnd: [Function: onSocketEnd],
                    connect:
                     [ { [Function: bound onceWrapper] listener: [Function: oncreate] },
                       { [Function: bound onceWrapper] listener: [Function: connect] },
                       { [Function: bound onceWrapper] listener: [Function] } ],
                    free: [Function: onFree],
                    close: [ [Function: onClose], [Function: socketCloseListener] ],
                    agentRemove: [Function: onRemove],
                    drain: [Function: ondrain],
  :Listener] },
                 _eventsCount: 9,
                 _maxListeners: undefined,
                 _writableState:
                  WritableState {
                    objectMode: false,
                    highWaterMark: 16384,
                    finalCalled: false,
                    needDrain: false,
                    ending: false,
                    ended: false,
                    finished: false,
                    destroyed: true,
                    decodeStrings: false,
                    defaultEncoding: 'utf8',
                    length: 1456,
                    writing: true,
                    corked: 0,
                    sync: false,
                    bufferProcessing: false,
                    onwrite: [Function: bound onwrite],
                    writecb: [Function: bound onFinish],
                    writelen: 1456,
                    bufferedRequest: null,
                    lastBufferedRequest: null,
                    pendingcb: 1,
                    prefinished: false,
  Emitted: true,
                    bufferedRequestCount: 0,
                    corkedRequestsFree:
                     { next: null,
                       entry: null,
                       finish: [Function: bound onCorkedFinish] } },
                 writable: false,
                 allowHalfOpen: false,
                 _bytesDispatched: 0,
                 _sockname: null,
                 _pendingData: 'GET https://api.test.io/test?... HTTP/1.1\r\nAccept: applicati
on/json, text/plain, */*\r\nAuthorization: Bearer ...\r\nUser-Agent: axios/0.16.2\r\nhost: api.test.io\r\nC
onnection: close\r\n\r\n',
                 _pendingEncoding: 'latin1',
                 server: null,
                 _server: null,
                 parser: null,
                 _httpMessage: [Circular],
                 read: [Function],
                 _consuming: true,
                 _idleNext: null,
                 _idlePrev: null,
                 _idleTimeout: -1,
                 [Symbol(asyncId)]: 292884,
                 [Symbol(bytesRead)]: 0 } ] },
         freeSockets: {},
         keepAliveMsecs: 1000,
         keepAlive: false,
         maxSockets: Infinity,
         maxFreeSockets: 256 },
      socketPath: undefined,
      timeout: undefined,
      method: 'GET',
      path: 'https://api.test.io/test?...',
      _ended: false,
      res: null,
      aborted: undefined,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      _redirectable: [Circular],
      [Symbol(outHeadersKey)]:
       { accept: [ 'Accept', 'application/json, text/plain, */*' ],
         authorization:
          [ 'Authorization',
            'Bearer ...' ],
         'user-agent': [ 'User-Agent', 'axios/0.16.2' ],
         host: [ 'host', 'api.test.io' ] } },
   _currentUrl: 'http://https://<IP_ADDRESS>/https://api.test.io/test?...' }
 ---------------------------------------------------------
 Response -> {}
 ---------------------------------------------------------

It seems passing it on the request object works:
  const request = {
    headers
    , url: `${baseUrl}/${path}`
    , params
    , data
    , method
    , proxy: {
      host: '<IP_ADDRESS>'
      , port: 8888
    }
  }

axios.request(request) // works and the call shows up on fiddler

I was trying to set it on the instance before:
// doesn't work

instance = axios.create({
  proxy: {
      host: '<IP_ADDRESS>'
      , port: 8888
    }
})

The readme indicates that the same config can be used (for create and request) or maybe its just an unfortunate allusion due to usage of same word (config).
It might help to separate them if that's the case, i.e create config is not the same as request config.
The same thing without your patch gives me this error: write EPROTO 101057795:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:797:
So I guess your patch does work! :)

@mrchief thanks for the additional info! 🙏
The create vs request thing caused a lot of confusion/issues beforehand, as it is (or at least has been, when I checked last) some kind of weird global shared state, so when you do a request, you're actually using a shared default instance. Maybe there's something wrong with applying this configuration to new instances, but I guess that's out of scope for this PR.
Glad you faced it, though, so other people can refer to your findings in case they face it as well.

@mrchief it seems it could help:
#1159

Didn't manage to resolve issues with our proxy in any way. So, moving temporarily to request. Hope somebody will offer the fix soon.

Please merge this big brother~

@Khaledgarbaya we habe this fork running in our SDK's at Contentful now for several months. I guess we are save to merge this into axios, besides the upcoming v1.0.0
What do you think?

Half year passed...
Is there any problem with this PR?

any movement with this?

Some of us got hit by the bad weather, became sick, others have been on vacation.
But we are back on track and will come back to this ASAP :)

@Khaledgarbaya @arpit2438735 Can you have a review on this pr ? Thanks.

Glad to see you all are well now.
One year passed, when will this PR merged?

@zcei, we are using Contentful, now that that branch has been deleted we are running into a Couldn't find match for "fix/https-via-http-proxy" error.

@rileybracken isn't that a version we marked deprecated on NPM? That was a mistake we made early on and since then forked it to @contentful/axios for our SDK (which is now obsolete 🤞 ) in later versions. Sorry for the inconvenience in any case.
I restored the branch for now, so that no one else hits this roadblock

Any timeline for when this will be published?

FYI deleting this branch has broken older versions of contentful package
$  npm i<EMAIL_ADDRESS>npm ERR! code 1 npm ERR! Command failed: /usr/bin/git checkout fix/https-via-http-proxy npm ERR! error: pathspec 'fix/https-via-http-proxy' did not match any file(s) known to git. npm ERR!

@axe312ger
You've broken it again. Please read the comments above.
Deleting this branch has broken older versions of contentful package
$  npm i<EMAIL_ADDRESS>npm ERR! code 1
npm ERR! Command failed: /usr/bin/git checkout fix/https-via-http-proxy
npm ERR! error: pathspec 'fix/https-via-http-proxy' did not match any file(s) known to git.
npm ERR!

Ping @zcei
You could publish a version 4.6.5 that doesn't rely on the broken dependency on the deleted branch.
Yes it's old code, but we have systems that are slower moving that others. We are updating our version as soon as we can, but FYI our production systems were impacted by this problem. We are paying customers of contentful.

@jordie23 I'm so sorry that happened again! I've brought the attention to the SDKs team, that this is a not properly handled situation that needs to acted upon.
I'm super sure we do have versions released that do not rely on the branch, and I asked my fellows to check that as well. As I don't "own" the SDK and am not familiar with the release process, I'd rather let them figure it out than just releasing something. I hope you can understand.

@jordie23 Sorry for the trouble! Was clearly my mistake, I released a fresh v4.6.5 which points to the correct axios version for v4. This will never happen again :)

@mistermoe made a fork using this PR as mentioned in this related issue, and it has been getting about 1k pulls a week on NPM for the past two months.  That would seem to be an indication this PR is solid.  What is still to-do on this?

Err, it's finally merged since two weeks 🙂  @danieladams456

@zcei thanks! I must not be too good at reading icons today 😄

Master is still failing due to something that has been merged that breaks IE.
I'm not a front-end dev, so the likelyhood of me tracing down the IE bug is rather low - I'm not even having a clue how I'd set this up in my non-Windows env 😇

Looks like it was ec97c686efcc4a8968d632dab018e77215c5fe6d by @nickuraltsev 🙈

the IE 9 build broke--seems like 10 and 11 are fine. However it seems worth noting that Microsoft has ended support for IE versions before 11 over 2 years ago. Would it be reasonable to drop IE 9, bump to 0.19, and note the change in the CHANGELOG?

I would absolutely vote for removing IE9. I guess then releasing a new version is blocked by a PR which completely removes IE9 support in the code and removes it from the tests.

I would be happy to help in any way possible. I imagine it's not too hard to jump in and figure out what needs to change based on what you describe :)

Can we move this to a seperate issue / PR then, please? 🙂

Let's talk about this in #1656.

@zcei I am about to test the changes to proxying in 0.19.0 and I am curious what the final format would be for a connection running HTTPS over HTTP?
I am assuming just setting the proxy as normal pointed at the http proxy IP?
proxy: {
      host: '<IP_ADDRESS>',
      port: 8888,
    }

I read through the above conversations and I am not totally sure when the isHttps flag would be set to true vs when it would be left 'false' (which is the default)

@necevil you're not using the normal proxy configuration for this. You need to pass in an httpsAgent  - this is the agent used for every target HTTPS page (no matter what your proxy is). This agent on the httpsAgent property can for example make a connection to a http proxy

this was merged, but never released, right?


[FerryGenerator]How to make it work within a monorepo?

Hi!
First of all, thanks for this suite of packages.
We are using Ferry within a monorepo and using ferry_generator to generate the models. We would want to have each graphQL query in the dedicated package, it works well, but we need to have the schema in each packages and thus, all the generated code for the schema is duplicated in each package.
We would want to have the schema in a dedicated package and be able to only generate the models of the schema in this package and not in the other ones.
Did I miss something or it's not possible for the moment?

Well, actually it's not that simple.
Currently there is the assumption that there is a Serializers object that knows how to deserialize any OperationRequest without type hints (i.e. for the offline mutation link), this might break with a multi module approach.

Hi thanks for taking the time to look at this.
I don't have the time right now to make a POC, but maybe in a few weeks. I have a few ideas. Let me know what you think.

One package would be responsible for generating the models for the schema and the serializers.
I think we would still need to have the schema in every package (or at list a symbolic link) for the graphql_builder to work.
We could have an option in the build.yaml file to specify the imports for the schema models and the serializers, so that we could use them in the generated code for the queries. If null, we would consider that the schema models are in the same package.
Maybe we could remove the serializer_builder from the build.yaml for the packages which don't generate the models for the schema.

A single package for the schema & the serializers would not work, I fear.
If we have a single package for the schema, and N feature packages that contain operations (queries, mutations, subscriptions), the feature packages need to depend on the schema.
But the serializers need to know both the schema and the operations, so this would cause circular dependencies.
I think a way to solve this would be:

have a schema package that every feature package depends on. The schema package generates the .schema.gql.dart file and a Serializers class, but just for the schema types (e.g. scalars, enums, inputs).

feature packages depend on the schema file and import the generated .schema.gql.dart file instead of generating their own. They also generate their own Serializers class and merge it with the Serializers (https://pub.dev/documentation/built_value/latest/serializer/Serializers/merge.html ) from the schema in order so ensure that they can fully serialize all required types.

optional: when required (e.g. for persisting mutations when offline), add an additional package that depends on the schema package and all feature packages. This package merges all the Serializers so we can again serialize and deserialize all types with a single object.

This might sound pretty scary, but I think all of this is doable with relatively small changes to the code.
In fact, I hacked together something that already does most of this here: https://github.com/gql-dart/ferry/pull/533/files
This would allow specifying the schema from another package and prevent code generation for the schema when passing generate_schema : false to the build.yaml, importing it instead.

Hi. I see you haven't written anything for a long time. Are there any updates?

#606 was merged and ferry_generator 0.12.0 was released.
A caveat is still, that OfflineMutationTypedLink won't work, because there's no single Serializers class which could deserialize any requests


Document how to update AppSync API key

$ amplify -v
1.6.6

It seems like the default DX if you add a GraphQL API w/ API key auth is that amplify push stops working after 7 days. I can create a new API key in AppSync Settings page, but I'm not finding documentation about how to give the new key to amplify.
Alternatively, if amplify auto generated new keys to use, that'd be better. Looks like was added with #446, but it's either not working or not enabled by default.

@lorensr As a best practice - from the AppSync service, APIKeys should be used in development mode for a short period of time (7 days is recommended which Amplify provides as default). But if you want to customze it, you can use the various parameters available to you by Amplify. Take a look at this reference - https://aws-amplify.github.io/docs/cli/graphql#apikeyexpirationepoch
For your case, you could probably use APIKeyExpirationEpoch and APIKeyExpirationEpoch to extend the life of your API Keys.

@kaustavghosh06 I'm seeing the below, which I imagine works with an existing valid api key? Mine is expired and gone from settings. I'm looking for docs saying how I can tell amplify about the new api key I created.

@lorensr Did you create the API Key on the console?

In the 'parameters.jsonfile, did you update/add {"APIKeyExpirationEpoch": <your-epoch-for-api-key-expiry> }?  This should create a new API Key for you which will expire based on  the value to have in` field.

Ah thanks, it's not clear to me from the docs that in the first and third cases, a new api key is created if the current has already expired.

Okay, I'll create an internal request for updating the docs to reflect this. Thank you for bringing this up!

I'm having a similar issue. In the AppSync console I have this message "You don't have any available API keys, please create one under the section API keys."
I set the epoch expiration to 0 in the API parameters.json but amplify push now hits "Resource is not in the state stackUpdateComplete" right after the message "API key not found".
Also as a secondary question would setting the expiration to -1 mean I never need to set a new key? I understand this is for dev only

I am having the same issue, but cannot simply push to resolve it, even with the parameters.json file update.
amplify push no longer works for me because the API Key has expired (and has been deleted?)
Is there nay advice you can give on getting things back in sync between the amplify CLI tooling and the CloudFormation deployment?

I'm having an issue with this aswell. After updates aws-exports i see the old key in the logs after an amplify push

Hey Karl! Have you tried setting APIKeyExpirationEpoch to "0" in
parameters.json?
On Tue, Jun 4, 2019 at 6:50 PM Karl Danninger<EMAIL_ADDRESS>wrote:

I'm having an issue with this aswell. After updates aws-exports i see the
old key in the logs after an amplify push
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aws-amplify/amplify-cli/issues/1450?email_source=notifications&email_token=AAB5LGEWZGIEYDXNOT64AJ3PY3WU5A5CNFSM4HMT62LKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW6C3NY#issuecomment-498871735,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB5LGHRMHMVBOQ62JZWT3TPY3WU5ANCNFSM4HMT62LA
.

Hey @lorensr ❤that worked. Thanks!
I set it to -1 then amplify push. Then I set epoch to 1 year into the future and pushed again.
One potential bug I've noticed is if I amplify status
the GraphQL API KEY still shows the old expired/deleted key.

any updates

any updates

Yeah I got it to work. You have to add "APIKeyExpirationEpoch": "-1" to the JSON Object in the parameters.json file. There are many parameter.json files, but the one I added this to was the backend -> api parameters.json file

I was able to change an expired api key in amplify by...

Creating a new api key in the app sync console
Overwriting "GraphQLAPIKeyOutput" with the new key in #current-cloud-backend/amplify-meta.json and the same file in backend/
I then created "APIKeyExpirationEpoch": "-1" as the above stated.
Executed amplify push

This worked without an amplify error.

All the steps above for me have failed. The GraphQL ApiKey will not reset no matter if I set the epoch setting to 0, -1 or "0" or "-1".... This is really frustrating.

Does anyone have any updates on a solid fix for this please? I have tried all of the suggestions on this thread as well as the reference above (#954) and none of them have worked. The only solution that I have at the minute is to completely delete my entire amplify setup every week and then recreate it. Obviously this is less than ideal, and will not work at all in production. Does anyone know if AWS are thinking of fixing this issue? Surely this should be top of the list, as it is a huge flaw in the system and makes Amplify completely unusable?

I'm having the same issue, @ph0ph0, I've tried all the suggestions as well with no success. Did you ever end up finding a fix?

@CyanCode - try adding both APIKeyExpirationEpoch and CreateAPIKey to amplify/backend/<api>/parameters.json, e.g:
   "APIKeyExpirationEpoch": -1,
   "CreateAPIKey": -1

then run amplify push. This should delete the API key from the stack. Then create a new using cli with
amplify update api
amplify push

Worked for me in amplify version 4.6.0.

Thanks @joekickass, this worked for me in amplify version 3.17.0

Looks like APIKeyExpirationEpoch doesn't work anymore and setting CreateAPIKey to -1 is needed. Thanks @joekickass!

Tried settings recommended by @joekickass:
APIKeyExpirationEpoch and CreateAPIKey parameters should not used together because it can cause unwanted behavior. In the future APIKeyExpirationEpoch will be removed, use CreateAPIKey instead.
APIKeyExpirationEpoch parameter's -1 value is deprecated to disable the API Key creation. In the future CreateAPIKey parameter replaces this behavior.

Abort amplify push and tried setting only CreateAPIKey to -1 then amplify push
UPDATE_FAILED: Parameter 'CreateAPIKey' must be a number not less than 0
amplify --version
4.6.0

Deleted expired key from AppSync, set CreateAPIKey to 0, push, thereafter remove CreateAPIKey parameter and push again. Finally, back in working state :)

Based on the official docs this is what you need to do to rotate keys.
It worked for me (even in the scenario, when the current key was already expired).

Follow these two steps when you need to rotate an API Key

Delete the existing API key by setting CreateAPIKey to 0 in the amplify/backend/api//parameters.json file and execute amplify push.
Create a new API key by setting CreateAPIKey to 1 in the amplify/backend/api//parameters.json file and execute amplify push.

[https://aws-amplify.github.io/docs/cli-toolchain/graphql#apikeyexpirationepoch]

Updated link for the above comment is https://docs.amplify.aws/cli/graphql-transformer/config-params#apikeyexpirationepoch.

I think this is the correct link
https://docs.amplify.aws/cli/graphql-transformer/config-params#createapikey

@CyanCode - try adding both APIKeyExpirationEpoch and CreateAPIKey to amplify/backend/<api>/parameters.json, e.g:
   "APIKeyExpirationEpoch": -1,
   "CreateAPIKey": -1

then run amplify push. This should delete the API key from the stack. Now, remove APIKeyExpirationEpoch and CreateAPIKey from parameters.json again, and create a new key using the CLI:
amplify update api
amplify push

Worked for me in amplify version 4.6.0.

This worked for me after an initial step of disabling API access to my lambda functions first.

At this point I am able to just cycle the key with CreateAPIKey. If I set that to -1, push, then reset & push, that now does the trick.
<EMAIL_ADDRESS>

Hi,
I do not understand why it is not possible to have an api_key without expiration for public datas ?

https://docs.amplify.aws/cli/graphql-transformer/config-params#createapikey
As mentioned here, I had to set to 0, do a push, and then set it back to 1 and push again. This worked!
The property should be added in amplify/backend/api/<project-name>/parameters.json

@rudyhadoux the 'CreateAPIKey' parameter will automatically set the expiration date to one week after you create it.
I am not quite sure if I answered that question correctly.


table PushNotificationItems are not getting any data

I already configured the notification integration but i'm not getting any data filled in the notifications tables, what i am missing?
thanks in advance.

I'm working on a complete overhaul to the entire mail system top-to-bottom. Sorry for the delay

The main problem with the existing system has been repaired and pushed to the develop branch. Sorry for the delay in getting this addressed.


Add Granada Grounds X Token (Update tokenlist.schema.json)

Also adding Contract Address:  0xd7c8077aE454B81c451F52b01d53DC4A6B23312F


[Bug] Failed to import tvm.relax

Hi, I encountered a problem when trying to import tvm.relax
$ python
$ import tvm.relax

Expected behavior
import successfully
Actual behavior
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/projects/tvm/python/tvm/relax/__init__.py", line 68, in <module>
    from .op.base import (
  File "/home/projects/tvm/python/tvm/relax/op/__init__.py", line 21, in <module>
    from . import _op_gradient, builtin, ccl, distributed, grad, image, memory, nn, op_attrs
  File "/home/projects/tvm/python/tvm/relax/op/_op_gradient.py", line 130, in <module>
    def add_grad(
  File "/home/projects/tvm/python/tvm/ir/op.py", line 241, in _register
    _ffi_api.RegisterOpAttr(op_name, attr_key, v, level)
AttributeError: module 'tvm.ir._ffi_api' has no attribute 'RegisterOpAttr'

Environment
I'm working on Ubuntu 24.04, and the TVM version is 0.19.dev0
Steps to reproduce
install TVM: https://tvm.apache.org/docs/install/from_source.html#install-from-source
I set the USE_CUDA option to ON by the way
then when I tried to import tvm.relax or tvm.relay, this error occurred.
I would be grateful if someone can hep me out!

I encountered the same issue, and it was resolved by switching the installed LLVM version to 15 and rebuilding.

this is likely due to the fact that the libtvm is not the most up to date version, make sure you build completes and points to the right version

Thanks! the problem solved
I found I did not build the lib correctly and the error reported is 'cannot find lib -lxml2'
Use terminal outside instead of the terminal in VScode solved this problem, may be my env activated in python extension mislead cmake
Hope this can help those who encountered the same situation


[EPIC] Account Abstraction

Background
This is a tracking issue for the Account Abstraction
Suggested Design
https://hackmd.io/vRbItUUUSs2dALdYQXIx-Q
Milestones
V1
Initial implementation and classic authenticator
Acceptance Criteria
### V1 Tasks
- [ ] https://github.com/osmosis-labs/osmosis/issues/6076
- [ ] https://github.com/osmosis-labs/osmosis/issues/6077
- [ ] https://github.com/osmosis-labs/osmosis/issues/6078
- [ ] https://github.com/osmosis-labs/osmosis/issues/6079
- [ ] https://github.com/osmosis-labs/osmosis/issues/6080
- [ ] https://github.com/osmosis-labs/osmosis/issues/6081
- [ ] https://github.com/osmosis-labs/osmosis/issues/6082
- [ ] https://github.com/osmosis-labs/osmosis/issues/6126
- [ ] https://github.com/osmosis-labs/osmosis/issues/6127
- [ ] https://github.com/osmosis-labs/osmosis/issues/6128
- [ ] https://github.com/osmosis-labs/osmosis/issues/6129
- [ ] https://github.com/osmosis-labs/osmosis/issues/6130
- [ ] https://github.com/osmosis-labs/osmosis/issues/6313
- [ ] https://github.com/osmosis-labs/osmosis/issues/6377

Should we close this? I think we track AA work differently


intro: Add asciinema embed

https://asciinema.org/a/42945?speed=2

@hypothesist you're on this right?

Yeah, will make a PR in a second.

:+1:


mquictt_server panics after subscribe by client

When using the examples for the mqtt_client and the mqtt_server. The server panics when the client tries to subscribe.
Code:
Server:
#[tokio::main]
async fn main() {
    pretty_env_logger::init();

    mquictt_server::server(
        &([127, 0, 0, 1], 1883).into(),
        mquictt_server::Config::read(&"server.json").unwrap(),
    )
    .await
    .unwrap();
}

Client:
use bytes::Bytes;
use log::error;

#[tokio::main]
async fn main() -> Result<(), mquictt_client::Error> {
    pretty_env_logger::init();

    // create a client
    let mut client = mquictt_client::Client::connect(
        &([127, 0, 0, 1], 2000).into(),
        &([127, 0, 0, 1], 1883).into(),
        "localhost",
        "0",
        mquictt_client::Config::read(&"client.json").unwrap(),
    )
    .await?;

    // create a publisher for a particular topic
    let mut publisher = client
        .publisher("hello/world", Bytes::from("hello"))
        .await?;

    let mut subscriber = client.subscriber("hello/world").await?;
    publisher.publish(Bytes::from("hello again!"))?;
    publisher.flush().await.unwrap();
    tokio::spawn(async move {
        for i in 0..100 {
            if let Err(e) = publisher.publish(Bytes::from(format!("{}!", i))) {
                error!("{}", e);
            }
        }
        if let Err(e) = publisher.flush().await {
            error!("{}", e);
        }
        if let Err(e) = publisher.close().await {
            error!("{}", e);
        }
    });

    // Read from subscriber
    while let Ok(data) = subscriber.read().await {
        println!("{}", std::str::from_utf8(&data).unwrap());
    }
    subscriber.close().await.unwrap();
    client.close().await.unwrap();

    Ok(())
}

Terminal Output:
Server:
DEBUG rustls::anchors > add_pem_file processed 133 valid and 0 invalid certs
 DEBUG rustls::anchors > add_pem_file processed 1 valid and 0 invalid certs
 INFO  mquictt_server  > QUIC server launched at <IP_ADDRESS>:1883
 DEBUG rustls::server::hs > decided upon suite SupportedCipherSuite { suite: TLS13_CHACHA20_POLY1305_SHA256, kx: BulkOnly, bulk: CHACHA20_POLY1305, hash: SHA256, sign: None, enc_key_len: 32, fixed_iv_len: 12, explicit_nonce_len: 0 }
 INFO  mquictt_server     > accepted conn from <IP_ADDRESS>:2000
 DEBUG mquictt_server     > connection handler spawned for <IP_ADDRESS>:2000
 DEBUG mquictt_server     > stream accepted for <IP_ADDRESS>:2000
 DEBUG mquictt_server     > recved CONNECT packet from <IP_ADDRESS>:2000, len = 15
 DEBUG mquictt_server     > sent CONNACK packet to <IP_ADDRESS>:2000
 DEBUG rustls::server::hs > decided upon suite SupportedCipherSuite { suite: TLS13_CHACHA20_POLY1305_SHA256, kx: BulkOnly, bulk: CHACHA20_POLY1305, hash: SHA256, sign: None, enc_key_len: 32, fixed_iv_len: 12, explicit_nonce_len: 0 }
 INFO  mquictt_server     > accepted conn from <IP_ADDRESS>:2000
 DEBUG mquictt_server     > connection handler spawned for <IP_ADDRESS>:2000
 DEBUG mquictt_server     > stream accepted for <IP_ADDRESS>:2000
 DEBUG mquictt_server     > recved CONNECT packet from <IP_ADDRESS>:2000, len = 15
 DEBUG mquictt_server     > sent CONNACK packet to <IP_ADDRESS>:2000
thread 'tokio-runtime-worker' panicked at 'called `Option::unwrap()` on a `None` value', /.../mquictt-server/src/lib.rs:143:67

Client:
 DEBUG rustls::anchors > add_pem_file processed 1 valid and 0 invalid certs
 DEBUG rustls::client::hs > No cached session for DNSNameRef("localhost")
 DEBUG rustls::client::hs > Not resuming any session
 DEBUG rustls::client::hs > Using ciphersuite TLS13_CHACHA20_POLY1305_SHA256
 DEBUG rustls::client::tls13 > Not resuming
 DEBUG rustls::client::tls13 > TLS1.3 encrypted extensions: [ServerNameAck, TransportParameters([1, 2, 103, 16, 3, 2, 69, 200, 4, 8, 255, 255, 255, 255, 255, 255, 255, 255, 5, 4, 128, 19, 18, 208, 6, 4, 128, 19, 18, 208, 7, 4, 128, 19, 18, 208, 8, 2, 64, 100, 9, 2, 64, 100, 11, 1, 0, 14, 1, 5, 64, 182, 0, 2, 16, 57, 98, 213, 215, 55, 84, 147, 245, 185, 74, 80, 241, 248, 145, 215, 143, 32, 4, 128, 0, 255, 255, 0, 20, 128, 144, 30, 143, 26, 145, 154, 167, 146, 223, 51, 38, 97, 85, 189, 143, 48, 188, 32, 57, 15, 8, 2, 136, 98, 5, 251, 151, 183, 147])]
 DEBUG rustls::client::hs    > ALPN protocol is None
 DEBUG rustls::client::tls13 > Got CertificateRequest CertificateRequestPayloadTLS13 { context: PayloadU8([]), extensions: [SignatureAlgorithms([ECDSA_NISTP384_SHA384, ECDSA_NISTP256_SHA256, ED25519, RSA_PSS_SHA512, RSA_PSS_SHA384, RSA_PSS_SHA256, RSA_PKCS1_SHA512, RSA_PKCS1_SHA384, RSA_PKCS1_SHA256]), AuthorityNames([PayloadU16([48, 129, 128, 49, 14, 48, 12, 6, 3, 85, 4, 6, 19, 5, 73, 110, 100, 105, 97, 49, 18, 48, 16, 6, 3, 85, 4, 8, 19, 9, 75, 97, 114, 110, 97, 116, 97, 107, 97, 49, 18, 48, 16, 6, 3, 85, 4, 7, 19, 9, 66, 97, 110, 103, 97, 108, 111, 114, 101, 49, 23, 48, 21, 6, 3, 85, 4, 9, 19, 14, 83, 117, 98, 98, 105, 97, 104, 32, 71, 97, 114, 100, 101, 110, 49, 15, 48, 13, 6, 3, 85, 4, 17, 19, 6, 53, 54, 48, 48, 49, 49, 49, 28, 48, 26, 6, 3, 85, 4, 10, 19, 19, 73, 79, 84, 32, 69, 120, 112, 114, 101, 115, 115, 32, 80, 118, 116, 32, 76, 116, 100])])] }
 DEBUG rustls::client::tls13 > Attempting client auth
 INFO  mquictt_client        > connected to <IP_ADDRESS>:1883
 DEBUG mquictt_client        > sent CONNECT to <IP_ADDRESS>:1883, len = 15
 DEBUG rustls::client::tls13 > Ticket saved
 DEBUG mquictt_client        > recved CONNACK from <IP_ADDRESS>:1883
created client
 DEBUG mquictt_client        > flushed 20 bytes
 DEBUG mquictt_client        > sent SUBSCRIBE to <IP_ADDRESS>:1883
Error: ConnectionBroken```

It seems like it was pointed out in code by @abhikjain360 here. I believe he'd been working on a log based rewrite of the broker, I'll try and fix this to the best of my knowledge 👍🏼

Ah yes, I saw that. But shouldn't the topic exist, as it gets published before? It is in the Client code, although there is no Terminal Output for it.

The publishes are in a separate tokio task that is not await, so they need not happen before the rest of the code. This is one of the features of tokio::spawn().

@abhikjain360 what are your thoughts about making publish() instantaneous, i.e. move code contents of flush() into publish.


math: add Tau in constants

Add Tau in mathematical constants.
In many cases, formulas can be more elegant using the Tau constant instead
of Pi. You will find a good number of arguments and explanations
in the Tau manifesto, which describes Tau as:

the most important numbers in mathematics, perhaps the most important:
the circle constant relating the circumference of a circle to its linear
dimension. For millennia, the circle has been considered the most
perfect of shapes, and the circle constant captures the geometry of the
circle in a single number.

The constant is based on the corresponding page in the online
encyclopedia of integer sequences, and is also
equal to math.Pi * 2.
Usage:
perimeter := math.Tau * radius

Thanks so much for this !
I've been missing it since the beginning, but I was too lazy to do it myself.
As I stated before, TAU is the circle constant, and PI the disk constant.

When civilizations make mistakes, the inertia is heavy.

The proposal was rejected (#40663) so I'm closing this PR.


Fix broken pipe error on client pull disconnect

When a client disconnects while a pull is in progress, an error is written to the daemon logs for the broken pipe.
We can probably ignore this error for broken pipe.

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

is this a dup of  https://github.com/docker/docker/issues/15589 (resolved by https://github.com/docker/docker/pull/15646)? Not sure, just thought there could be some overlap :-)

No, this has to do with the error logs in the daemon that #15646 generates.

This was fixed by #18752


[REQ] Add Sock5 proxy

Hi, please add socks5 proxy settings.
Thanks.

Closing as a duplicate of #191.


Expose loadtest master and worker config via proxy

This PR is split from #44.
We have MasterConfig and WorkerConfig in the loadtest v1 spec, but they are not used; we should either remove this or expose it via the proxy.
This PR:

Adds two additional fields (workerImage and masterImage) to POST /load-test endpoint in the proxy to allow users to configure MasterConfig and WorkerConfig field in the spec when creating a new loadtest.

Notes
Base is currently set to patch/immutable-spec as this PR relies on it (#48); once it's merged to master this PR will update the base branch to master.

What are the use cases for having per load test images?

What are the use cases for having per load test images?

The only thing I can think of is to test new images without having to rebuild or restart kangal.
For the record, I still believe both config should be removed from the spec, but I think we need to do and plan it properly if we do that as perhaps v2 spec.

The only thing I can think of is to test new images without having to rebuild or restart kangal.

You can set a custom image once using ENV and then push to this image and restart the test.

For the record, I still believe both config should be removed from the spec, but I think we need to do and plan it properly if we do that as perhaps v2 spec.

We can leave the PR open for now until we have a proper discussion about this feature.
Merging to discontinue later doesn’t make much sense.


UI Improvements (file title and frontmatter)

add whitespcae between top of page and metadata frontmatter
improve file title alignment for Sliding Panes

Adding updates locally along with others and pushing. Thanks so much for opening this PR!

Thank you!
Since the theme has been updated, should I close this PR?

Appreciate it!


[Add] type-scale.com

Added Link to type-scale.com under Frontend category, fonts subcategory
Question: Is this enough info in PR? I've used the in-browser editor to add this resource but would like to be sure it's a correct way because I would like to share many more good things I have bookmarked and don't want to make it troublesome for maintainers :)

Hi, please follow contributing guidelines, and create issue before making Pull request. Thank You

Thanks for this, I understood that opening an issue is optional. Sorry! Now this PR is related to issue #84

@jackz070 thank you, looking forward to get more PRs from you :)


Replace mintDiamond for generic createDiamond

NFT facet should be implemented first #33
Instead of tokenIds we can create incremental nonces for each diamond

fixed by #54


Dont work with expressions like translate.google.com/#* or www.qwant.com/?q*

Because I want to keep translate.google.com or www.qwant.com in my history, but not translate.google.com/#* or www.qwant.com/?q*

Yeah, I wanted such functionality too, but I guess it's not possible anymore. Maybe you can achieve it replacing * by + in the database file...

#27


camel case property names

How best to go about generating camel case typescript property names from pascal case C# names?

You could probably modify VisitPropertyDeclaration to transform the name:
propertyDeclaration.Name = char.ToLower(propertyDeclaration.Name[0]) +
                           propertyDeclaration.Name.Substring(1);


add try except for getting measurands

fix #1275

Note that this PR does not resolve issue #1275. Please reopen the issue.


[Bug]version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8

Now I am using Amazon sagemaker to do some work related to video. The cpu version of glib is kind of laggy so I decided to compile gpu version of glib. I cloned glib from github by git clone https://github.com/davisking/dlib.git and used python setup.py install with no other changes. The compile process seemed fine and I got glib installed.
Here's my compiling process. It seems to be normal:
python setup.py install
running install
/home/ec2-user/anaconda3/envs/art_intel/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
/home/ec2-user/anaconda3/envs/art_intel/lib/python3.9/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running bdist_egg
running egg_info
creating tools/python/dlib.egg-info
writing tools/python/dlib.egg-info/PKG-INFO
writing dependency_links to tools/python/dlib.egg-info/dependency_links.txt
writing top-level names to tools/python/dlib.egg-info/top_level.txt
writing manifest file 'tools/python/dlib.egg-info/SOURCES.txt'
reading manifest file 'tools/python/dlib.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'tools/python/build*'
no previously-included directories found matching 'dlib/cmake_utils//build'
warning: no previously-included files matching '*.pyc' found anywhere in distribution
adding license file 'LICENSE.txt'
writing manifest file 'tools/python/dlib.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
running build_ext
Building extension for Python 3.9.15 | packaged by conda-forge | (main, Nov 22 2022, 15:55:03)
Invoking CMake setup: 'cmake /home/ec2-user/SageMaker/users/install dlib with cuda/dlib/tools/python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/ec2-user/SageMaker/users/install dlib with cuda/dlib/build/lib.linux-x86_64-cpython-39 -DPYTHON_EXECUTABLE=/home/ec2-user/anaconda3/envs/JupyterSystemEnv/bin/python -DCMAKE_BUILD_TYPE=Release'
-- The C compiler identification is GNU 7.3.1
-- The CXX compiler identification is GNU 7.3.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- pybind11 v2.10.0
-- Found PythonInterp: /home/ec2-user/anaconda3/envs/JupyterSystemEnv/bin/python (found suitable version "3.9.15", minimum required is "3.6")
-- Found PythonLibs: /home/ec2-user/anaconda3/envs/art_intel/lib/libpython3.9.so
-- Performing Test HAS_FLTO
-- Performing Test HAS_FLTO - Success
-- Using CMake version: 3.24.2
-- Compiling dlib version: 19.24.99
-- SSE4 instructions can be executed by the host processor.
-- AVX instructions can be executed by the host processor.
-- Enabling AVX instructions
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found X11: /home/ec2-user/anaconda3/include
-- Looking for XOpenDisplay in /home/ec2-user/anaconda3/lib/libX11.so;/home/ec2-user/anaconda3/lib/libXext.so
-- Looking for XOpenDisplay in /home/ec2-user/anaconda3/lib/libX11.so;/home/ec2-user/anaconda3/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
CMake Warning at /home/ec2-user/SageMaker/users/install dlib with cuda/dlib/dlib/cmake_utils/test_for_libpng/CMakeLists.txt:8 (add_executable):
Cannot generate a safe runtime search path for target libpng_test because
files in some directories may conflict with libraries in implicit
directories:
runtime library [libz.so.1] in /usr/lib64 may be hidden by files in:
  /home/ec2-user/anaconda3/lib

Some of these libraries may not be found correctly.
-- Found system copy of libpng: /home/ec2-user/anaconda3/lib/libpng.so;/usr/lib64/libz.so
-- System copy of libpng is broken.  Will build our own libpng and use that instead.
-- Found system copy of libjpeg: /usr/lib64/libjpeg.so
-- Found WebP: /home/ec2-user/anaconda3/lib/libwebp.so
-- System copy of libwebp is either too old or broken.  Will disable WebP support.
-- Searching for BLAS and LAPACK
-- Searching for BLAS and LAPACK
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.27.1")
-- Checking for module 'cblas'
--   No package 'cblas' found
-- Checking for module 'lapack'
--   No package 'lapack' found
-- Looking for cblas_ddot
-- Looking for cblas_ddot - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of void*
-- Check size of void* - done
-- Found Intel MKL BLAS/LAPACK library
-- Looking for sgesv
-- Looking for sgesv - found
-- Looking for sgesv_
-- Looking for sgesv_ - found
-- Found CUDA: /usr/local/cuda (found suitable version "11.0", minimum required is "7.5")
-- Looking for cuDNN install...
-- Found cuDNN: /usr/local/cuda/lib/libcudnn.so
-- Building a CUDA test project to see if your compiler is compatible with CUDA...
-- Building a cuDNN test project to check if you have the right version of cuDNN installed...
-- Enabling CUDA support for dlib.  DLIB WILL USE CUDA, compute capabilities: 50
-- Searching for FFMPEG/LIBAV
-- Checking for modules 'libavdevice;libavfilter;libavformat;libavcodec;libswresample;libswscale;libavutil'
--   No package 'libavdevice' found
--   No package 'libavfilter' found
--   No package 'libavformat' found
--   No package 'libavcodec' found
--   No package 'libswresample' found
--   No package 'libswscale' found
--   No package 'libavutil' found

*** No FFMPEG/LIBAV libraries found.

Expected Behavior
I should be able to get the face to be recognized.
Current Behavior
When I run this python file, I got this:
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_train.so.8. Error: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8: symbol _Z22cudnnGenericOpTensorNdILi3EE13cudnnStatus_tP12cudnnContext16cudnnGenericOp_t21cudnnNanPropagation_tPKdPKvPK17cudnnTensorStructS8_S8_SB_S8_S8_SB_Pv, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Steps to Reproduce
Now I am using Amazon-sagemaker with a ml.g4dn.xlarge jupyter notebook.
I use the following script when I start this notebook:
#!/bin/bash
set -e
#use ec2-user for operations
sudo -u ec2-user -i <<'EOF'
#environment creation
conda create -n art_intel python=3.9 -y
source activate
conda activate art_intel
#make new environment accessible
conda install ipykernel -y
python -m ipykernel install --user --name art_intel --display-name art_intel
#changing pip  and python location, making sure that pip command can be executed correctly.
cd ~/anaconda3/envs/JupyterSystemEnv/bin/
sudo ln -sf /home/ec2-user/anaconda3/envs/art_intel/bin/pip pip
#installing packages
conda install dlib==19.24.0 -y
pip install opencv-python==<IP_ADDRESS>
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
#the following two lines are necessary for the python command to be executed correctly.
cd ~/anaconda3/envs/JupyterSystemEnv/bin/
sudo ln -sf /home/ec2-user/anaconda3/envs/art_intel/bin/python3.9 python
EOF

Version: 19.24.99
Where did you get dlib: this github repo
Platform: Amazon sagemaker, ml.g4dn.xlarge jupyter notebook.
Compiler: Normal setup.py, cmake version 3.24.2

I noted that the suitable cuda version is 11.0, however when I use nvidia-smi, I found that the cuda version is 11.6. Can this cause this problem? How should I fix it？
Thank you guys.

same error here

Just solved it. My solution for a reference:

add up the library path to the LD_LIBRARY_PATH
if pump up another error saying "libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference", set "export LD_PRELOAD=path-to-the-library.so"

Anyways, this solution seems a short-term walkaround. Still hope to see a long-term solution...

@1LOVESJohnny Did you solve it by adding os.enviro['LD-PRELOAD'] to the py file? I tried this way, but it did not work. Can you show me your solution code?

I tried several ways, but none of those worked. Here are my tests in the command line:
sh-4.2$ python cnn_face_detector.py
Call this program like this:
./cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/*.jpg
You can get the mmod_human_face_detector.dat file from:
http://dlib.net/files/mmod_human_face_detector.dat.bz2
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_train.so.8. Error: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8: symbol _Z22cudnnGenericOpTensorNdILi3EE13cudnnStatus_tP12cudnnContext16cudnnGenericOp_t21cudnnNanPropagation_tPKdPKvPK17cudnnTensorStructS8_S8_SB_S8_S8_SB_Pv, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_train.so.8. Error: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8: symbol _Z22cudnnGenericOpTensorNdILi3EE13cudnnStatus_tP12cudnnContext16cudnnGenericOp_t21cudnnNanPropagation_tPKdPKvPK17cudnnTensorStructS8_S8_SB_S8_S8_SB_Pv, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$ LD-PRELOAD=/usr/local/cuda-11.0/lib/libcudnn_ops_train.so.8 python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
sh: LD-PRELOAD=/usr/local/cuda-11.0/lib/libcudnn_ops_train.so.8: No such file or directory
sh-4.2$ export LD_PRELOAD=/usr/local/cuda-11.0/lib/libcudnn_ops_train.so.8
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_infer.so.8. Error: /usr/local/cuda/lib/libcudnn_cnn_infer.so.8: symbol _ZN5cudnn14cublasLtMatmulEP15cublasLtContextP26cublasLtMatmulDescOpaque_tPKvS5_P28cublasLtMatrixLayoutOpaque_tS5_S7_S5_S5_S7_PvS7_PK20cublasLtMatmulAlgo_tS8_mP11CUstream_st, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$ export LD_PRELOAD=/usr/local/cuda-11.0/lib/libcudnn_ops_train.so.8 python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
sh: export: cnn_face_detector.py': not a valid identifier sh: export: mmod_human_face_detector.dat': not a valid identifier
sh: export: `../examples/faces/2007_007763.jpg': not a valid identifier
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_infer.so.8. Error: /usr/local/cuda/lib/libcudnn_cnn_infer.so.8: symbol _ZN5cudnn14cublasLtMatmulEP15cublasLtContextP26cublasLtMatmulDescOpaque_tPKvS5_P28cublasLtMatrixLayoutOpaque_tS5_S7_S5_S5_S7_PvS7_PK20cublasLtMatmulAlgo_tS8_mP11CUstream_st, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$ export LD_PRELOAD=/usr/local/cuda-11.0/lib/libcudnn_ops_train.so.8
sh-4.2$ LD_PRELOAD
sh: LD_PRELOAD: command not found
sh-4.2$ ^C
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_infer.so.8. Error: /usr/local/cuda/lib/libcudnn_cnn_infer.so.8: symbol _ZN5cudnn14cublasLtMatmulEP15cublasLtContextP26cublasLtMatmulDescOpaque_tPKvS5_P28cublasLtMatrixLayoutOpaque_tS5_S7_S5_S5_S7_PvS7_PK20cublasLtMatmulAlgo_tS8_mP11CUstream_st, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$ export LD_PRELOAD=/usr/local/cuda-11.0/lib/libcudnn_ops_train.so
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_infer.so.8. Error: /usr/local/cuda/lib/libcudnn_cnn_infer.so.8: symbol _ZN5cudnn14cublasLtMatmulEP15cublasLtContextP26cublasLtMatmulDescOpaque_tPKvS5_P28cublasLtMatrixLayoutOpaque_tS5_S7_S5_S5_S7_PvS7_PK20cublasLtMatmulAlgo_tS8_mP11CUstream_st, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$ sudo ln -sf /usr/local/cuda-11.0/ /usr/local/cuda
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_infer.so.8. Error: /usr/local/cuda/lib/libcudnn_cnn_infer.so.8: symbol _ZN5cudnn14cublasLtMatmulEP15cublasLtContextP26cublasLtMatmulDescOpaque_tPKvS5_P28cublasLtMatrixLayoutOpaque_tS5_S7_S5_S5_S7_PvS7_PK20cublasLtMatmulAlgo_tS8_mP11CUstream_st, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$ strings /usr/local/cuda/lib/libcudnn_cnn_infer.so.8 | grep libcudnn
libcudnn_ops_infer.so.8
libcudnn_cnn_infer.so.8
libcudnn_cnn_train.so.8
sh-4.2$ export LD_PRELOAD=/usr/local/cuda-11.0/lib/libcudnn_ops_infer.so.8
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_train.so.8. Error: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8: symbol _Z22cudnnGenericOpTensorNdILi3EE13cudnnStatus_tP12cudnnContext16cudnnGenericOp_t21cudnnNanPropagation_tPKdPKvPK17cudnnTensorStructS8_S8_SB_S8_S8_SB_Pv, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_train.so.8. Error: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8: symbol _Z22cudnnGenericOpTensorNdILi3EE13cudnnStatus_tP12cudnnContext16cudnnGenericOp_t21cudnnNanPropagation_tPKdPKvPK17cudnnTensorStructS8_S8_SB_S8_S8_SB_Pv, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$ sudo ln -sf /usr/local/cuda-11.0/ /usr/local/cuda-11.1
sh-4.2$ python cnn_face_detector.py mmod_human_face_detector.dat ../examples/faces/2007_007763.jpg
Processing file: ../examples/faces/2007_007763.jpg
Could not load library libcudnn_cnn_train.so.8. Error: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8: symbol _Z22cudnnGenericOpTensorNdILi3EE13cudnnStatus_tP12cudnnContext16cudnnGenericOp_t21cudnnNanPropagation_tPKdPKvPK17cudnnTensorStructS8_S8_SB_S8_S8_SB_Pv, version libcudnn_ops_infer.so.8 not defined in file libcudnn_ops_infer.so.8 with link time reference
Aborted
sh-4.2$

@1LOVESJohnny Did you solve it by adding os.enviro['LD-PRELOAD'] to the py file? I tried this way, but it did not work. Can you show me your solution code?

Hi I took a glimpse of your .txt file. Here are my detailed solution, note that I just input all the commands in the bash within a conda env:

First, add up the LD_LIBRARY_PATH with your installed CUDA+cudnn directory.
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib/:$LD_LIBRARY_PATH

Then, set up the LD_PRELOAD variable to the library directory with the command as below: (in your case)
export LD_PRELOAD=/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8

Anyways, as stated before, it is just a walkaround and suggest you to conduct all these commands under a conda env so as to protect your global environment neat.
Hope it can help!

@1LOVESJohnny Thank you a lot. My problem got solved by trying the first step of your solution.
You saved my day. I really appreciate for your help.