Issue 1540: added ProgXML to the response in the run endpoint

Description
This pull request fixes the inconsistency between code view and compilation for blocks that are incomplete, incorrect or are not supported by the plugin. The annotated XML is now added to the response so that error info messages will occur on the affected block.
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
By running the integration tests and following the issue description

merged with 205909dd565b6cd6f7158a114ab672777a9a9b26


Add rinse32 script

Add a rinse32 script which is capable of building 32-bits docker images for RPM based distro's
Signed-off-by: Robin Geuze<EMAIL_ADDRESS>

ping @tianon @jfrazelle ptal

ping @tianon

ping @tianon PTAL :heart:

Have no idea about this :( ping @tianon @tiborvass @mlaventure

Sorry about missing this!
I'm not sure I fully understand what's being done here that can't be done by just adding --arch i386 to the normal rinse script? (or by using linux32 on the entire mkimage.sh process)

Ye I tried running linux32 on the whole script and specifying --arch i386 in the optional arguments first. However that didn't seem to work properly, although I have to admit I can't recall exactely why that was. If I find some free time I'll play with it again see if I can find the specific reason.

@RobinGeuze let me close this PR while you test out the alternatives, but ping me if it has to be reopened


Add documentation about the setup file

Hello 👋,
There is a setup file in this repo that is not documented.
https://github.com/johannschopplich/nitro-test-utils/blob/main/src/setup.ts

Ok, it seems to be using internally and not related to #6


Files upload

Hi,
I have a requirement to submit the Textarea along with user uploaded files. Is there a way to upload files and send to API?

@mudasarellahi We was planning to add this functionality, but no one asked for it so far.
We will look into implementing it in the upcoming version.
Do you have requirements for amount of files, their sizes and formats?

When can we expect this feature to be onboarded ?

@vanimesh I was planning to close most of the issue for Data Manipulation panel in July/August.
We got behind with required refactoring, which was completed in 3.0.0.

@utkarshsalunkhe This feature request is schedule for the upcoming release.


Eagle heavily outdated

Issue description
Eagle is version 7.7.0, while the latest is 9.1.0. I tried fixing it myself (expression), but I got an OpenGL error I couldn't fix. It runs with steam-run-native; perhaps it's best to use an FHS env?
Steps to reproduce
Install Eagle(, run it as freeware), watch it tell you that it's out of date.
Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.

I stumbled across the same problem and also tried fixing the expression myself.
With this I am running into a locale related error:
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid

The epression from above results in the same error.
If we upgrade eagle here, I'd consider providing the old eagle package as an eagle7 if someone dose not want to upgrade to the versions after Cadsoft got acquired by Autodesk as they require you to create an account.
Maybe @bjornfor can help here?

+1 for keeping an eagle7 attribute. I'm afraid I can not help much with updaring to the latest version.

This can be closed now as the Eagle (9) has landed (in master).

Ref. 9e4d2d723abbe76e02945e45d4024ad91d9bc63c.


Improved alias.go files by generating them

Description
This PR improves the alias.go files by generating them using Henrik's tool. Closes #103.
Checklist

[x] Targeted PR against correct branch.
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Wrote unit tests.
[ ] Wrote integration tests (simulation & CLI).
[ ] Updated the documentation.
[x] Added an entry to the CHANGELOG.md file.
[x] Re-reviewed Files changed in the Github PR explorer.

Codecov Report

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

@@          Coverage Diff           @@
##           master    #104   +/-   ##
======================================
  Coverage    82.4%   82.4%
======================================
  Files          32      32
  Lines        1478    1478
======================================
  Hits         1218    1218
  Misses        231     231
  Partials       29      29

Continue to review full report at Codecov.

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


Uncaught TypeError: _fs.readFileSync is not a function

When I do this:
workbook = XLSX.readFile('..\\Downloads\\sample_project.xlsx');
console.log(workbook);

I get this error in the console:
xlsx.js:1895 > Uncaught TypeError: _fs.readFileSync is not a function

readFile only works on server-side deployments like nodejs and extendscript.  Browsers do not generally provide a way to access a file by name; you have to use a file input form element or drag-and-drop to access data.

const readInputFile = (e) => {
        console.log(e.target.files)
        const workbook = XLSX.readFile(e.target.files)
        const worksheet = {}
        for (const sheetName of workbook.SheetNames) {
            worksheet[sheetName] = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName])
        }
        console.log(worksheet)
    }

<input type="file" accept=".xlsx" onChange={(e) => readInputFile(e)} name="file" id="file"></input>

I am facing same issue


Changes for opensearch 2.6

@aparo could you please review?

The project works with jdk 15.
I've tried jdk 17 but got this error when running gradle build
* What went wrong:
Execution failed for task ':licenseHeaders'.
> java.lang.ClassCastException: class org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to class org.apache.xerces.xni.parser.XMLParserConfiguration (org.apache.xerces.parsers.XIncludeAwareParserConfiguration is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @6a72c479; org.apache.xerces.xni.parser.XMLParserConfiguration is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @74750256)

Hi! Thank you for the great contribution. Do you have any update on this?

@arcoyk hi! and thank you.
No update. This has been waiting for review for a long time.

@arcoyk merged


Uniformed code style

I see your some of functions, the return type defined bool, however you alway use 0 or 1 as the return value.
maybe you should include #include <stdbool.h> , instead of 0 or 1 with true or false.
above all, just my personal advice.
last but not the least, I like you project.

Personally I'm not big on the use of stdbool.h as it's just a typedef for 1 and 0 anyway, I think there are at most a few instances of an actual 'bool' type being used in the exengine source.  I'll probably change them to be an int-type.


Error when trying to edit crafted Shaper/Elder Items

Hello,
when i try to change my crafted Elder/Shaper Items i get this error-message :
https://imgur.com/a/WXxYC
I have Version 1.4.74
I can craft a new item and use it, but can't edit it once it is saved.
It happens on all Shaper/Elder items.
Only pressing F5 helps.

This should be fixed in the next update; sorry for the delay.


get columns have occured the error

  let cursor = conn.columns("", "", "", "")?;
        let arrow_record_batches = OdbcReaderBuilder::new()
            .with_max_bytes_per_batch(256 * 1024 * 1024)
            .build(cursor)?;
        let table_batches = arrow_record_batches.collect::<Vec<_>>();

called `Result::unwrap()` on an `Err` value: Odbc(ColumnFailure { name: "TABLE_SCHEM", index: 1, source: ZeroSizedColumn { sql_type: Varchar { length: None } } })

If you print the error you can see the actual message. I at least try to have good error messages:
/// Read error related to a specific column
#[derive(Error, Debug)]
pub enum ColumnFailure {
    /// We are getting a display or column size from ODBC but it is not larger than 0.
    #[error(
        "The ODBC driver did not specify a sensible upper bound for the column. This usually \
        happens for large variadic types (E.g. VARCHAR(max)). In other cases it can be a \
        shortcoming of the ODBC driver. Try casting the column into a type with a sensible upper \
        bound. `arrow-odbc` also allows the application to specify a generic upper bound, which it \
        would automatically apply. The type of the column causing this error is {:?}.",
        sql_type
    )]
    ZeroSizedColumn { sql_type: OdbcDataType },
    //...
}

See: https://github.com/pacman82/arrow-odbc/blob/860361302c83759d725d773e5ed392c0bd974ee6/src/reader.rs#L215

Also, this seems to be more in the realm of arrow-odbc than odbc-api.

@pacman82 I saw this news, but I still think it is unreasonable. I haven't done anything, I just want to get the column information of the database, then I can think that this function is not available at all.

Set max_text_size to 4096 and you will likely be fine.

Closing this issue, since this is not an odbc-api issue anyway.


(WIP) feat: replace runAtTargetFps to useRunAtTargetFps

What
runAtTargetFps doesn't work properly when there are multiple usages of it in a frame processor.
const frameProcessor = useFrameProcessor((frame) => {
  runAtTargetFps(15, () => {
    'worklet';
    scanFaces(frame);
  });
  runAtTargetFps(5, () => {
    'worklet';
    scanCodes(frame);
  });
});

scanFrame is never called while scanCodes works well with throttling.
Also, nested runAtTargetFps doesn't work either
const frameProcessor = useFrameProcessor((frame) => {
  runAtTargetFps(15, () => {
    'worklet';
    const faces = scanFaces(frame);
    runAtTargetFps(5, () => {
      'worklet';
      recognizeFaces(faces);
    });
  });
});

This is because the earlier call of runAtTargetFps updates lastFrameProcessorCall to performance.now() so that the following call of runAtTargetFps never executes func since diffToLastCall would be very small.

Changes
Introduce new useRunAtTargetFps hook that creates a separated shared value for the last execution time.
Now we can use like
const throttleScanFaces = useRunAtTargetFps();
const throttleScanCodes = useRunAtTargetFps();
const frameProcessor = useFrameProcessor((frame) => {
  throttleScanFaces(15, () => {
    'worklet';
    scanFaces(frame);
  });
  throttleScanCodes(5, () => {
    'worklet';
    scanCodes(frame);
  });
});

However, I think we can give a better name to it than useRunAtTargetFps.

Tested on
iPhone 13

Related issues
https://github.com/mrousavy/react-native-vision-camera/pull/1466

Ah, good catch! I think that API is a bit too complicated, let me see if I can come up with a better solution.

Hey! I just found a different solution for this that doesn't require any changes from the user: https://github.com/mrousavy/react-native-vision-camera/pull/1466/commits/af4e366312a2335535f80109e6bf0b3a977444f0
This will only work without Reanimated though, as in Reanimated nested worklets won't get transpiled (no __workletHash in nested worklets) - see https://github.com/software-mansion/react-native-reanimated/pull/4053 (cc @tomekzaw @chrfalch @kmagiera jfyi)


After calculating the score map, how can I classify if input data is defected or not?

After training, I try to make a function that predict on a single image.
def predict(query_img, support_img, threshold=0.5):
    augment_support_img = support_img
    # rotate img with small angle
    for angle in [-np.pi/4, -3 * np.pi/16, -np.pi/8, -np.pi/16, np.pi/16, np.pi/8, 3 * np.pi/16, np.pi/4]:
        rotate_img = rot_img(support_img, angle)
        augment_support_img = torch.cat([augment_support_img, rotate_img], dim=0)
    # translate img
    for a,b in [(0.2,0.2), (-0.2,0.2), (-0.2,-0.2), (0.2,-0.2), (0.1,0.1), (-0.1,0.1), (-0.1,-0.1), (0.1,-0.1)]:
        trans_img = translation_img(support_img, a, b)
        augment_support_img = torch.cat([augment_support_img, trans_img], dim=0)
    # hflip img
    flipped_img = hflip_img(support_img)
    augment_support_img = torch.cat([augment_support_img, flipped_img], dim=0)
    # rgb to grey img
    greyed_img = grey_img(support_img)
    augment_support_img = torch.cat([augment_support_img, greyed_img], dim=0)
    # rotate img in 90 degree
    for angle in [1,2,3]:
        rotate90_img = rot90_img(support_img, angle)
        augment_support_img = torch.cat([augment_support_img, rotate90_img], dim=0)
    augment_support_img = augment_support_img[torch.randperm(augment_support_img.size(0))]

    train_outputs = OrderedDict([('layer1', []), ('layer2', []), ('layer3', [])])

    # torch version
    with torch.no_grad():
        support_feat = STN(augment_support_img.to(device))
    support_feat = torch.mean(support_feat, dim=0, keepdim=True)
    train_outputs['layer1'].append(STN.stn1_output)
    train_outputs['layer2'].append(STN.stn2_output)
    train_outputs['layer3'].append(STN.stn3_output)

    for k, v in train_outputs.items():
        train_outputs[k] = torch.cat(v, 0)

    # Embedding concat
    embedding_vectors = train_outputs['layer1']
    for layer_name in ['layer2', 'layer3']:
        embedding_vectors = embedding_concat(embedding_vectors, train_outputs[layer_name], True)

    # calculate multivariate Gaussian distribution
    B, C, H, W = embedding_vectors.size()
    embedding_vectors = embedding_vectors.view(B, C, H * W)
    mean = torch.mean(embedding_vectors, dim=0)
    cov = torch.zeros(C, C, H * W).to(device)
    I = torch.eye(C).to(device)
    for i in range(H * W):
        cov[:, :, i] = torch.cov(embedding_vectors[:, :, i].T) + 0.01 * I

    train_outputs = [mean, cov]

    test_outputs = OrderedDict([('layer1', []), ('layer2', []), ('layer3', [])])

    # model prediction
    query_feat = STN(data.to(device))
    z1 = ENC(query_feat)
    z2 = ENC(support_feat)
    p1 = PRED(z1)
    p2 = PRED(z2)

    test_outputs['layer1'].append(STN.stn1_output)
    test_outputs['layer2'].append(STN.stn2_output)
    test_outputs['layer3'].append(STN.stn3_output)

    for k, v in test_outputs.items():
        test_outputs[k] = torch.cat(v, 0)

    # Embedding concat
    embedding_vectors = test_outputs['layer1']
    for layer_name in ['layer2', 'layer3']:
        embedding_vectors = embedding_concat(embedding_vectors, test_outputs[layer_name], True)

    # calculate distance matrix
    B, C, H, W = embedding_vectors.size()
    embedding_vectors = embedding_vectors.view(B, C, H * W)
    dist_list = []

    for i in range(H * W):
        mean = train_outputs[0][:, i]
        conv_inv = torch.linalg.inv(train_outputs[1][:, :, i])
        dist = [mahalanobis_torch(sample[:, i], mean, conv_inv) for sample in embedding_vectors]
        dist_list.append(dist)

    dist_list = torch.tensor(dist_list).transpose(1, 0).reshape(B, H, W)

    # upsample
    score_map = F.interpolate(dist_list.unsqueeze(1), size=data.size(2), mode='bilinear',
                                align_corners=False).squeeze(1).numpy()

    # apply gaussian smoothing on the score map
    for i in range(score_map.shape[0]):
        score_map[i] = gaussian_filter(score_map[i], sigma=4)

    scores = np.asarray(score_map)
    # Normalization
    max_anomaly_score = scores.max()
    min_anomaly_score = scores.min()
    scores = (scores - min_anomaly_score) / (max_anomaly_score - min_anomaly_score)

    pred_mask = np.where(scores > threshold, 1, 0)

    clasify_result = np.any(scores > threshold)

    return pred_mask, clasify_result

In the function, I assume if any pixel of scores has value of 1, then input data will be classified as defected, if none of the pixel has value of 1 then it will be normal.  Is this a right way to classify the input image?
There is one problem. When I feed the model a normal image, there are many values of 1 on predicted mask (I even use an image from training data).

I apply the same function to anomaly image. The result is quiet good.

 Could you tell me your test result on normal images?

After checking your visualization code, I find a bug. You use the normalization of the score map for only one image:
max_anomaly_score = scores.max()
min_anomaly_score = scores.min()
scores = (scores - min_anomaly_score) / (max_anomaly_score - min_anomaly_score)

Then the max score in the map will always become 1, even if all the original scores in the whole map are very small. That is why there are some anomalies be `detected' on a normal image running your visualization code.

After checking your visualization code, I find a bug. You use the normalization of the score map for only one image:
max_anomaly_score = scores.max()
min_anomaly_score = scores.min()
scores = (scores - min_anomaly_score) / (max_anomaly_score - min_anomaly_score)

Then the max score in the map will always become 1, even if all the original scores in the whole map are very small. That is why there are some anomalies be `detected' on a normal image running your visualization code.

Thank you for your response.
As I understand, I need to save the "max score" and "min score" of the test set. Later, I use these two values to normalize my input image. Is that right?

You are right. But it means that you need to get anomaly maps for all images, and then you can visualize them one by one.
Another solution is that you can visualize them separately like your code, but need to update the max and min scores continuously in the whole process. The visualization results at the very beginning may have false positives, but this problem will gradually ease.

If there are no other problems I close this issue.

if testset only has a image, how can I classify if input data is defected or not?

if testset only has a image, how can I classify if input data is defected or not?


Add my portfolio

Hello Sir,
I'm SM Saif with Github id-SAIF0556
I want to contribute to your repository by adding my portfolio website.
Kindly assign it to me and consider my contribution.I'll be very thankful to you for this opportunity.
Regards
SM Saif

I would like to add my portfolio
link - https://portfolio-ruby-seven-56.vercel.app/


[Feat]: Add changing icon to signal_strength, possibly others

The request
Add changing entity icon to signal strength entities, possibly others like fan or actuator it suitable icons are available
Additional information
https://developers.home-assistant.io/docs/core/entity#icon-property

Closed with https://github.com/mariusz-ostoja-swierczynski/tech-controllers/pull/69


Problem read input path

I am trying to use VOC2012 to retrain the model, but always there is the problem of finding the --path correctly, I don't know why but it is really strange, I have the error: cannot find the path, which even doesn't exist in my computer. I used "python3 train_frcnn.py -p /path/of/VOC2012" for compiling.

works for me but i realized that i also needed 2007 PAC data which i downloaded here:
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/
i put them both in the same path and it seemed to work for me.  im using ubuntu 16.04, tensor flow 1.0.1 and keras 2.0.2

Thanks a lot, I find out that I need to add ' ' to the 'path' then delete the VOC2007 option in pascal_voc_parser.py... I will try your method too, there are some changes between python2 and python3, I have also some exceptions now...

yea im using python 2.7 but on linux so there's no tensorflow incompatibility which made it easier.  i assume youre running on windows?
for what it's worth, i find spinning up a separate amazon EC2 instance the easiest way to do this stuff


Glide-core UDS Socket Handling Rework

1.Introduced a user-land mechanism for ensuring singleton behavior of the socket, rather than relying on OS-specific semantics. This addresses the issue where macOS and Linux report different errors when the socket path already exists.
2.Simplified the implementation by removing unnecessary abstractions, including redundant connection retry logic.

Issue link
This Pull Request is linked to issue (URL): [https://github.com/valkey-io/valkey-glide/issues/2433]
Checklist
Before submitting the PR make sure the following are checked:

[X] This Pull Request is related to one issue.
[X] Commit message has a detailed description of what changed and why.
[X] Tests are added or updated.
[X] CHANGELOG.md and documentation files are updated.
[X] Destination branch is correct - main or release
[X] Commits will be squashed upon merging.

Add a changelog please


ARROW-898: [C++/Python] Use shared_ptr to avoid copying KeyValueMetadata, add to Field type also

This also adds support for adding and removing schema-level metadata to the Python Schema wrapper object. Need to do the same for Field but putting this up for @cpcloud to review since he's working on using this in parquet-cpp

This is ready to go. I created https://issues.apache.org/jira/browse/ARROW-906 as a follow up to serialize the field-level metadata to Flatbuffers.

+1

Sweet, thanks for doing this


"Unknown error occurred" when trying to add a new integration (after pvSystemId, keyid, keyvalue)

Hello,
after I got my pvSystemId, keyid and keyvalue, I tried to add a new integration with your HACS
I enter pvSystemId, keyid and keyvalue.
After some seconds, there is a message "Unknown error occurred"
Version of the custom_component
0.2.4
Debug log
by the way, what is the correct name of your HACS for Logger ?
custom_components.Fronius_Solarweb: info
or
custom_components.solarweb: info

For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#load_verify_locations
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in <module>
    sys.exit(main())
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
    exit_code = runner.run(runtime_conf)
  File "/usr/src/homeassistant/homeassistant/runner.py", line 189, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete
    self.run_forever()
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever
    self._run_once()
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1990, in _run_once
    handle._run()
  File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 556, in start
    task = asyncio.Task(coro, loop=loop, eager_start=True)
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 477, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 567, in _handle
    return await handler(request)
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
    response = await handler(request)
  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
    result = await handler(request, **request.match_info)
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
    return await func(self, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
    return await super().post(request, flow_id)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
    return await method(view, request, data, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 122, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 367, in async_configure
    result = await self._async_configure(flow_id, user_input)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 414, in _async_configure
    result = await self._async_handle_step(
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 517, in _async_handle_step
    result: _FlowResultT = await getattr(flow, method)(user_input)
  File "/config/custom_components/solarweb/config_flow.py", line 38, in async_step_user
    info = await self._validate_input(user_input)
  File "/config/custom_components/solarweb/config_flow.py", line 83, in _validate_input
    client = Fronius_Solarweb(

2024-12-03 00:48:01.906 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 114, in __call__
    result = await fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/fronius_solarweb/api.py", line 120, in get_pvsystem_meta_data
    json_data = await self._check_api_response(r)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/fronius_solarweb/api.py", line 71, in _check_api_response
    response.raise_for_status()
  File "/usr/local/lib/python3.12/site-packages/httpx/_models.py", line 763, in raise_for_status
    raise HTTPStatusError(message, request=request, response=self)
httpx.HTTPStatusError: Client error '403 Forbidden' for url 'https://api.solarweb.com/swqapi/pvsystems/15b86207anonymisiert'
For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 477, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 567, in _handle
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
    return await super().post(request, flow_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
    return await method(view, request, data, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 122, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 367, in async_configure
    result = await self._async_configure(flow_id, user_input)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 414, in _async_configure
    result = await self._async_handle_step(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 517, in _async_handle_step
    result: _FlowResultT = await getattr(flow, method)(user_input)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarweb/config_flow.py", line 38, in async_step_user
    info = await self._validate_input(user_input)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarweb/config_flow.py", line 87, in _validate_input
    system_data = await client.get_pvsystem_meta_data()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 189, in async_wrapped
    return await copy(fn, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 111, in __call__
    do = await self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 153, in iter
    result = await action(retry_state)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/_utils.py", line 99, in inner
    return call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/tenacity/__init__.py", line 419, in exc_check
    raise retry_exc from fut.exception()
tenacity.RetryError: RetryError[<Future at 0x7f0f869cb320 state=finished raised HTTPStatusError>]
2024-12-03 00:48:10.258 INFO (SyncWorker_16) [pyfritzhome.fritzhome] Updating Devices ...

Have you confirmed your details work on the official Fronius test site?

custom_components.solarweb

Have you confirmed your details work on the official Fronius test site?
Yes.
The official app uses the same API and the same keyid and keyvalue ;-)

Can I send you my pvSystemId, keyid, keyvalue via Email?
Does your HACS act like the official app, with Cookies, Bearer-Token, etc.?

If you need help with access you need to contact Fronius directly

If you need help with access you need to contact Fronius directly

Access works.
I asked if you want my pvSystemId, keyid, keyvalue for testing
`GET https://swqapi.solarweb.com/info/user?details=accountAttributes,contractinformation HTTP/2.0
accesskeyid: FKIAB4CDA7anonym
accesskeyvalue: 67315e-anonym
content-type: application/json
authorization: Bearer eyJ4NXQiOiJOalpoT0anonym
accept-encoding: gzip
user-agent: okhttp/4.12.0
HTTP/2.0 401
content-type: application/json
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
referrer-policy: origin-when-cross-origin
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
content-security-policy: default-src 'self'
date: Mon, 02 Dec 2024 22:23:26 GMT
set-cookie: lbc=!WXhQrjsPASTKPCUDh2dzVc1rNXSSveiHbbdZAttLMczpV+4coTvjanonym=; path=/; Httponly; Secure
set-cookie: TS01f7cda4=015bdaa268772e0080612579f5345cd6ae5anonym; Path=/; Domain=.swqapi.solarweb.com
{"responseError":1113,"responseMessage":"JWT expired."}
GET https://swqapi.solarweb.com/info/user?details=accountAttributes,contractinformation HTTP/2.0
accesskeyid: FKIABanonym
accesskeyvalue: 67315e19-anonym
content-type: application/json
authorization: Bearer eyJ4NXQiOiJOalpoT0dJMVpqQXpaVGanonym
accept-encoding: gzip
user-agent: okhttp/4.12.0
GET https://swqapi.solarweb.com/pvsystems?limit=1000 HTTP/2.0
accesskeyid: FKIABanonym
accesskeyvalue: 67315e19-anonym
content-type: application/json
authorization: Bearer eyJ4NXQiOiJOalpoT0dJMVpqQXpaVGt5TlRVNU1anonym
accept-encoding: gzip
user-agent: okhttp/4.12.0
if-modified-since: Mon, 02 Dec 2024 20:32:51 GMT
HTTP/2.0 200
content-length: 1237
content-type: application/json; charset=utf-8
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
referrer-policy: origin-when-cross-origin
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
content-security-policy: default-src 'self'
x-rate-limit-limit: 1h
x-rate-limit-remaining: 29998
x-rate-limit-reset: 2024-12-02T23:00:00.0000000Z
date: Mon, 02 Dec 2024 22:23:27 GMT
set-cookie: lbc=!bAe8RNl1sh5oJdoDh2dzVc1rNXSSvZ5GNXx8jikclot/anonym=; path=/; Httponly; Secure
set-cookie: TS01f7cda4=015bdaa26807ec15fbb98ca9701ff53anonym; Path=/; Domain=.swqapi.solarweb.com
{"pvSystems":[{"pvSystemId":"15b86207-6115anonym","name":"Symo GEN24","address":{"country":"DE","zipCode":"12345","street":"strasse 1","city":"musterstadt","state":"BW"},"pictureURL":"https://froniussestimagesweprod.blob.core.windows.net/pvsystem-images/00000000-0000-0000-0000-000000000gekuerzt","peakPower":10560.0,"installationDate":"2024-09-03T17:35:54Z","lastImport":"2024-12-02T21:56:33Z","meteoData":"pro","timeZone":"Europe/Berlin"},{"pvSystemId":"d941ac4e-394anonym","name":"SymoAdvanced","address":{"country":"DE","zipCode":"12345","street":"strasse. 1","city":"musterhausen","state":"BW"},"pictureURL":"https://froniussestimagesweprod.blob.core.windows.net/pvsystem-images/00000000-0000-0000-0000-000000000000%2F2b697a87gekuerzt","peakPower":12000.0,"installationDate":"2024-09-18T08:03:34Z","lastImport":"2024-12-02T16:09:44Z","meteoData":"light","timeZone":"Europe/Berlin"}],"links":{"first":"https://swqapi.solarweb.com/pvsystems?offset=0&limit=1000","prev":null,"self":"https://swqapi.solarweb.com/pvsystems?offset=0&limit=1000","next":null,"last":"https://swqapi.solarweb.com/pvsystems?offset=0&limit=1000","totalItemsCount":2}}
`

Check your pydantic version in HA and check you're using the right release version of this integration to match.

Check your pydantic version in HA and check you're using the right release version of this integration to match.

How do I do this?
keyid and keyvalue are sniffed from traffic of official app, so it has to be correct


Feature/jupyterhub pattern

Issue #, if available: #43
Description of changes:
Added JupyterHub Pattern
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@youngjeong46 do you mind taking a look at the conflicts here?

@shapirov103 I finally got it to work. As it turns out, using Lookup won't work on due to region not being set (normally it won't do a lookup but it must be performed since context file doesn't exist on commits). There's a couple known issues around this on GitHub. I've rewired things to use Delegating Hosted Zone similar to the nginx example.
It passed the checks, and have been deployed successfully on my dev account. It should be good to go for a review.


File dialog

File dialog function is very scarce, there is no good solution, if you use rfd and other crates will cause the program to crash.
too hard :(

I am confused how is this a issue for iced_aw?

No, what I mean is that there is a lack of available File dialog functionality, rfd causes crashes, there is no other solution, request someone to add File dialog functionality to iced_aw.

you mean there is no File Dialog widget. I would wait for Iced to add that OR attempt to add it yourself as file dialog is not a fun thing to work with. Since we need to support multiple Operating systems.


Set modal bottom sheet barrier color

Description
When presenting a Modal Bottom Sheet this PR allows to pass down a value for the color of the modal barrier. This is a non-breaking change, because the default behavior is being kept.
Tests
I added the following tests:

A test which confirms that the presented modal barrier color reflects the passed in value for the color.

Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (Please read Handling breaking changes). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.

@darrenaustin any thoughts here. Has been laying around for a bit.

@darrenaustin any thoughts here. Has been laying around for a bit.

Sorry about that. Looks good. I will push this when the build goes green. Thanks for submitting this.

@katallaxie Shouldn't this also be exposed in the BottomSheetThemeData. This would allow the same modal sheet barrier color to be used across the entire app.
It would also be more consistent with the other properties available in the BottomSheetThemeData like backgroundColor and shape.

@droidery I thought of this. But because there is default behavior that actually reflects the standard design guidelines I thought it would be better to have this more as a special customization.


Wireframe Session Recording appears mangled

Version
3.13.3
Steps to Reproduce

Added PostHog to my project
Enabled session recording with the default method (wireframe) and disabled masking Images.
Started app and Recorded some sessions
Went to PostHog to view them and they're mangled.

The app is a UIKit-based app, so there shouldn't be any issues with wireframe. Maybe one of my libraries is causing the issue if it does something weird to the view hierarchy?
Expected Result
A nice wireframe layout of my app's UI
Actual Result

@ioannisj Yes! UIStoryboard with autolayout.

@jadar a workaround for now would be to use the screenshot mode which does not have such issues.

@marandaneto Yep, that's what we're doing. :) We do that already on our SwiftUI apps too.


Provide no-op variant for android builds

Great library!
Have you considered creating no-op version of it so we can do
debugImplementation("realVersion")
releaseImplementation("noopVersion")

It's pretty standard practice on android to avoid bringing unnecessary libraries to release build

Released in 2.2.0. No-op dependency is stacktrace-decoroutinator-noop.
Please pay attention on small inconsistency between version 2.1.0 and 2.2.0: now method DecoroutinatorRuntime.load() should be called manually. See details in #3.


goroutine stack exceeds<PHONE_NUMBER>-byte limit when processing yaml anchors

After a recent change in my homelab repo, the kustomize-controller started crashing because of a stack overflow. The backtrace suggests this is caused by processing yaml anchors. I'm trying to identify the specific document that is causing this.
Kubernetes: v1.30.4
Distribution: Talos v1.7.6
kustomize-controller: v1.3.0
kustomization-controller-crash.log

You have a circular reference in your YAML somewhere. Kustomize can't properly render your resources because it's stuck in an infinite loop.

Yep I indeed has a circular reference. I don't know if something can be done in kustomize-controller or a downstream dependency to limit recursion before the stack explodes and error out.

This needs to happen in https://github.com/kubernetes-sigs/kustomize we don't process YAML in the controller.


error: Signing for "RNHTMLtoPDFTests" requires a development team. Select a development team in the project editor. (in target 'RNHTMLtoPDFTests')

This error occurring on an ios production build. For now have removed all references to RNHTMLtoPDFTests from project.pbxproj, but why is this necessary?

Exactly, what the heck is this error ?!

Solution:
(XCode) Project > Libraries > RNHTMLtoPDF.xcodeproj > Build Settings > Development Team >
Debug && Release add "Any IOS SDK" on the left side and select your development team on the right side.

@christopherdro Do you have any plans to add a fix in for this?

@dancomanlive When I go into Libraries >  RNHTMLtoPDF.xcodeproj > Build Settings >  I cannot find Signing. Is there a way to add it or find it? The options I see are Deployment, Linking, Packaging, Search Paths, and User-Defined. Thanks in advance!

Does anyone resolved this issues.
We are stuck here and need to make build on urgent basis.
@dancomanlive We also tried added
(XCode) Project > Libraries > RNHTMLtoPDF.xcodeproj > Build Settings > Signing > Development Team
Still facing the same issue.
Any help would be appreciable.
Thanks

@kashifaliquazi I found that I needed to do the above suggestions with Build Settings on your specific package, but also, I needed to switch my build system in xCode to the Legacy Build System (Xcode --> Preferences --> dropdown switch to Legacy Build System)

Thanks for the quick response @ryekerjh.
But I tried above mentioned steps nothing is helping me I am still getting:
Signing for "RNHTMLtoPDFTests" requires a development team. Select a development team in the project editor.
Code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 12.1'

We also tried changing build setting to legacy systerm. (but from project settings not from prefrences )

Still struggling with this issues
Thanks

(XCode) Project > Libraries > RNHTMLtoPDF.xcodeproj > Build Settings >
Then you need to select [All]. By default [basic] is selected.
Then select yourself in the development team


Make error reporting more verbose

Before only error message was dispalyed in logs providing no information, like exception details or stacktrace. Now error message is logged together with exception, including stacktrace.

@Albertoimpl are you ok if I just merge it, despite the failed check? There is no point in writing a test for String.format just for coverage.


More than four state variables with time iteration

Hello -
I'm trying to solve a non-linear model which has some lagged variables in it. I was getting an error message putting them in directly into the 'arbitrage' section, so I created new state variables, and added them to the 'transition' section.
Whilst this seems to be fine for perturbation methods, once more than 4 state variables are in the transition section I get a complicated error message. Is this because time iteration doesn't support more than 4 states?
Since github won't let me attach a .yaml, below is a very simple minimum workable example. Its a 3 eq linear new keynesian model where the taylor rule uses some lagged variables (the actual model I'm solving is non-linear, hence the desire to use time iteration). I also include the error message below as well.
Any help much appreciated. Great library
Tim
# Minimum workable example for lagged vars

name: MWE

symbols:
  states: [pi_s, r_s, x_1, i_1, i_2]
  controls: [pi, x, i]
  exogenous: [eps_pi, eps_r]
  parameters: [bbeta, kkappa, ssigma, rho_pi]

equations:

  arbitrage:
    - pi = bbeta*pi(+1) + kkappa*x + pi_s
    - x = -(1/ssigma)*(i - pi(+1)) + x(+1) + r_s
    - i = 2.5*pi + x_1 + 0.25*i_1 + 0.1*i_2

  transition:
    - pi_s = rho_pi*pi_s(-1) + eps_pi
    - r_s = 0.7*r_s(-1) + eps_r
    - x_1 = x(-1)
    - i_1 = i(-1)
    - i_2 = i_1(-1)

calibration:
  bbeta : 0.9
  kkappa : 0.4
  ssigma : 2
  rho_pi : 0.7

  # ss vals
  x_1 : 0
  i_1 : 0
  i_2 : 0
  pi : 0
  x : 0
  i : 0
  pi_s : 0
  r_s : 0
  volrs : 0

exogenous: !Normal
  Sigma: [[0.1, 0], [0, 0.1]]

domain:
  pi_s : [-0.1, 0.1]
  r_s : [-0.1, 0.1]
  x_1 : [-0.3, 0.3]
  i_1 : [-0.3, 0.3]
  i_2 : [-0.3, 0.3]

options:
  grid: !CartesianGrid
    orders: [5, 5, 5, 5, 5]

The error message takes the form:
TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Invalid use of Function(<function _filter_cubic at 0x0000024A0C8E6168>) with argument(s) of type(s): (UniTuple(Tuple(float64, float64, int32) x 5), array(float64, 6d, C))
 * parameterized
In definition 0:
    TypeError: __filter_cubic() missing 1 required positional argument: 'C'
    raised from C:\Users\tmund\Anaconda3\envs\Taylor\lib\site-packages\numba\core\typing\templates.py:579
In definition 1:
    TypeError: __filter_cubic() missing 1 required positional argument: 'C'
    raised from C:\Users\tmund\Anaconda3\envs\Taylor\lib\site-packages\numba\core\typing\templates.py:579
In definition 2:
    UnboundLocalError: local variable '___filter_cubic' referenced before assignment
    raised from C:\Users\tmund\Anaconda3\envs\Taylor\lib\site-packages\interpolation\splines\prefilter_cubic.py:293
In definition 3:
    UnboundLocalError: local variable '___filter_cubic' referenced before assignment
    raised from C:\Users\tmund\Anaconda3\envs\Taylor\lib\site-packages\interpolation\splines\prefilter_cubic.py:293
This error is usually caused by passing an argument of a type that is unsupported by the named function.
[1] During: resolving callee type: Function(<function _filter_cubic at 0x0000024A0C8E6168>)
[2] During: typing of call at C:\Users\tmund\Anaconda3\envs\Taylor\lib\site-packages\interpolation\splines\prefilter_cubic.py (298)

File "..\..\..\..\Anaconda3\envs\Taylor\lib\site-packages\interpolation\splines\prefilter_cubic.py", line 298:
def prefilter_cubic(*args):
    return _filter_cubic(*args)
    ^

yes, interpolation.py doesn't support prefiltering for more than four dimensions . It is issue https://github.com/EconForge/interpolation.py/issues/40 .
What you can probably do is change the interpolation method, try passing interp_method='linear' to time_iteration.

Thanks for the quick reply - much appreciated.


Update ports in docker-compose.yml

This PR changes the ports in our docker-compose.yml file. This change is already present, as an uncommitted change, on staging and production (or at least, it is present when the apps are running and reachable). I don't know why the ports were set to 8000:80 in the first place, but testing this locally, upon running docker-compose up -d, I'm able to reach the app directly at localhost, rather than having to run python manage.py runserver <a port that isn't 8000>.

Yay! excellent


Support imports having multiple lines (incl. conditionals, comments, and/or annotations)

Before:
import 'package:kfx_dependency_injection/kfx_dependency_injection/platform_info.dart';
import 'package:mockito/annotations.dart';

// This is required:
import 'package:mockito/mockito.dart';

@GenerateNiceMocks([MockSpec<IAppSettingsRepository>(), MockSpec<IToDoRepository>()])
import "test_environment.mocks.dart";

After sorting:
import 'package:kfx_dependency_injection/kfx_dependency_injection/platform_info.dart';
import 'package:mockito/annotations.dart';

import 'package:mockito/mockito.dart';

import "test_environment.mocks.dart";

Both the comment and @GenerateNiceMocks are deleted when the sort occurs.
This package should stick // and @ lines to the same place they were before.
Or, at least, give us some option to ignore certain files, such as:
"dartImport.excludeGeneratedFiles": [
    "g.dart",
    "config.dart",
    "freezed.dart",
    "test_environment.dart"
  ],

Hi. Thank you for your detailed feedback. I'm working on an addition that'll fix both the issues you mentioned here as well as in #48. But please bear with me because I'm sick as heck right now :mask:
So the way I plan on supporting this is to make it such that when an import is detected, any lines above it and below it which are not other imports or line breaks will also be grabbed as part of that import's raw body, but the actual sorting will only be done by using the import's body still.
I'm not 100% sure on what you mean by "ignore certain files".  Can you explain that a bit more?

I'm not 100% sure on what you mean by "ignore certain files". Can you explain that a bit more?

The VS plugin DartImport has an option to ignore certain glob patterns, but I think this will not be useful here, so, please, ignore that bit =)

Just made a new release. You shouldn't be encountering any more problems. Let me know if you have any issues!


make tabs for issues and pr tables.

Right now they are below each other. Can we make them tabs?

Pagination should be front to prevent the need to scroll all the way down to access it.


2.25.0 TE does not work with new enhanced metadata PBIR preview format

Describe the bug
In TE, after updating column formatting, saving back to Power BI causes visuals to break.
To Reproduce
Steps to reproduce the behavior:

Open Power BI report in desktop with new enhanced PBIR preview option enabled.
Open TE and update table column format.
Save changes back to the connected database.

Expected behavior
I expect to see the format changes to be applied and visuals updated.
Observed behavior
Page visuals become corrupted and produce an error saying the model column does not exist.  Selecting the columns from the Power BI UI does not fix the issue.
Application specifics

Tabular Editor 2.25.8952.22276
Semantic Engine used: Power BI Desktop - 2.138.782.0 (24.11)
Model Compatibility Level: 1568

Additional context
Tester had two cups of coffee.

That sounds weird. Could you share a few screenshots to illustrate the issue? Also, what exactly did you set as the column format?

I tried to reproduce in a simple Power BI new file, but could not reproduce the error.  I will see if I run into the situation again.


Navigating to an external link from an ionic 4 app makes the hardware back button close the app where there is navigation history?

Navigate to an external link or display an interstitial Ad (AdMob) and then return to the app by clicking on the hardware back button. At this stage where there are pages in the history (navigation stack), clicking on the hardware back button will cause the app to close! Knowing that I had tried to register to the back button by:
this.platform.backbutton.subscribe(()=>{
this.navCtrl.pop();
// Also tried: this.navCtrl.back();
});

But it is still exiting the app!
Any idea about how to solve this?!

Thanks for the issue. I am going to close this as this is more of a support request. I would recommend checking to see if the AdMob plugin you are using allows for any control over the hardware back button in terms of returning you to the app after displaying an ad.


Load the un-detailed letterbox list page in order to be able to also load watch lists.

The downside of this is that we don't get to the movies here so we have to visit every single page to get the movie year which slows down at the script's runtime.

What I would suggest is that if the list is not the wishlist, we use the existing method using the details version (if the imdb_id_filter flags isn't set).
If it's a wishlist or imdb_id_filter is true, then we do the full search. E.g.

agreed. i just wanted to have less code but faster is better


arakoon crashed with exit status 40/n/a

On OVH i tried to restore an Arakoon from another node.
I (re)moved all the tlogs, head.db and main.db and started the Arakoon again.
What i saw was the head.db was copied from another Arakoon but not the tlx files which leads to following error:
2017-04-10 17:44:40 938215 +0200 - ovs01 - 49898/0 - arakoon - 316 - info - rename /mnt/hdd2/arakoon/voldrv/db/HdC8QGW6PDxBNgIZ.db.tmp -> /mnt/hdd2/arakoon/voldrv/db/HdC8QGW6PDxBNgIZ.db
2017-04-10 17:44:41 657588 +0200 - ovs01 - 49898/0 - arakoon - 317 - info - local_store::reopen Hotc::reopen succeeded
2017-04-10 17:44:41 657859 +0200 - ovs01 - 49898/0 - arakoon - 318 - warning - catchup_tlog failed: End_of_file; backtrace:; Raised at file "map.ml", line 122, characters 16-25; Called from file "src/core/lwt.ml", line 161, characters 4-40
ovs-arakoon-voldrv.service: Main process exited, code=exited, status=40/n/a

My solution was manually copy the head.db + tlx to this server.

pretty sure it's #185 which was fixed by #184

Can I close this one as duplicate?

go ahead.


Improve appearance of generated chunks border

Currently partially generated chunks are still rendered as part of the map - these should be ignored.

Oops I duplicated an issue on my own repo! See #6.


Commands are not being run

I have the following set up in a PHP class:
class Cron {
    public function run() {
        $config = [
            "emailFrom" =><EMAIL_ADDRESS>            "emailTo" =><EMAIL_ADDRESS>        ];

        $scheduler = new Scheduler($config);
        $scheduler->call('myFunc')->every()->minute()->output(APPPATH .'logs/cron.log');
    }

    function myFunc() {
        echo 'Message called from cron');
    }
}

I have a cron setup to call this every minute, however myFunc() never gets called. I can see a run method in the Scheduler class which never gets called. Am I missing something obvious in my setup?

Hi, you need to run the scheduler at the end of your run function. Just add $scheduler->run() after you have defined your schedules.


Add French Translations for Dashboard Widgets

Hello,
I've noticed that the package lacks French translations for its dashboard widgets.
I just added a widgets.php file in lang/fr.
Thank you,
Diego

thanks!


Fix outdated links in readme

Fixing outdated links with updated links to valid sections in the contributor guide.

#sign-off


add DQN(C++)

Hi! Dr. @lanctot !
In this PR, I added implements DQN in LibTorch(C++).
I kept in mind to develop an almost same interface with Pytorch.
Feel free to feedback:) Thank you!

THIS IS SO COOL!!!!! Thanks @Asugawara you are my hero... !! And in time for the release too :) :) <3 <3

Awesome!! Very cool addition. We should run a speed comparison :)
One other quick comment: run it through cpplint so it conforms to the Google's C++ style guide (80 character line width, etc…).

THIS IS SO COOL!!!!! Thanks @Asugawara you are my hero... !! And in time for the release too :) :) <3 <3

Thanks!
If there is something wrong, I'll fix it as soon as possible!

Awesome!! Very cool addition. We should run a speed comparison :)
One other quick comment: run it through cpplint so it conforms to the Google's C++ style guide (80 character line width, etc…).

Thanks for your advice!
I forgot to use "cpplint" perfectly.I've already fixed it!

Hi @Asugawara, I'm taking a look at this now, seems that the test is failing due to an out-of-bounds check failing:
terminate called after throwing an instance of 'std::out_of_range'
  what():  Span::at failed bounds check

I'm not getting a stack trace. Can you possibly run this under valgrind to see where it might be happening?

I ran it on the optimized code, here's the trace:
==4074183== Process terminating with default action of signal 6 (SIGABRT)
==4074183==    at 0x13F70CE1: raise (raise.c:51)
==4074183==    by 0x13F5A536: abort (abort.c:79)
==4074183==    by 0x13CA47EB: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==4074183==    by 0x13CAF965: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==4074183==    by 0x13CAF9D0: std::terminate() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==4074183==    by 0x13CAFC64: __cxa_throw (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==4074183==    by 0x7C2A84: void absl::lts_2020_09_23::base_internal::(anonymous namespace)::Throw<std::out_of_range>(std::out_of_range const&) (in /usr/local/google/home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x7C2AAA: absl::lts_2020_09_23::base_internal::ThrowStdOutOfRange(char const*) (in /usr/local/google/home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x5DF31D: open_spiel::tiny_hanabi::TinyHanabiState::InformationStateTensor(int, absl::lts_2020_09_23::Span<float>) const (in /usr/local/google/home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x4669D0: open_spiel::State::ObservationTensor(int) const (in /usr/local/google/home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x758B80: open_spiel::algorithms::torch_dqn::DQN::AddTransition(std::unique_ptr<open_spiel::State, std::default_delete<open_spiel::State> > const&, long, std::unique_ptr<open_spiel::State, std::default_delete<open_spiel::State> > const&) (in /usr/local/google/home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x75EB0D: open_spiel::algorithms::torch_dqn::DQN::Step(std::unique_ptr<open_spiel::State, std::default_delete<open_spiel::State> > const&, bool, bool) (in /usr/local/google/home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)

Would have to do it on the Debug build to get line numbers. Seems like a problem with the observations in TinyHanabi, maybe the test is not allocating a vector properly?

Hi! Dr. @lanctot! I appreciate the review and finding the bug!
I don't reproduce the BUG you found in my environment...
The test passed...
Let me know your environment!
FYI
my env
ProductName:	Mac OS X
ProductVersion:	10.15.7
BuildVersion:	19H524
gcc -dumpversion: 12.0.0
libtorch build-version: 1.8.0

Possibly your branch is out of date and does not have the -O2 optimizations turned on by default that we imported a few weeks back (https://github.com/deepmind/open_spiel/commit/c67942901bb23d560efc7c6506ee917769136edf), can you check?
(Also did you run it through valgrind?)

I got a stack trace via valgrind but without line numbers. It seems to be related to getting an observation from a state in GetTransition.
==4074183==
terminate called after throwing an instance of 'std::out_of_range'
  what():  Span::at failed bounds check
==4074183==
==4074183== Process terminating with default action of signal 6 (SIGABRT)
==4074183==    at 0x13F70CE1: raise (raise.c:51)
==4074183==    by 0x13F5A536: abort (abort.c:79)
==4074183==    by 0x13CA47EB: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==4074183==    by 0x13CAF965: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==4074183==    by 0x13CAF9D0: std::terminate() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==4074183==    by 0x13CAFC64: __cxa_throw (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==4074183==    by 0x7C2A84: void absl::lts_2020_09_23::base_internal::(anonymous namespace)::Throw<std::out_of_range>(std::out_of_range const&) (in /home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x7C2AAA: absl::lts_2020_09_23::base_internal::ThrowStdOutOfRange(char const*) (in /home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x5DF31D: open_spiel::tiny_hanabi::TinyHanabiState::InformationStateTensor(int, absl::lts_2020_09_23::Span<float>) const (in /home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x4669D0: open_spiel::State::ObservationTensor(int) const (in /home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x758B80: open_spiel::algorithms::torch_dqn::DQN::AddTransition(std::unique_ptr<open_spiel::State, std::default_delete<open_spiel::State> > const&, long, std::unique_ptr<open_spiel::State, std::default_delete<open_spiel::State> > const&) (in /home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==    by 0x75EB0D: open_spiel::algorithms::torch_dqn::DQN::Step(std::unique_ptr<open_spiel::State, std::default_delete<open_spiel::State> > const&, bool, bool) (in /home/lanctot/tmp/open_spiel/build/algorithms/dqn_torch/dqn_torch_test)
==4074183==
==4074183== HEAP SUMMARY:
==4074183==     in use at exit: 18,585,953 bytes in 96,461 blocks
==4074183==   total heap usage: 497,574 allocs, 401,113 frees, 60,124,452 bytes allocated
==4074183==
==4074183== LEAK SUMMARY:
==4074183==    definitely lost: 0 bytes in 0 blocks
==4074183==    indirectly lost: 0 bytes in 0 blocks
==4074183==      possibly lost: 74,640 bytes in 16 blocks
==4074183==    still reachable: 18,511,313 bytes in 96,445 blocks
==4074183==                       of which reachable via heuristic:
==4074183==                         stdstring          : 53 bytes in 1 blocks
==4074183==         suppressed: 0 bytes in 0 blocks
==4074183== Rerun with --leak-check=full to see details of leaked memory
==4074183==
==4074183== For lists of detected and suppressed errors, rerun with: -s
==4074183== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Aborted

Oh wait I see some things. You're passing a unique_ptr by const reference, we should at least change that. (e.g. just use const State*). Maybe that already fixes it, I'll try.

Ok I caught a few other small things as well, and now it seems to be fixed. So nothing to do on your end. Thanks again!

Possibly your branch is out of date and does not have the -O2 optimizations turned on by default that we imported a few weeks back (c679429), can you check?

I was changing BUILD_TYPE="Testing" and it worked fine!

(Also did you run it through valgrind?)

Yes, I ran it!
I attached the result below.
valgrind --leak-check=full ./algorithms/dqn_torch/dqn_torch_test
==43673== Memcheck, a memory error detector
==43673== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==43673== Using Valgrind-3.18.0.GIT-lbmacos and LibVEX; rerun with -h for copyright info
==43673== Command: ./algorithms/dqn_torch/dqn_torch_test
==43673==
==43673== Syscall param __pthread_sigmask(set) points to uninitialised byte(s)
==43673==    at 0x1016284C2: __pthread_sigmask (in /usr/lib/system/libsystem_kernel.dylib)
==43673==    by 0x1016865EA: pthread_sigmask (in /usr/lib/system/libsystem_pthread.dylib)
==43673==    by 0x10033FA03: absl::lts_2020_09_23::base_internal::SetCurrentThreadIdentity(absl::lts_2020_09_23::base_internal::ThreadIdentity*, void (*)(void*)) (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==    by 0x100320C99: absl::lts_2020_09_23::synchronization_internal::CreateThreadIdentity() (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==    by 0x100322988: absl::lts_2020_09_23::DebugOnlyDeadlockCheck(absl::lts_2020_09_23::Mutex*) (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==    by 0x100322211: absl::lts_2020_09_23::Mutex::Lock() (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==    by 0x100062731: int open_spiel::Game::ParameterValue<int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::optional<int>) const (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==    by 0x1001DCE46: open_spiel::tiny_hanabi::TinyHanabiGame::TinyHanabiGame(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, open_spiel::GameParameter, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, open_spiel::GameParameter> > > const&) (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==    by 0x1001DCA37: open_spiel::tiny_hanabi::(anonymous namespace)::Factory(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, open_spiel::GameParameter, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, open_spiel::GameParameter> > > const&) (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==    by 0x100054DB1: std::__1::__function::__func<std::__1::shared_ptr<open_spiel::Game const> (*)(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, open_spiel::GameParameter, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, open_spiel::GameParameter> > > const&), std::__1::allocator<std::__1::shared_ptr<open_spiel::Game const> (*)(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, open_spiel::GameParameter, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, open_spiel::GameParameter> > > const&)>, std::__1::shared_ptr<open_spiel::Game const> (std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, open_spiel::GameParameter, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, open_spiel::GameParameter> > > const&)>::operator()(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, open_spiel::GameParameter, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, open_spiel::GameParameter> > > const&) (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==    by 0x10002BD9C: open_spiel::GameRegisterer::CreateByName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, open_spiel::GameParameter, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, open_spiel::GameParameter> > > const&) (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==    by 0x10002D28A: open_spiel::LoadGame(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, open_spiel::GameParameter, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, open_spiel::GameParameter> > >) (in ./algorithms/dqn_torch/dqn_torch_test)
==43673==  Address 0x1050d31ec is on thread 1's stack
==43673==  in frame #2, created by absl::lts_2020_09_23::base_internal::SetCurrentThreadIdentity(absl::lts_2020_09_23::base_internal::ThreadIdentity*, void (*)(void*)) (???:)
==43673==
==43673==
==43673== HEAP SUMMARY:
==43673==     in use at exit: 862,815 bytes in 11,025 blocks
==43673==   total heap usage: 483,003 allocs, 471,978 frees, 51,360,155 bytes allocated
==43673==
==43673== 24 bytes in 1 blocks are possibly lost in loss record 1,230 of 10,662
==43673==    at 0x1008E3545: malloc (in /usr/local/Cellar/valgrind/HEAD-eec4cf7/libexec/valgrind/vgpreload_memcheck-amd64-darwin.so)
==43673==    by 0x10175AC37: realizeClassWithoutSwift(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175C870: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175F5E8: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175F346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x101749FCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x1007D226B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==43673==    by 0x1007E5FE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E4153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==43673==    by 0x1007D2661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==43673==
==43673== 32 bytes in 1 blocks are possibly lost in loss record 2,054 of 10,662
==43673==    at 0x1008E3545: malloc (in /usr/local/Cellar/valgrind/HEAD-eec4cf7/libexec/valgrind/vgpreload_memcheck-amd64-darwin.so)
==43673==    by 0x10175ABE5: realizeClassWithoutSwift(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175C870: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175F57B: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175F346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x101749FCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x1007D226B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==43673==    by 0x1007E5FE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E4153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==43673==    by 0x1007D2661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==43673==
==43673== 32 bytes in 1 blocks are possibly lost in loss record 2,055 of 10,662
==43673==    at 0x1008E3BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-eec4cf7/libexec/valgrind/vgpreload_memcheck-amd64-darwin.so)
==43673==    by 0x10175B5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175B6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175B4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10174CE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10174D2DD: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x100963165: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==43673==    by 0x10096258F: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==43673==    by 0x1007EAF62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007EB5D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007E5FFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E5F65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==
==43673== 32 bytes in 1 blocks are possibly lost in loss record 2,056 of 10,662
==43673==    at 0x1008E3BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-eec4cf7/libexec/valgrind/vgpreload_memcheck-amd64-darwin.so)
==43673==    by 0x10175B5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175B6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175B69F: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175B4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10174CE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10096260D: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==43673==    by 0x1007EAF62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007EB5D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007E5FFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E5F65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==
==43673== 32 bytes in 1 blocks are possibly lost in loss record 2,057 of 10,662
==43673==    at 0x1008E3BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-eec4cf7/libexec/valgrind/vgpreload_memcheck-amd64-darwin.so)
==43673==    by 0x10175B5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175B6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175B4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10174CE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10174D2DD: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x100963165: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==43673==    by 0x100962658: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==43673==    by 0x1007EAF62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007EB5D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007E5FFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E5F65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==
==43673== 32 bytes in 1 blocks are possibly lost in loss record 2,058 of 10,662
==43673==    at 0x1008E3BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-eec4cf7/libexec/valgrind/vgpreload_memcheck-amd64-darwin.so)
==43673==    by 0x10175B5F3: objc::DenseMap<objc_class*, objc_class*, objc::DenseMapValueInfo<objc_class*>, objc::DenseMapInfo<objc_class*>, objc::detail::DenseMapPair<objc_class*, objc_class*> >::grow(unsigned int) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175B6C6: objc_class::mangledName() (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175B4BA: addRemappedClass(objc_class*, objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10174CE98: objc_initializeClassPair (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10174D2DD: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x100963165: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==43673==    by 0x100962669: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==43673==    by 0x1007EAF62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007EB5D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007E5FFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E5F65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==
==43673== 48 bytes in 1 blocks are possibly lost in loss record 5,536 of 10,662
==43673==    at 0x1008E3BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-eec4cf7/libexec/valgrind/vgpreload_memcheck-amd64-darwin.so)
==43673==    by 0x10175A99E: realizeClassMaybeSwiftMaybeRelock(objc_class*, mutex_tt<false>&, bool) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175C99D: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175F57B: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175F346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x101749FCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x1007D226B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==43673==    by 0x1007E5FE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E4153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==43673==    by 0x1007D2661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==43673==
==43673== 48 bytes in 1 blocks are possibly lost in loss record 5,537 of 10,662
==43673==    at 0x1008E3BA0: calloc (in /usr/local/Cellar/valgrind/HEAD-eec4cf7/libexec/valgrind/vgpreload_memcheck-amd64-darwin.so)
==43673==    by 0x10175A99E: realizeClassMaybeSwiftMaybeRelock(objc_class*, mutex_tt<false>&, bool) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175C99D: adjustCustomFlagsForMethodChange(objc_class*, method_t*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175F5E8: property_copyAttributeValue (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10175F346: free_class(objc_class*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x101749FCC: objc_msgLookup (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x1007D226B: dyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) (in /usr/lib/dyld)
==43673==    by 0x1007E5FE8: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40DD: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E4153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==43673==    by 0x1007D2661: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==43673==
==43673== 1,040 bytes in 1 blocks are possibly lost in loss record 10,638 of 10,662
==43673==    at 0x1008E37BA: malloc_zone_malloc (in /usr/local/Cellar/valgrind/HEAD-eec4cf7/libexec/valgrind/vgpreload_memcheck-amd64-darwin.so)
==43673==    by 0x1017480B5: getProtocol(char const*) (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x10174D35E: objc_registerClassPair (in /usr/lib/libobjc.A.dylib)
==43673==    by 0x100963165: __CFInitialize (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==43673==    by 0x1009626BF: ??? (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==43673==    by 0x1007EAF62: ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007EB5D2: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==43673==    by 0x1007E5FFA: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E5F65: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E40B3: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==43673==    by 0x1007E4153: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==43673==    by 0x1007D26A7: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==43673==
==43673== LEAK SUMMARY:
==43673==    definitely lost: 0 bytes in 0 blocks
==43673==    indirectly lost: 0 bytes in 0 blocks
==43673==      possibly lost: 1,320 bytes in 9 blocks
==43673==    still reachable: 46,937 bytes in 135 blocks
==43673==         suppressed: 814,558 bytes in 10,881 blocks
==43673== Reachable blocks (those to which a pointer was found) are not shown.
==43673== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==43673==
==43673== Use --track-origins=yes to see where uninitialised values come from
==43673== For lists of detected and suppressed errors, rerun with: -s
==43673== ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 11 from 10)

Ok I caught a few other small things as well, and the test is passing now and valgrind shows now memory issues. So nothing to do on your end. Thanks again!

!!!!!!!!!!!!!
Thanks a lot!!!!
I appreciate you working from so early!!!!!!

Hi @Asugawara, ok I have now imported it. However, I still think there is an issue. It does not appear to be learning catch (see output below). I will push this live so you can see what I changed. Can you then take a look? I've marked the code as experimental in the mean time.
Here's the result of running (my current version of) dqn_torch_example.cc, which will only be live on Monday:
0 -0.14
10000 -0.3
20000 -0.1
30000 -0.2
40000 -0.12
50000 -0.02
60000 -0.18
70000 -0.1
80000 -0.24
90000 -0.22
100000 -0.1
110000 -0.12
120000 -0.18
130000 -0.16
140000 -0.06
150000 -0.2
160000 -0.2
170000 -0.16
180000 -0.2
190000 -0.16
200000 -0.06
210000 -0.1
220000 -0.22
230000 -0.2
240000 -0.12

Note also though that @jhtschultz was looking into some issues with DQN on catch last year. There could be a problem in catch itself. He was able to get it to learn, but the result differed between the python catch and the C++ catch, and we couldn't ever fully explain why. But in his experiments he was still able to get positive average reward in the long-run.

You can use python/examples/single_agent_catch.py as a reference point for what the curves should look like.

Ok @Asugawara, this is now imported. You can see the commit here: https://github.com/deepmind/open_spiel/commit/8a406d82212a6ca5ed1f98b4490fadfcc48fa499.
 The main important one was to handle the chance events externally outside the DQN agent. The others were minor things causing the memory issues.
Did you try to run it for >= 100k episodes on the catch example? It should start to get positive rewards consistently between 50k to 100k episodes.. at least every graph I've seen has it >0 after 100k episodes and remains that way.

Dr. @lanctot
Sorry for the late reply.
Thanks for the fix and imported!

The main important one was to handle the chance events externally outside the DQN agent.

That makes sense. In python, there is rl_environment.py.
I will now have a look at this commit and correct my mistakes.
It might take me a while, but I'll do it!

Did you try to run it for >= 100k episodes on the catch example?

No, I didn't try that many episodes.
First, I'll try to run it with the number.

Ok great.
One thing that came to mind, the Python RL environment sets the discount factor to zero for terminal transitions, e.g. see: https://github.com/deepmind/open_spiel/blob/1fbefb283743ed06a1292c3f9981d7a2ab032c39/open_spiel/python/rl_environment.py#L242. Are your C++ outer simulation loops doing this? I don't remember seeing it. Without it, the problem could be significantly harder.

This one needs more time to investigate!


fix deleted holograms not being removed from configuration

Fixes an issue where holograms deleted with /holo remove (name) would re-appear after the server restart (and probably after config reload too).
This is now fixed by adding a force toggle to FancyHologramsConfig#saveHolograms method which indicates whether existing holograms collection should be replaced with provided collection. I set force parameter to true for all existing method references.

Reporting this same issue where holograms are showing back up on my server on restart/reload.
Would appreciate this fix getting merged as this fully addresses my issue.

@OliverSchlueter - code formatting fixed to your recommendation in #28

Thank you for the PR, your changes will most likely appear in the next version

Any plan on when the next release will be?


vec3.normalize() and invalid inputs

Hi,
The code for vec3.normalize() does nothing to the output array if the input array can't be normalized (eg, if length of input vector = 0)
This means the calling method will experience inconsistent results based on whatever was in the output unit vector before the caller.
Can we add a line to at least set the output to (0,0,0) so that downstream code will hopefully get tripped up, rather than continuing with incorrect (but mathematically valid) results?
The code:
vec3.normalize = function(out, a) {
var x = a[0],
y = a[1],
z = a[2];
var len = x_x + y_y + z*z;
if (len > 0) {
//TODO: evaluate use of glm_invsqrt here?
len = 1 / Math.sqrt(len);
out[0] = a[0] * len;
out[1] = a[1] * len;
out[2] = a[2] * len;
}
else {  // ADD THIS ELSE SCOPE
out[0] = 0;  out[1] = 0; out[2] = 0;
}
return out;
};

Looks like this issue is still present in the latest version:
vec2.js
vec3.js
vec4.js
It can probably be "fixed" by changing
if (len > 0) {
    //TODO: evaluate use of glm_invsqrt here?
    len = 1 / Math.sqrt(len);
    out[0] = a[0] * len;
    out[1] = a[1] * len;
}

to
if (len > 0) {
    //TODO: evaluate use of glm_invsqrt here?
    len = 1 / Math.sqrt(len);
}
    out[0] = a[0] * len;
    out[1] = a[1] * len;


Bugfix/strict param types master merged

Codecov Report

Merging #1849 (c698544) into master (94069d2) will decrease coverage by 21.05%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master    #1849       +/-   ##
=============================================
- Coverage     87.75%   66.70%   -21.06%
- Complexity     7761     7791       +30
=============================================
  Files           282      282
  Lines         21291    21271       -20
=============================================
- Hits          18684    14188     -4496
- Misses         2607     7083     +4476

Flag
Coverage Δ

5-max
66.70% <0.00%> (-21.06%)
:arrow_down:

7.4
66.70% <0.00%> (-21.06%)
:arrow_down:

agnostic
66.70% <0.00%> (-0.23%)
:arrow_down:

mysql
?

pgsql
?

sqlite
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

.../Propel/Generator/Builder/Om/AbstractOMBuilder.php
85.95% <0.00%> (-10.94%)
:arrow_down:

src/Propel/Generator/Model/Behavior.php
85.88% <0.00%> (-7.87%)
:arrow_down:

src/Propel/Generator/Model/Column.php
95.05% <0.00%> (-1.33%)
:arrow_down:

src/Propel/Generator/Model/ScopedMappingModel.php
85.41% <0.00%> (-9.94%)
:arrow_down:

src/Propel/Generator/Model/Table.php
84.85% <0.00%> (-7.47%)
:arrow_down:

...c/Propel/Runtime/ActiveQuery/BaseModelCriteria.php
70.51% <0.00%> (-25.08%)
:arrow_down:

src/Propel/Runtime/ActiveQuery/Join.php
75.77% <0.00%> (-6.24%)
:arrow_down:

src/Propel/Runtime/Formatter/AbstractFormatter.php
42.99% <0.00%> (-33.20%)
:arrow_down:

src/Propel/Runtime/Formatter/ArrayFormatter.php
0.00% <0.00%> (-84.79%)
:arrow_down:

src/Propel/Runtime/Map/ColumnMap.php
74.50% <0.00%> (-7.97%)
:arrow_down:

... and 151 more

Continue to review full report at Codecov.

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

It is very likely that I am just not in the loop and do not understand what you are doing here. So feel free to ignore my comments if they do not apply.
It looks like you are adding a lot of getXyzOrFail() methods to allow handling of null values at fields that simply should never be null, like the name of a table or a column. And now I am wondering if this is the right approach, or if those methods just paint over pretty serious problems, which is that objects can be in invalid states. If I managed to create broken table objects, I would want to know about the problem when it occurs, not somewhere down the line. And if those null values are only possible due to convenience during creation, I think we should fix that, instead of kicking the can down the road. With some of the objects you changed, it probably make sense to allow null values. But the places I checked (those I commented on), I am really not sure if it does.
Do you know what I mean? Let me know what you think

Hi. Unfortunately, it is hard to determine which property should not be nullable. This code doesn't hide problems since it throws exceptions. The main point of such methods is just allowing us to avoid null-checking on the client-side. Also, there is only one way to make properties not nullable and it is putting it into the constructor or setting a default value. But such changes might have a critical impact on client projects. We can't be sure how it is used.

Hi. Unfortunately, it is hard to determine which property should not be nullable. This code doesn't hide problems since it throws exceptions. The main point of such methods is just allowing us to avoid null-checking on the client-side. Also, there is only one way to make properties not nullable and it is putting it into the constructor or setting a default value. But such changes might have a critical impact on client projects. We can't be sure how it is used.
Yeah, but that is what I mean with painting over the problem. This looks a lot like a workaround for smelly or not understood code inside Propel, and I am not sure if we do anyone a real favor by making it convenient to work around the error. Particularly since this introduces public functionality, which is hard to remove once the actual problem is solved.
From what I see, most of the instances are not in client space, so I am not sure why users would interact with them at all. Things like Behavior, Join, RelationMap, even Column and Table are Propel internals, if people use them, they have to be aware that they can change.
But again, I don't think they do, so I am not even sure who would call TableMap::getClassNameOrFail(), and it is well possible that I am just unaware, which is why I am asking, if you are sure that we need this. Do you have at least one use case in mind for each of the methods you added?

I do understand that you are trying to do something else, but in my experience, workarounds tend to make the issue worse, not better.

We should definitly look into methods than make no sense to return null.
We have to find a good way to keep BC for the ones that can (DTOs) with introducing new null-safe ones.
But I agree that we dont have to bloat the API on the cases where null just isnt justified.
Maybe we can outline each case in this PR and double-check?
Then we should be able to move forward the next days.

@dmytro-dymarchuk There are open comments that need to be addressed and resolved.

@mringler Any blocking issues in your opinion?
We could still clean up the API in the next days/weeks before release. If we can find certain methods to be not needed or that they can be improved in signature.
But we probably need to get going with also other tickets in the meantime to finalize the beta release preparation.

@mringler Any blocking issues in your opinion?
All good from my side. I've seen that @dmytro-dymarchuk changed some of the constructors, where null values would not make sense, so this is great,


Question: Panel with two rounded corners, not four?

Hi,
I was just wondering if i could round the corners of a panel but only selected corners, keeping the others square.
I notice that most of the rounded calls call back to piet's rounded corners type, which doesn't seem to support this. I'm just curious if there's an easy way to achieve this that i'm not aware of.
I'm just starting to use druid, but very much liking what i've seen so far!

No easy way right now, however you can use clip to achieve this. Make a rect with four rounded corners and then cut one edge off with clip.

Great, thanks! That's perfect.


Implement End to End testing with Cypress for SkyWalking UI

Fast, easy and reliable testing for anything that runs in a browser, which make app more reliable. So I plan to Implement this in UI.

Close for now, as we are moving to booster UI in 9.0.0. Everything is new now.


Sample: Signin main window -> user always null. Signin with popup works

Hi,
I have a problem because signin with popup (from your samples) gives me back a user (when I call get user) and signin main window signs in correctly but the user is always null.
Any idea?

Enable the logs and see if that shows anything.

Any update?

Hi,
Yes - I redid the project setup and it worked. I guess something were wrong with my configuration.
thx


Travis CI build failing

Describe the bug
Travis CI build is failing for Node.js v8, as the latest ESLint dropped support for it.
Screenshots

Expected behavior
Builds pass for both v8 and v10.
System information (please complete the following information):

Node.js v8
Node-Red Version: N/A

Additional context
I'd created a simple PR #167 to correct a link in the README; however, the Travis CI build failed for Node.js v8 (Node.js v10 is passing).
Per this ESlink blog post, "Node.js 8 reached EOL in December 2019, and we are officially dropping support for it in this release."
The needed correction appears to be either (1) drop v8 from .travis.yml, or (2) npm install -g eslint@6 to use the older version of ESLint with Node 8 support.

Maybe I should also drop Node.js V8 Support. As I developing and using this nodes on Node.js 10.


[AWS Cloud Provider] - Support custom security groups.

We need to apply the master security group in all cases, but we should allow customers to define additional security groups via pod labels.

Implemented in #474. Released in v0.2.7


Identify dependencies in the data needed for our research

Depending on the results of #21!
For example code->description and reasoncode->reasondescription
These "translations" should not be in the main table but in the satellite-tables of our star scheme

CODE -> DESCRIPTION

CODE -> DESCRIPTION


show decrypted message in preview

Office: Professional Plus 2013/64bit
Plugin: v1 BETA-56
OS: Windows 10 Pro/64bit
After entering the passphrase emails are only decrypted when you open them in a new/seperate window. Cooler would be if the messages gets also decrypted and shown in the preview when you just select them in the list.

duplicate


Add menu design

Through this menu, a user should be able to

add a new repository
clone repository
add an existing repository
create a new organisation

create new project in the organisation

How it looks now

The contract doesn't provide for the possibility to create a repository without an organization.
Moved to https://github.com/SOURC3XYZ/sourc3/issues/157
Moved to https://github.com/SOURC3XYZ/sourc3/issues/158
Checked.
Checked.