Add content for the 'choose a lot' question

This comes from the previous SSP. Using 'description' for the text underneath each button matches the naming on http://alphagov.github.io/digitalmarketplace-frontend-toolkit/forms/selection-buttons.html

Once merged, the version needs incrementing, right?

There's no versioning of the content (yet?) so you just have to reference the SHA in bower.json.


Bens root removal service

Removes some of the unnecessary use of the root module.
Related: #3401

Coverage decreased (-0.002%) to 97.496% when pulling 96c67233c2ee263134d2d023dc896fc596e463ce on benlesh:bens-root-removal-service into d231053616ab4e5d2541818314110df626e6bf5a on ReactiveX:master.


put_change -> put_embed, doc changes

Partly solves #1831

sorry forgot to skip CI

:heart: :green_heart: :blue_heart: :yellow_heart: :purple_heart:


[HOTT-359] Disable reload behaviour for indents

Jira link
https://transformuk.atlassian.net/browse/HOTT-359
What?
I have added/removed/altered:

[x] Disables reload behaviour on indents as part of a wider performance improvement to the slow backend

Why?
I am doing this because:

This significantly reduces the number of queries we do around n + 1s for indents

AC

[ ] Madhu can see that the frontend results haven't been broken by this
[ ] Ongoing monitor the number of sentry timeouts for the commodity endpoint

Commodity with a huge ancestor tree:<PHONE_NUMBER>
Commodity with no ancestory tree:<PHONE_NUMBER>

Commodity with a huge ancestor tree:<PHONE_NUMBER>
Commodity with no ancestory tree:<PHONE_NUMBER>

Superseded

Superseded


[$1000] Web - Wrong position of emoji picker modal

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open any chat
Hover over any posted comment and right click on it to open the context menu
Click on the emoji picker icon inside the context menu and observe its position
Click anywhere on the screen to close the modal and hover over the last posted comment again
Click on the emoji picker icon from the hovered context menu
Click anywhere on the screen to close the modal
Right click on the posted comment
Click on the emoji picker icon and observe its position

Expected Result:
Emoji picker modal should be positioned relative to the posted comment
Actual Result:
Emoji picker modal opens in a wrong position if user opens the emoji picker first through the hovered context menu and then through the context menu that shows up after right clicking
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.46-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/30b893f0-db47-46a7-8165-4574dff49f75
Expensify/Expensify Issue URL:
Issue reported by: @Nathan-Mulugeta
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1690391720140069
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~015bed1297bbb40f08
Upwork Job ID:<PHONE_NUMBER>837065728
Last Price Increase: 2023-07-27

Proposal
Please re-state the problem that we are trying to solve in this issue.
Web - Wrong position of emoji picker modal
What is the root cause of that problem?
The emojiPopoverAnchorOrigin is set as ref and changing its current origin doesn't re-renders the component with latest anchor origin.
What changes do you think we should make in order to solve the problem?
We can initialize emojiPopoverAnchorOrigin as state, like emojiPopoverAnchorPosition, so whenever it's value changes it can re-render the componet.
After changes
https://github.com/Expensify/App/assets/85894871/0c5e3b7f-55ba-412f-abf3-14edd0172b74

Proposal
Please re-state the problem that we are trying to solve in this issue.
Web - Wrong position of emoji picker modal
What is the root cause of that problem?
emojiPopoverAnchorOrigin is a ref so that it's having an updated value but does not rerender so that PopoverWithMeasuredContent not getting the updated value in real-time.
https://github.com/Expensify/App/blob/f3196c13308e79bb8103c4bb3de2c534a3913c70/src/components/EmojiPicker/EmojiPicker.js#L61C3-L61C3
What changes do you think we should make in order to solve the problem?
Option1: we need to switch to use state emojiPopoverAnchorOrigin
option2: we need force re-render.  L61 move to L59 it will work. because after ref data changes use state will trigger on setEmojiPopoverAnchorPosition this value has been used in PopoverWithMeasuredContent
https://github.com/Expensify/App/blob/f3196c13308e79bb8103c4bb3de2c534a3913c70/src/components/PopoverWithMeasuredContent.js#L127
so component also get updated value and the memo also updated based on that value.

After changes
https://github.com/Expensify/App/assets/16595846/116befb4-390a-4234-89f7-ac6f8a9350f8

@eVoloshchak thoughts on the proposals?

@eVoloshchak friendly bump!

@Krishna2323's proposal looks good to me.
It's weird that we're correctly storing emojiPopoverAnchorPosition in state, but not emojiPopoverAnchorOrigin.
This change was introduced by https://github.com/Expensify/App/pull/20187, before that both of those object were stored in state. There's also a discussion about this exact change:

This was previously on the state. Not sure about the impact but should we move it to the state? useRef might not cause any issues as emojiPopoverAnchorOrigin is only updated when emojiPopoverAnchorPosition is updated.

We have to make sure to add testing steps from https://github.com/Expensify/App/pull/20187 too
🎀👀🎀 C+ reviewed!

@Krishna2323 sorry, I don't totally follow. You're not able to make a proposal on Upwork? Do you get an error or something?

Ahhh I see. Hmm, that is weird. Let me look into it. In the meantime, can you send a proposal on the Upwork job?

@eVoloshchak friendly reminder about the checklist so that we can pay this out tomorrow.

The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/20187
The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/20187/files#r1297108112
A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: It's a simple visual bug, I don't think an additional discussion is necessary

Regression Test Proposal

Open any chat
Hover over any posted comment and right click on it to open the context menu
Click on the emoji picker icon inside the context menu and observe its position
Click anywhere on the screen to close the modal and hover over the last posted comment again
Click on the emoji picker icon from the hovered context menu
Click anywhere on the screen to close the modal
Right click on the posted comment
Click on the emoji picker icon and observe its position
Verify that the emoji picker modal is positioned correctly relative to the posted comment

Do we agree 👍 or 👎

@puneetlath Mind providing a summary?

My apologies! Payment summary:

External issue reporter - @Nathan-Mulugeta - $250 (paid on Upwork)
Contributor that fixed the issue @Krishna2323 - $1500 for job + efficiency bonus (paid on Upwork)
Contributor+ that helped on the issue and/or PR @eVoloshchak - $1500 for job + efficiency bonus (to be paid via NewDot)

Reviewed the details for @eVoloshchak. $1,500 approved for payment in NewDot based on the BZ summary.

All done. Thanks everyone!


Add Eskimi adapter video support documentation

🏷 Type of documentation

[ ] new bid adapter
[x] update bid adapter
[ ] new feature
[ ] text edit only (wording, typos)
[ ] bugfix (code examples)
[ ] new examples

📋 Checklist

[x] Related pull requests in prebid.js or server are linked -> https://github.com/prebid/Prebid.js/pull/9985
[ ] For new adapters check submitting your adapter docs

Hey @muuki88,
any ETA on when this will be merged?

Thanks for the ping @myDisconnect
Adapter has already been released 🙈😊


Missing specs

Adds:

missing, basic specs for V3 serializers (MembershipSerializer and UserWithMembershipsSerializer)

What do you think about naming instance of described_class as subject?


[BUG] a wierd behavior of y_label_area_size() with custom Ranged

I'm using Version 0.3.1, and my code looks like below.
struct PerHour;

const SEVEN_HRS: u32 = 60 * 7;

impl Ranged for PerHour {
    type ValueType = u32;
    type FormatOption = DefaultFormatting;

    fn map(&self, &v: &u32, pixel_range: (i32, i32)) -> i32 {
       let size = pixel_range.1 - pixel_range.0;
       let v = v.min(SEVEN_HRS).max(0);
        ((v as f64 / SEVEN_HRS as f64) * size as f64) as i32
    }

    fn key_points<Hint:KeyPointHint>(&self, hint: Hint) -> Vec<u32> {
        if hint.max_num_points() < 3 {
            vec![]
        } else {
            vec![0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390]
        }
    }

    fn range(&self) -> Range<u32> {
        std::ops::Range {
            start: 0,
            end: SEVEN_HRS+1,
        }
    }
}

fn get_svg() {
      let root = SVGBackend::with_string(&mut buf, (1280, 800)).into_drawing_area();
        root.fill(&WHITE)?;

        let mut chart = ChartBuilder::on(&root)
            .x_label_area_size(30)
//           Wierd Behavior
//            .y_label_area_size(100)
            .build_cartesian_2d(PerHour, ts.get_lowest()..ts.get_highest())?;

        chart
            .configure_mesh()
            .disable_y_mesh()
            .x_desc("TIME")
            .y_labels(20)
            .x_label_formatter(&|x| (nineoclock + Duration::minutes(*x as i64)).format("%H:%M").to_string())
            .y_label_formatter(&|y| y.to_formatted_string(&Locale::en))
            .draw()?;

        chart
            .draw_series(LineSeries::new(
                PerHour.range().map(get_value_on_minute),
                &BLACK,
            ))?;
    }

    Ok(buf)
}

When I don't set y_label_area_size(100), the result looks like this, and there is no problem.

But, When I set y_label_area_size(100),  the result looks like this,

Data located on a area which is set by y_label_area_size() are packed into a starting point.
Is this a bug, or my mistake? I can't find a problem of my impl Ranged for PerHour.

Hi there, thanks for using Plotters.
This is caused by your code: the PerHour::map is returning wrong coordinate. I just tried on my side
    fn map(&self, &v: &u32, pixel_range: (i32, i32)) -> i32 {
       let size = pixel_range.1 - pixel_range.0;
       let v = v.min(SEVEN_HRS).max(0);
        ((v as f64 / SEVEN_HRS as f64) * size as f64) as i32 + pixel_range.0  // FIX: don't forget add the base offset
    }

Closing the issue and feel free to reopen it if you feel anything is still wrong.
Thanks!

Hi there, thanks for using Plotters.
This is caused by your code: the PerHour::map is returning wrong coordinate. I just tried on my side
    fn map(&self, &v: &u32, pixel_range: (i32, i32)) -> i32 {
       let size = pixel_range.1 - pixel_range.0;
       let v = v.min(SEVEN_HRS).max(0);
        ((v as f64 / SEVEN_HRS as f64) * size as f64) as i32 + pixel_range.0  // FIX: don't forget add the base offset
    }

Closing the issue and feel free to reopen it if you feel anything is still wrong.
Thanks!

Thank you for your kindness.
Good for your great jobs!


Peer Review CSA FRQ - Rachit

Question
Critera
Grade

1a
- [x] Loops over necessary minutes in an hour - [x] Calls isMinuteFree with period and another int parameter - [x] Keeps track of contiguous free minutes in a block - [x] Checks whether a valid block of duration minutes has been found - [x] Calculates and returns starting minute and -1 appropriately based on identified block
5/5

1b
- [x] Loops over periods from startPeriod through endPeriod - [x] Calls findFreeBlock and reserveBlock with correct number of int parameters, representing a period and minute as appropriate, and duration - [x] Guards call to method to reserve a block by determining that starting minute is not -1 - [x] Books correct appointment and returns appropriate boolean
5/5

Total: 10/10

Question	Critera	Grade
1a

[x]  Loops over necessary minutes in an hour
[x]  Calls isMinuteFree with period and another int parameter
[x]  Keeps track of contiguous free minutes in a block
[x]  Checks whether a valid block of duration minutes has been found
[x]  Calculates and returns starting minute and -1 appropriately based on identified block

5/5
1b

[x]  Loops over periods from startPeriod through endPeriod
[x]  Calls findFreeBlock and reserveBlock with correct number of int parameters, representing a period and minute as appropriate, and duration
[x]  Guards call to method to reserve a block by determining that starting minute is not -1
[x]  Books correct appointment and returns appropriate boolean

5/5
Total: 10/10


Serialization issue with distributed, h5netcdf, and fsspec (ImplicitToExplicitIndexingAdapter)

This was originally reported by @jkingslake at https://github.com/pangeo-data/pangeo-datastore/issues/116.
What happened:
I tried to open a netcdf file over http using fsspec and the h5netcdf engine and compute data using dask.distributed. It appears that our ImplicitToExplicitIndexingAdapter is [no longer?] serializable?
What you expected to happen:
Things would work. Indeed, I could swear this used to work with previous versions.
Minimal Complete Verifiable Example:
import xarray as xr
import fsspec
from dask.distributed import Client

# example needs to use distributed to reproduce the bug
client = Client()

url = 'https://storage.googleapis.com/ldeo-glaciology/bedmachine/BedMachineAntarctica_2019-11-05_v01.nc'
with  fsspec.open(url, mode='rb')  as openfile:
    dsc = xr.open_dataset(openfile, chunks=3000)
dsc.surface.mean().compute()

raises the following error
Traceback (most recent call last):
  File "/srv/conda/envs/notebook/lib/python3.8/site-packages/distributed/protocol/core.py", line 50, in dumps
    data = {
  File "/srv/conda/envs/notebook/lib/python3.8/site-packages/distributed/protocol/core.py", line 51, in <dictcomp>
    key: serialize(
  File "/srv/conda/envs/notebook/lib/python3.8/site-packages/distributed/protocol/serialize.py", line 277, in serialize
    raise TypeError(msg, str(x)[:10000])
TypeError: ('Could not serialize object of type ImplicitToExplicitIndexingAdapter.', 'ImplicitToExplicitIndexingAdapter(array=CopyOnWriteArray(array=LazilyOuterIndexedArray(array=<xarray.backends.h5netcdf_.H5NetCDFArrayWrapper object at 0x7ff8e3988540>, key=BasicIndexer((slice(None, None, None), slice(None, None, None))))))')
distributed.comm.utils - ERROR - ('Could not serialize object of type ImplicitToExplicitIndexingAdapter.', 'ImplicitToExplicitIndexingAdapter(array=CopyOnWriteArray(array=LazilyOuterIndexedArray(array=<xarray.backends.h5netcdf_.H5NetCDFArrayWrapper object at 0x7ff8e3988540>, key=BasicIndexer((slice(None, None, None), slice(None, None, None))))))')

Anything else we need to know?:
One can work around this by using the netcdf4 library's new and undocumented ability to open files over http.
url = 'https://storage.googleapis.com/ldeo-glaciology/bedmachine/BedMachineAntarctica_2019-11-05_v01.nc#mode=bytes'
ds = xr.open_dataset(url, engine='netcdf4', chunks=3000)
ds

However, the fsspec + h5netcdf path should work!
Environment:
Output of xr.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 3.8.6 | packaged by conda-forge | (default, Oct  7 2020, 19:08:05)
[GCC 7.5.0]
python-bits: 64
OS: Linux
OS-release: 4.19.112+
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: C.UTF-8
LANG: C.UTF-8
LOCALE: en_US.UTF-8
libhdf5: 1.10.6
libnetcdf: 4.7.4

xarray: 0.16.1
pandas: 1.1.3
numpy: 1.19.2
scipy: 1.5.2
netCDF4: 1.5.4
pydap: installed
h5netcdf: 0.8.1
h5py: 2.10.0
Nio: None
zarr: 2.4.0
cftime: 1.2.1
nc_time_axis: 1.2.0
PseudoNetCDF: None
rasterio: 1.1.7
cfgrib: <IP_ADDRESS>
iris: None
bottleneck: 1.3.2
dask: 2.30.0
distributed: 2.30.0
matplotlib: 3.3.2
cartopy: 0.18.0
seaborn: None
numbagg: None
pint: 0.16.1
setuptools: 49.6.0.post20201009
pip: 20.2.4
conda: None
pytest: 6.1.1
IPython: 7.18.1
sphinx: 3.2.1

Also fsspec 0.8.4

cc @martindurant for fsspec integration.

I finally found a permutation that works, which makes me think this is an fsspec error.
import gcsfs

gcs = gcsfs.GCSFileSystem()
url = 'gs://ldeo-glaciology/bedmachine/BedMachineAntarctica_2019-11-05_v01.nc'
openfile = gcs.open(url, mode='rb')
dsgcs = xr.open_dataset(openfile, chunks=3000)
dsgcs.surface.mean().compute()

I don't think it's fsspec, the HTTPFileSystem and file objects are known to serialise.
However
>>> distributed.protocol.serialize(dsc.surface.mean().data.dask['open_dataset-27832a1f850736a8d9a11a882ad06230surface-3b6f5b6a90c2cfa65379d3bfae22126f'])
({'serializer': 'error'}, ...)

(that's one of the keys I picked from the graph at random, your keys may differ)
I can't say why this object is in the graph where perhaps it wasn't before, but it has a reference to a "CopyOnWriteArray", which sounds like a buffer owned by something else and probably the non-serializable part. Digging find a contained "<xarray.backends.h5netcdf_.H5NetCDFArrayWrapper at 0x17e669ad0>" which is not serializable - so maybe xarray can do something about this.

Can you figure out how the http version differs from the gcs version? That might hold a clue.

OK, I can see a thing after all... please stand by

H5NetCDFArrayWrapper is definitely supposed to be serializable with dask -- that's one of main reasons why these array wrapper classes exist in the first place.

The xarray.backends.h5netcdf_.H5NetCDFArrayWrapper seems to keep a reference to the open file, which for HTTP contains the open session. The linked PR fixes the serialization of those files, for the HTTP case.

Thanks for your quick response to this Martin!

OK, I think I understand what's going on. Xarray serializes arguments that should suffice to recreate/open a backend-specific file object (e.g., h5netcdf.File). So if you pass in a file name to open_dataset(), that works fine. But if you pass in a file-like object (as is done here with fsspec) the file-like object needs to be serializable.

This is fixed by intake/filesystem_spec#477.
However, the existence of this issue points to the need for more ecosystem-wide integration testing of xarray / dask / zarr / fsspec. I know we discussed this is on some other issue, but I can't find it...

This issue appears to be back in some form, with engine=zarr.
The code looks like this, using fsspec's mapper API:
fs = fsspec.filesystem("az://...")
ds = xr.open_dataset(fs.get_mapper(path), engine="zarr", chunks="auto"):
   ...

I have not tracked down a self-contained reproducer, as it only fails for one call but not others of a similar form. Reporting it while I dig into it further, in case you have any suggestions.
[2021-06-29 00:44:47] [2021-06-29 00:44:47 core.py:74 CRITICAL] Failed to Serialize
[2021-06-29 00:44:47] Traceback (most recent call last):
[2021-06-29 00:44:47]   File "/deps/envs/deps/lib/python3.7/site-packages/distributed/protocol/core.py", line 70, in dumps
[2021-06-29 00:44:47]     frames[0] = msgpack.dumps(msg, default=_encode_default, use_bin_type=True)
[2021-06-29 00:44:47]   File "/deps/envs/deps/lib/python3.7/site-packages/msgpack/__init__.py", line 35, in packb
[2021-06-29 00:44:47]     return Packer(**kwargs).pack(o)
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 286, in msgpack._cmsgpack.Packer.pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 292, in msgpack._cmsgpack.Packer.pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 289, in msgpack._cmsgpack.Packer.pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 258, in msgpack._cmsgpack.Packer._pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 225, in msgpack._cmsgpack.Packer._pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 225, in msgpack._cmsgpack.Packer._pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 258, in msgpack._cmsgpack.Packer._pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 225, in msgpack._cmsgpack.Packer._pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 225, in msgpack._cmsgpack.Packer._pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 225, in msgpack._cmsgpack.Packer._pack
[2021-06-29 00:44:47]   File "msgpack/_packer.pyx", line 279, in msgpack._cmsgpack.Packer._pack
[2021-06-29 00:44:47]   File "/deps/envs/deps/lib/python3.7/site-packages/distributed/protocol/core.py", line 56, in _encode_default
[2021-06-29 00:44:47]     obj, serializers=serializers, on_error=on_error, context=context
[2021-06-29 00:44:47]   File "/deps/envs/deps/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 422, in serialize_and_split
[2021-06-29 00:44:47]     header, frames = serialize(x, serializers, on_error, context)
[2021-06-29 00:44:47]   File "/deps/envs/deps/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 256, in serialize
[2021-06-29 00:44:47]     iterate_collection=True,
[2021-06-29 00:44:47]   File "/deps/envs/deps/lib/python3.7/site-packages/distributed/protocol/serialize.py", line 348, in serialize
[2021-06-29 00:44:47]     raise TypeError(msg, str(x)[:10000])
[2021-06-29 00:44:47] TypeError: ('Could not serialize object of type ImplicitToExplicitIndexingAdapter.', 'ImplicitToExplicitIndexingAdapter(array=CopyOnWriteArray(array=LazilyIndexedArray(array=<xarray.backends.zarr.ZarrArrayWrapper object at 0x7f52dedbb690>, key=BasicIndexer((slice(None, None, None), slice(None, None, None))))))')
[2021-06-29 00:44:47] [2021-06-29 00:44:47 utils.py:37 ERROR] ('Could not serialize object of type ImplicitToExplicitIndexingAdapter.', 'ImplicitToExplicitIndexingAdapter(array=CopyOnWriteArray(array=LazilyIndexedArray(array=<xarray.backends.zarr.ZarrArrayWrapper object at 0x7f52dedbb690>, key=BasicIndexer((slice(None, None, None), slice(None, None, None))))))')

pip list | grep 'dask\|distributed\|xarray\|zarr\|msgpack'
dask                     2021.6.2
distributed              2021.6.2
msgpack                  1.0.0
xarray                   0.18.2
zarr                     2.8.3

I only have vague thoughts.
To be sure: you can pickle the file-system, any mapper (.get_mapper()) and any open file (.open()), right?
The question here is, why msgpack is being invoked. Those items, as well as any internal xarray stuff should only be in tasks, and so pickled. Is there a high-level-graph layer encapsulating things that were previously pickled? The only things that appear in any HLG-layer should be the paths and storage options needed to open a file-system, not the file-system itself.

I am trying to use worker_client that is opening xarrays, submitting further compute, and then saving xarrays. Perhaps somehow related to that?


Write a paper

Let's publish a paper!
I think JOSS is a good candidate.
I have linked the issues I would like to resolve before publication in the paper milestone.

Instructions here

Altair paper: paper and source
Xarray paper: paper


Enforce value identity when accepting writes from a remote client

There are multiple things we could mean by this, but generally the idea is that a noms server should generally be untrusting of data written by network clients.
In some sense, this all boils down to maintaining two invariants:

Any noms value within a noms db is known by exactly one identity (hash)
Any noms value within a noms store is complete. That is all the data required to fully export the value is contained (no broken or dangling references).

The noms wire protocol employees a system of "hinting" which reduces the IO burden on the server of validating (2), but in practice, the server isn't fully validating (1).
Logically, the only fool-proof way to enforce (1) is to fully recompute the value from its sub-values (recursively). This would be prohibitively expensive (both in compute and IO), so we attempt parts of it:
a) Refs are validated that they type of thing being pointed at actually is that type
b) Chunks decode and re-encode to the same value
(b) Is buggy in the sense that we naively decode a type assuming that if it decodes at all, the types are all correct. This would miss, for instance a chunk which claimed to be a Set<String>, but was in fact a Set<Number>.
The far harder part of enforcing (1) is enforcing that
a) Prolly trees are properly formed
There are presently a number of ways that a client could create an "invalid" prolly tree because the validation code doesn't assert anything about the items within a sequence (ordering in the case of maps & sets, that a chunk boundary actually occurs at the end of a sequence), that a meta node's children contain the number of sub-items or max-key value claimed, etc...

cc @aboodman, @cmasone-attic

Depends on (but not explicitly blocked by) #2945


Provide a message along with auth failure to AWS could be due to local computer time not being in sync

I just rolled out a new rancher server today.  When I try to add and AWS host I get:
AuthFailure: AWS was not able to validate the provided access credentials
The credentials (access key and secret) are correct and even have full admin (just in case).

Are you sure there was no space or extra characters in your credentials?
I have not had any issues adding in hosts using my access credentials.
We're just using the AWS API to connect to your account to get region/subnet/vpc/security group names.

Pretty sure.  I've tried this every way I can; multiple keys, making sure to delete anything in the text field, different permissions on keys, tried copy pasting directly from amazon/text editor/excel (just in case some funky characters are being passed) etc...
Just for good measure, I created yet another key this morning and nope... no go.
It won't work.  I'd be happy to get you anything you need to help diagnose this (logs, etc..) but will need some guidance.

Unfortunately, there's not much else I can help to debug this issue as we are just calling the AWS API.
The error is from AWS API indicating that your credentials are invalid.
Have you tried doing aws configure with the same credentials?

I just checked.   I could not do a aws ec2 describe-instances from my local.  I got this error:
A client error (AuthFailure) occurred when calling the DescribeInstances operation: AWS was not able to validate the provided access credentials
I googled it and found this: http://stackoverflow.com/a/29015266
I know my laptop time is like 10 minutes off, so I went to my server running rancher/server instead.   On the server I tried aws ec2 describe-instances with my credentials and it works fine through the cli.
I thought, "maybe my container's time isn't synced".... so I killed and rm my rancher/server container (any any other containers) and then re-ran the rancher container with -v /etc/localtime:/etc/localtime:ro added.
Adding my credentials to rancher UI does not work still.
Next I docker exec into my rancher/server container, installed awscli (in the container), and tested aws configure` and aws ec2 describe-instances` within my container.    It worked with cli in the container.
My only conclusion is that rancher UI must be doing something funny with AWS config.

The server is just blind proxying requests to AWS, the UI is doing the signing of the requests (using the AWS JS SDK).  So if you the computer running the browser is off enough for them to not accept the signature that would explain it.

Oh my goodness... that was it.   I would have never thought that local computer time would have been the issue.
All I did was sync my local desktops time and it worked.  Crazy stuff.
Thanks! That was driving me bonkers.

I guess we should show a message about this after an auth failure to AWS, it didn't occur to me either until you mentioned the time being off on your laptop.

Closing due to inactivity.


Replace NaN for non-viable individuals in distributed LEAP

If an exception is thrown while evaluating an individual the corresponding fitness is set to math.nan and self.is_viable = False.  However, math.nan fitnesses mess with ordering such that it is possible for nan individuals to remain in the population when greedy insert is used.
To fix this problem, determine if we are using a maximization or minimization problem, and set fitness to MAXINT or -MAXINT appropriately.  This should ensure that min() works as expected.

After a discussion with @SigmaX and @AureumChaos , we decided that the original approach of using a NaN to flag fitnesses for individuals that couldn't be evaluated was appropriate.  It did a good job of conveying that the fitness was invalid because an exception was thrown while it was being computed.
This was originally implemented in distributed.evaluate(), so I moved that logic to core.Individual.evaluate().  This meant changing ScalarProblem's worse_than and equivalent to accommodate the possibility of NaN fitnesses.
Finished implementation and added test harnesses for core.Individual.evaluate for NaN cases.


Replace mud-*-full with mud-full-*

Description

Replaces usage of obsolete CSS properties in our code while keeping them for legacy users.
How Has This Been Tested?

⚠ completely untested
Type of Changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation (fix or improvement to the website or code docs)

Checklist

[X] The PR is submitted to the correct branch (dev).
[X] My code follows the code style of this project.
[ ] I've added relevant tests.

I searched the changes for scss but didn't find anything. Did you not add the new classes mud-full-width and mud-full-height ? AFAIK they don't exist yet.

@henon Oh I just assumed those existed. i might do this another time then


Don't reset cache while zooming using a gesture

This reuses the cached canvas while the gesture is happening. Once it has stop updating, then recompute the cache with the proper zoom.
This should massively improve performance when panning on big scenes on mobile
Fixes #1056

Just tried on my iPhone 6 with #json=6295615189286912,tdPzpRsPvL3FPt7FZ0KrbQ, this is not 60fps but is responsive, unlike prod which completely freezes the entire browser.


Can not make a proper valign in Card

Hello, Materialize is really nice.
I'd like to apply valign in the card, but can't :(
Source Code:
<!DOCTYPE html>

	<title>Card in Image</title>
	<link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>
	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
	<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.96.1/css/materialize.min.css">

Circular images

				This is a square image. Add the "circle" class to it to make it appear circular.

Output in Chrome:

As you see, the image and text in the card are not in the middle of the card but a little bit upper :( I just want to make like the card with responsive image ( http://materializecss.com/media-css.html ). How can I fix it?

Huh, thats weird.  Your code snipped works for me on my machine when I link to the local download of the library.  But it is broken when I use the hotlink to the cdn.  My download is .96.1.  Have there been changes to the cloudflare CDN since I downloaded a couple of days ago that may have broken it?

@Holyphoenix thank you for your testing some environment.
I noticed a mistake.
In the code I pasted, I inserted an invalid line below.
    <link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>

Please delete it.

See https://github.com/Dogfalo/materialize/issues/1241

Thank you!


Can't use clsService across different test runs.

I'm using a common setup function for all my unit tests. However when running several test suites together only the first one to use the ClsService succeeds.
Repro url: https://github.com/lazaroofarrill/nestjs-cls-error-across-multiple-test-runs

Hm, I was able to reproduce it. I suspect there's something strange happening with how Jest treats async_hooks, because the error only happens with the --runInBand flag set. Without it, it works okay.
Given you're only concerned with unit tests that don't need to run in band, this should be enough of a "workaround" for you, but I'll investigate further.

This is truly I sad. I was using a custom it function to wrap run but I really wanted to avoid that. I have to run the tests in band otherwise the crash my computer.

I mean, in unit tests, you should treat ClsService as an external dependency and mock it out anyway. E2E tests should also work fine, since the request goes through the middleware. If need be, a custom it function seems like a viable workaround.
I have to close this though, because there's nothing I can do about it. Maybe try mocha as your test runner?


VM Lag and Screen Resolution Problems

Operating system
Ubuntu 22.04
Description

High Input Lag: The Windows 11 VM is laggy, which is especially noticeable when moving the cursor

Screen Resolution: The VM defaults to a 1080p resolution.
When I attempt to set the resolution to 4K (resolution of the monitor, connected to my laptop), the aspect ratio becomes 1:1 and the Windows 11 dock disappears.

The issues occur with both Firefox and Brave.
Docker compose
name: "winapps"
volumes:
data:
services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "tiny11"
RAM_SIZE: "16G"
CPU_CORES: "8"
privileged: true
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period: 2m
restart: on-failure
volumes:
- data:/storage
Docker log
❯ Starting Windows for Docker v3.12...
❯ For support visit https://github.com/dockur/windows
❯ CPU: AMD Ryzen 5 7640U w Radeon 760M Graphics | RAM: 79/93 GB | DISK: 204 GB (ext4) | HOST: 6.5.0-1023-oem...
❯ Warning: unexpected clocksource: hpet
❯ Booting Windows using QEMU v8.2.4...
BdsDxe: loading Boot0004 "Windows Boot Manager" from HD(1,GPT,A443F9A3-2662-458E-89BF-D7165B9A180B,0x800,0x40000)/\EFI\Microsoft\Boot\bootmgfw.efi
BdsDxe: starting Boot0004 "Windows Boot Manager" from HD(1,GPT,A443F9A3-2662-458E-89BF-D7165B9A180B,0x800,0x40000)/\EFI\Microsoft\Boot\bootmgfw.efi
❯ Windows started succesfully, visit http://localhost:8006/ to view the screen...
serpent@Serpent-Framework:~/Documents/Coding_Projects/Winapps$
Screenshots (optional)
Screencast from 15.06.2024 09:57:26.webm

Its better to use RDP, the web-viewer is only as a fallback during installation until you can use RDP.

Ah ok, thanks for the explanation and quick reply! I am currently trying to connect to the VM via RDP, but having a hard time.
I'm on Ubuntu 22.04 and can't figure out how to install FreeRDP (3.0.0 or higher) and connect to the Windows VM.
I tried the Flatpak as well as the Nightly Build for Ubuntu. Can you suggest me a way to get FreeRDP working?

Maybe you can use Remmina it is very popular and uses FreeRDP in the background.

Unfortunately, I do need FreeRDP, since I want to use winapps and it requires FreeRDP.
I tried Remmina anyway, but I get an error, when trying to connect to the RDP server

These are the logs:
remmina-Message: 13:09:29.562: Remmina does not log all output statements. Turn on more verbose output by using "G_MESSAGES_DEBUG=remmina" as an environment variable.
More info available on the Remmina wiki at:
https://gitlab.com/Remmina/Remmina/-/wikis/Usage/Remmina-debugging
xprop:  unable to open display ''
xprop:  unable to open display ''

(org.remmina.Remmina:2): Gtk-WARNING **: 13:09:29.722: gtk_menu_attach_to_widget(): menu already attached to GtkMenuItem
[13:09:33:745] [2:19] [ERROR][com.freerdp.core] - tpdu length 72 > tpkt header length 0
[13:09:33:745] [2:19] [ERROR][com.freerdp.core.nego] - Protocol Security Negotiation Failure
[13:09:33:745] [2:19] [ERROR][com.freerdp.core] - rdp_client_connect:freerdp_set_last_error_ex ERRCONNECT_SECURITY_NEGO_CONNECT_FAILED [0x0002000C]
[13:09:33:745] [2:19] [ERROR][com.freerdp.core.connection] - Error: protocol security negotiation or connection failure
sys:1: Warning: g_path_get_basename: assertion 'file_name != NULL' failed
[13:10:13:126] [2:55] [ERROR][com.freerdp.core] - tpdu length 72 > tpkt header length 0
[13:10:13:126] [2:55] [ERROR][com.freerdp.core.nego] - Protocol Security Negotiation Failure
[13:10:13:126] [2:55] [ERROR][com.freerdp.core] - rdp_client_connect:freerdp_set_last_error_ex ERRCONNECT_SECURITY_NEGO_CONNECT_FAILED [0x0002000C]
[13:10:13:126] [2:55] [ERROR][com.freerdp.core.connection] - Error: protocol security negotiation or connection failure

``

Well, now I feel stupid haha.
Thanks for the info. Using port 3389 worked!
Unfortunately, the resolution is really low, even when specifically set to 4k :/
Do you know if there is a setting, that I need to enable or change or something?


Collapse Multiline Comments with Python

Issue Type: Feature Request
Multiline comments both inside and outside the function can't be collapsed with Python. When there are hundreds of commented lines, it isn't convenient to view code. Even just fold those lines starting with '#' will make things better.
VS Code version: Code 1.49.1 (58bb7b2331731bf72587010e943852e13e6fd3cf, 2020-09-16T23:27:51.792Z)
OS version: Windows_NT x64 10.0.18362
Remote OS version: Linux x64 4.13.0-39-generic

This needs to be provided by the Python extension.
There's already an issue for it: https://github.com/microsoft/vscode-python/issues/1847


Add intial meetings notes to repo

This PR adds a FreeMind .mm version of the mind map that I made at the initial meeting, and I translated it to a markdown file, that I've also included.

The files LGTM @sehqlr, but can you make a folder like "meeting-notes" and a folder with "YYYY-MM-DD" so we can put new stuff as meetings happen? Thanks

Alrighty, I created a MeetingNotes/2017-02-09 path and put my notes in there.


feat: adding an exception for the globalSetup and globalTeardown files

:tada: This PR is included in version 2.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


NTRS 5'-nucleotidase activity abolished/decreased

abolished GMP 5'-nucleotidase activity
abolished AMP 5'-nucleotidase activity
abolished CMP 5'-nucleotidase activity
abolished UMP 5'-nucleotidase activity
decreased GMP 5' nucleotidase activity
decreased AMP 5' nucleotidase activity
decreased CMP 5' nucleotidase activity
decreased UMP 5' nucleotidase activity

duplicate
https://github.com/pombase/fypo/issues/4652


WIP #1105 fix bug with inclusion and linkage of has_one polymorphic

assignment and inclusion of has_one polymorphic relationships works incorrectly
tested on bug report
begin
  require 'bundler/inline'
  require 'bundler'
rescue LoadError => e
  STDERR.puts 'Bundler version 1.10 or later is required. Please update your Bundler'
  raise e
end

gemfile(true, ui: ENV['SILENT'] ? Bundler::UI::Silent.new : Bundler::UI::Shell.new) do
  source 'https://rubygems.org'

  gem 'rails', require: false
  gem 'sqlite3', platform: :mri

  gem 'activerecord-jdbcsqlite3-adapter',
      git: 'https://github.com/jruby/activerecord-jdbc-adapter',
      branch: 'rails-5',
      platform: :jruby

  if ENV['JSONAPI_RESOURCES_PATH']
    gem 'jsonapi-resources', path: ENV['JSONAPI_RESOURCES_PATH'], require: false
  else
    gem 'jsonapi-resources', git: 'https://github.com/cerebris/jsonapi-resources', require: false
  end

end

# prepare active_record database
require 'active_record'

class NullLogger < Logger
  def initialize(*_args)
  end

  def add(*_args, &_block)
  end
end

ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
ActiveRecord::Base.logger = ENV['SILENT'] ? NullLogger.new : Logger.new(STDOUT)
ActiveRecord::Migration.verbose = !ENV['SILENT']

ActiveRecord::Schema.define do
  # Add your schema here
  create_table :options, force: true do |t|
    t.integer :optionable_id
    t.string :optionable_type
    t.integer :maintainer_id
    t.boolean :enabled, default: false, null: false
  end

  create_table :androids, force: true do |t|
    t.string :version_name
  end

  create_table :users, force: true do |t|
    t.string :name
  end
end

# create models
class Option < ActiveRecord::Base
  belongs_to :optionable, polymorphic: true, required: false
  belongs_to :maintainer, class_name: 'User', required: false
end

class Android < ActiveRecord::Base
  has_one :option, as: :optionable
end

class User < ActiveRecord::Base
  has_one :maintained_option
end

# prepare rails app
require 'action_controller/railtie'
# require 'action_view/railtie'
require 'jsonapi-resources'

class ApplicationController < ActionController::Base
end

# prepare jsonapi resources and controllers
class OptionsController < ApplicationController
  include JSONAPI::ActsAsResourceController
end

class OptionResource < JSONAPI::Resource
  attribute :enabled
  has_one :optionable, polymorphic: true, class_name: 'Android'
  has_one :maintainer, class_name: 'User'
end

class AndroidResource < JSONAPI::Resource
  attribute :version_name
end

class UserResource < JSONAPI::Resource
  attribute :name
end

class TestApp < Rails::Application
  config.root = File.dirname(__FILE__)
  config.logger = ENV['SILENT'] ? NullLogger.new : Logger.new(STDOUT)
  Rails.logger = config.logger

  secrets.secret_token = 'secret_token'
  secrets.secret_key_base = 'secret_key_base'

  config.eager_load = false
end

# initialize app
Rails.application.initialize!

JSONAPI.configure do |config|
  config.json_key_format = :underscored_key
  config.route_format = :underscored_key
end

# draw routes
Rails.application.routes.draw do
  jsonapi_resources :options, only: [:show, :update]
end

# prepare tests
require 'minitest/autorun'
require 'rack/test'

# Replace this with the code necessary to make your test fail.
class BugTest < Minitest::Test
  include Rack::Test::Methods

  def json_api_headers
    {'Accept' => JSONAPI::MEDIA_TYPE, 'CONTENT_TYPE' => JSONAPI::MEDIA_TYPE}
  end

  def test_patch_link_option_with_android_include_optionable
    android = Android.create! version_name: '1.0'
    option = Option.create!
    json_request = {
        data: {
            id: option.id.to_s,
            type: 'options',
            relationships: {
                optionable: {
                    data: {
                        id: android.id.to_s,
                        type: 'androids'
                    }
                }
            }
        }
    }
    patch "/options/#{option.id}?include=optionable", json_request.to_json, json_api_headers
    assert last_response.ok?
    expected_response = {
        data: {
            id: option.id.to_s,
            type: 'options',
            links: {
                self: "http://example.org/options/#{option.id}"
            },
            attributes: {
                enabled: false
            },
            relationships: {
                optionable: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/optionable",
                        related: "http://example.org/options/#{option.id}/optionable"
                    },
                    data: {
                        id: android.id.to_s,
                        type: 'androids'
                    }
                },
                maintainer: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/maintainer",
                        related: "http://example.org/options/#{option.id}/maintainer"
                    }
                }
            }
        },
        included: [
            {
                id: android.id.to_s,
                type: 'androids',
                links: {
                    self: "http://example.org/androids/#{android.id}"
                },
                attributes: {
                    version_name: android.version_name
                }
            }
        ]
    }
    assert_equal expected_response, last_response_json
    assert_equal android, option.reload.optionable
  end

  def test_patch_unlink_option_from_android_include_optionable
    android = Android.create! version_name: '1.0'
    option = Option.create! optionable: android
    json_request = {
        data: {
            id: option.id.to_s,
            type: 'options',
            relationships: {
                optionable: {
                    data: nil
                }
            }
        }
    }
    patch "/options/#{option.id}?include=optionable", json_request.to_json, json_api_headers
    assert last_response.ok?
    expected_response = {
        data: {
            id: option.id.to_s,
            type: 'options',
            links: {
                self: "http://example.org/options/#{option.id}"
            },
            attributes: {
                enabled: false
            },
            relationships: {
                optionable: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/optionable",
                        related: "http://example.org/options/#{option.id}/optionable"
                    },
                    data: nil
                },
                maintainer: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/maintainer",
                        related: "http://example.org/options/#{option.id}/maintainer"
                    }
                }
            }
        }
    }
    assert_equal expected_response, last_response_json
    assert_equal nil, option.reload.optionable
  end

  def test_fetch_option_linked_with_android_include_optionable
    android = Android.create! version_name: '1.0'
    option = Option.create! optionable: android
    get "/options/#{option.id}?include=optionable", nil, json_api_headers
    assert last_response.ok?
    expected_response = {
        data: {
            id: option.id.to_s,
            type: 'options',
            links: {
                self: "http://example.org/options/#{option.id}"
            },
            attributes: {
                enabled: false
            },
            relationships: {
                optionable: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/optionable",
                        related: "http://example.org/options/#{option.id}/optionable"
                    },
                    data: {
                        id: android.id.to_s,
                        type: 'androids'
                    }
                },
                maintainer: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/maintainer",
                        related: "http://example.org/options/#{option.id}/maintainer"
                    }
                }
            }
        },
        included: [
            {
                id: android.id.to_s,
                type: 'androids',
                links: {
                    self: "http://example.org/androids/#{android.id}"
                },
                attributes: {
                    version_name: android.version_name
                }
            }
        ]
    }
    assert_equal expected_response, last_response_json
  end

  def test_fetch_option_not_linked_with_android_include_optionable
    option = Option.create!
    get "/options/#{option.id}?include=optionable", nil, json_api_headers
    assert last_response.ok?
    expected_response = {
        data: {
            id: option.id.to_s,
            type: 'options',
            links: {
                self: "http://example.org/options/#{option.id}"
            },
            attributes: {
                enabled: false
            },
            relationships: {
                optionable: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/optionable",
                        related: "http://example.org/options/#{option.id}/optionable"
                    },
                    data: nil
                },
                maintainer: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/maintainer",
                        related: "http://example.org/options/#{option.id}/maintainer"
                    }
                }
            }
        }
    }
    assert_equal expected_response, last_response_json
  end

  def test_fetch_option_not_linked_with_maintainer_include_maintainer
    option = Option.create!
    get "/options/#{option.id}?include=maintainer", nil, json_api_headers
    assert last_response.ok?
    expected_response = {
        data: {
            id: option.id.to_s,
            type: 'options',
            links: {
                self: "http://example.org/options/#{option.id}"
            },
            attributes: {
                enabled: false
            },
            relationships: {
                optionable: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/optionable",
                        related: "http://example.org/options/#{option.id}/optionable"
                    }
                },
                maintainer: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/maintainer",
                        related: "http://example.org/options/#{option.id}/maintainer"
                    },
                    data: nil
                }
            }
        }
    }
    assert_equal expected_response, last_response_json
  end

  def test_fetch_option_linked_with_maintainer_include_maintainer
    user = User.create! name: 'John Doe'
    option = Option.create! maintainer: user
    get "/options/#{option.id}?include=maintainer", nil, json_api_headers
    assert last_response.ok?
    expected_response = {
        data: {
            id: option.id.to_s,
            type: 'options',
            links: {
                self: "http://example.org/options/#{option.id}"
            },
            attributes: {
                enabled: false
            },
            relationships: {
                optionable: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/optionable",
                        related: "http://example.org/options/#{option.id}/optionable"
                    }
                },
                maintainer: {
                    links: {
                        self: "http://example.org/options/#{option.id}/relationships/maintainer",
                        related: "http://example.org/options/#{option.id}/maintainer"
                    },
                    data: {
                        id: user.id.to_s,
                        type: 'users'
                    }
                }
            }
        },
        included: [
            {
                id: user.id.to_s,
                type: 'users',
                links: {
                    self: "http://example.org/users/#{user.id}"
                },
                attributes: {
                    name: user.name
                }
            }
        ]
    }
    assert_equal expected_response, last_response_json
  end

  private

  def last_response_json
    JSON.parse(last_response.body).deep_symbolize_keys
  end

  def app
    Rails.application
  end
end

one failure left:
Failure:
BugTest#test_patch_unlink_option_from_android [/home/senid/projects/forked/jsonapi-resources/lib/bug_report_templates/rails_5_master_polymorphic_linkage_bug.rb:219]:
--- expected
+++ actual
@@ -1 +1 @@
-{:data=>{:id=>"3", :type=>"options", :links=>{:self=>"http://example.org/options/3"}, :attributes=>{:enabled=>false}, :relationships=>{:optionable=>{:links=>{:self=>"http://example.org/options/3/relationships/optionable", :related=>"http://example.org/options/3/optionable"}, :data=>nil}}}}
+{:data=>{:id=>"3", :type=>"options", :links=>{:self=>"http://example.org/options/3"}, :attributes=>{:enabled=>false}, :relationships=>{:optionable=>{:links=>{:self=>"http://example.org/options/3/relationships/optionable", :related=>"http://example.org/options/3/optionable"}}}}}

bin/rails test rails_5_master_polymorphic_linkage_bug.rb:182

@lgebhardt, I end up with an understanding that JSONAPI::Processor#flatten_resource_id_tree works incorrect after refactoring.
when we include relationship and it is not linked response does not have data in relationship object
BTW this behaviour is not tested at all, so all tests are green, which is completely wrong

@senid231 Thanks for the detailed error report. With the refactor I was worried about behaviors that were not explicitly tested, like this case.

@lgebhardt many cases aren't tested yet, and it's hard to add tests into the project, and hard to understand.
I think it should be refactored so that everyone could understand them and understand, add, and change them easily.
For now, I don't know how to do it. Have you any ideas and/or plans about tests refactoring?

BTW, what should I do with this PR?
should I remove WIP from the title so it could be merged?
@lgebhardt, I'm not familiar with the latest refactoring that you made, so finish it now. I can continue when I will have free time, or maybe you want to fix the issue with response serialization?

@senid231 I agree that the tests could be refactored, but it will be a large undertaking (and I don't have a lot of time for it). Probably the best way would be to add new tests as unit and integration tests and leave the existing tests in place. Eventually we can remove them after we ensure all the relevant functionality is tested.

You can leave the WIP in the title. I'd like to get some tests added to demonstrate the problem before I merge this PR. I can try to make some time in the coming week to work on that, and hopefully get a fix in there.
I'm not sure what you mean by "finish it now"? Are you referring to #1045? It is finished, but may still have bugs as you have found. I plan to get a related resource pagination support added before we do an alpha release where hopefully the bugs can be shaken out.

@lgebhardt what do you think about testing with RSpec?
It has its own downsides (like much bigger time for setup and runtime) but I think it will allow writing tests drier and more readable at the same time.

By "finish it now" I meant that I can't finish work on this PR and fix all bugs that I found. There are many changes in project, that I don't understand, yet

I don't have an opinion on RSpec. At this point it would need to be drastically better to justify the expense of switching. To me the problem with the test suite in JR isn't the testing framework, but rather that things are tested at too high of a level (controller/integration instead of unit).
I tent agree with @tenderlove here: https://tenderlovemaking.com/2015/01/23/my-experience-with-minitest-and-rspec.html

@senid231 I understand if you don't have time to fix all the bugs you find. If you can create an issue to describe them, even if it doesn't contain a fully reproducible bug report like you provided here, it will be appreciated.

@lgebhardt I have added tests that cover fixes that I made and bug with missing data: null in response for when not linked relationships are included

Hi @lgebhardt
What's the status of next stable release?
Maybe I can help you with something?
I'm really like jsonapi-resources and want to make it better. I understand that you have not much free time, but this is what open source community is needed for, doesn't it?) Collaborate to make awesome products in our free time.
I think if you will write somewhere plan and status of the current stable release (what needs to be done and what has been done) so other people (at least I) will have the ability to divide tasks among themselves.


folder name can have upto 207 character not 250 for onedrive business

on this link it was been told  ( https://support.microsoft.com/en-us/kb/2933738 )
Folder names can have up to 250 characters

on office 365 portal it is showing

but the problem is tht when tried to create folder with 250 character it failed on both office 365 portal and through API

my count say "207" character are accepted on both office 365 and onedrive api
this string contains 208 character and this string failes
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678"
there been alot of confusion, can some body comment on this

Hey @ankit-ankuagrawal: This is super confusing and we'll see if we can get the document you linked updated.


Ability to add middlewares to the routes

In a tenancy appllication, you might need to add a middleware to the routes to identify the tenant

Hey! Thanks for the PR. This was released in 2.1.4. :)


class classification in CenterPoint

Hi, where could I find the classification probs in CenterPoint of all classes, such as nusceces datasets. I only find separate heads with regression outputs.

Hi, have you found the solution to this question? I'm trying to find the same. Please let me know, thank you!

@ApoorvaSuresh Hi, there are no probs cause the objects are detected on local max position with specific head. The same position outputs of other heads should not combine or softmax.


Update to tokio 1.0 and bytes 1.0.

Tests pass without any code changes.

Thank you. I wonder how big the bump in new releases across crates.io is made by tokio 1.0 :-)).

Thank you. I wonder how big the bump in new releases across crates.io is made by tokio 1.0 :-)).

I certainly hope it's the last one in a little while...

I certainly hope it's the last one in a little while...


ubuntu1804_cuda_oneapi Image Addition, master branch (2021.10.10.)

With https://github.com/acts-project/vecmem/pull/127 in the process of fixing a long-standing issue with building NVidia binaries out of that project, it would be a good idea to explicitly test that such issues would not show up in the future.
Unfortunately this is only possible if one builds Intel's compiler by hand. The NVidia/CUDA support is only available with CUDA 10.X, so providing this on top of Ubuntu 20.04 is not the most practical. (It's not impossible, but one must install GCC 8 on Ubuntu 20.04 to make CUDA 10.2 functional. It's a bit too hacky of a setup to use it in the CI.)
The image basically "just" needs 1 more RUN step on top of what ubuntu1804_cuda already provides. So copy-pasting all of that would be silly. However what I did here is also not brilliant, as setting up the image like this would be pretty awkward for the CI system. I think the best solution would be to rename ubuntu1804_cuda to ubuntu1804_cuda_oneapi, and just add this one additional RUN statement at the end of it.
But I thought I would show the code like this first, and then we can discuss how we may want to go about this.
Pinging @paulgessinger.

Ah, had lost track of this, let's merge this.

This is not what we actually need for https://github.com/acts-project/traccc/pull/130, but I thought it would finally be time to revive this PR...

@paulgessinger, could we sort out these various updates? They would help with the R&D projects...

Unfortunately, the CI doesn't run on forks on this repo. I'll merge anyway and we'll see it there.

Unfortunately the CI does not seem to be in a great condition. :frowning: I was getting these results last week:
https://github.com/krasznaa/machines/actions/runs/1864726726
(It's weird that these don't show up in the PR...)

Though, it's obvious that I didn't even look at those results before now. :stuck_out_tongue: The error is "just" from not being able to upload the generated image(s) into the repository.

The CI on the master branch should (you never now with GH's permissions) have the right permissions to push to the registry. I can now just make the image public, I believe.


assets-for-api-docs repo can't run presubmits anymore.

The assets-for-api-docs repo can't run presubmits anymore. It seems to have a problem authenticating with Cirrus.
See here for an example failure:
https://github.com/flutter/assets-for-api-docs/pull/221/checks?check_run_id=15803091607
This links to the Cirrus run:
https://cirrus-ci.com/task/5763072120324096
Which has the error:
Failed to stop: Error getting access token for service account: 400 Bad Request POST https://oauth2.googleapis.com/token {"error":"invalid_grant","error_description":"Invalid JWT Signature."}, iss<EMAIL_ADDRESS>

This is due to key expiration. Fix: https://github.com/flutter/assets-for-api-docs/pull/222


TypeError: fileTimestamps.get is not a function in NormalModule.js

Do you want to request a feature or report a bug?
Bug

What is the current behavior?
\node_modules\webpack\lib\NormalModule.js:432
const timestamp = fileTimestamps.get(file);
                                     ^
TypeError: fileTimestamps.get is not a function

If the current behavior is a bug, please provide the steps to reproduce.
This Error occurs while watching for file changes
webpack --watch

What is the expected behavior?
Must recompile changed file without error
If this is a feature request, what is motivation or use case for changing the behavior?
Please mention other relevant information such as the browser version, Node.js version, webpack version, and Operating System.
node v9.6.1
webpack 4.1.1
Operating System Windows 10 64bit

Looks like multiple different webpack versions installed.
If not:

Thanks for your report. It would be great if you reduce your issue to a small reproducible example. Best put this example into a github repository together with instructions how to get to the problem.

Sorry the issue is with AngularCompilerPlugin its what causing this issue. i think its not compatible with 4.1.1


Error On click

OwlDateTimeContainerComponent.html:1 ERROR TypeError: Cannot read property 'subscribe' of undefined
at new OwlCalendarComponent (calendar.component.js:32)
at createClass (core.js:9309)
at createDirectiveInstance (core.js:9184)
at createViewNodes (core.js:10404)
at createEmbeddedView (core.js:10312)
at callWithDebugContext (core.js:11349)
at Object.debugCreateEmbeddedView [as createEmbeddedView] (core.js:10850)
at<EMAIL_ADDRESS>(core.js:8899)
at<EMAIL_ADDRESS>(core.js:8765)
at<EMAIL_ADDRESS>(common.js:3352)
I have version 6.0.12 on a new angular 6 project. Anyone else having similar error?

I get the same error too, but couldn't find any solution

I solved the problem removing a custom provider that was used to change the text of the buttons
{ provide: OwlDateTimeIntl, useClass: DatetimeLocaleCustomService }

In my case the problem was that my custom OwlDateTimeIntl provider didn't extend OwlDateTimeIntl


Cloud GUIDS: Instrument AWS SDK's Seahorse

With a primary focus on generating cloud guids (an arn in the case of AWS) and a secondary focus on providing metrics segments for AWS SDK client calls, we should instrument the Seahorse::Client::Base class provided by aws-sdk-core (limiting support to v3+).
As of the latest (February 2024) release, the "install everything, please" aws-sdk-resources gem declares 378 dependencies on other aws-sdk-* gems. Given that the client classes in these other gems all inherit from Seahorse, it makes sense to go after Seahorse first and fill in any gaps in coverage later.

After looking into it, instrumenting seahorse wouldn't give us the information we need, so we will have to instrument each gems clients individually.


InteractionRaycast doesnt appear to be working at all

Cogito and Godot Engine Version:
4.2.1.stable.mono
Description:
Player is unable to interact with any objects, looks to be an issue with the InteractionRaycast since running the project was throwing a "cannot add null value to add_exception_rid()" on player._ready()
This appeared to happen after updating branch from commit 6d9f37e1a7fb0eee6d3a7d3399f5f4e00f9be1c1
Reproduction steps:

Run the project with the latest main commit
Note the add_exception_rid() error
Stop the project, attach the interaction_raycast.gd script to the Player scene InteractionRaycast
Rerun the project, note error no longer appears, but nothing is interactable

Expected behavior:
Items should be interactable
Screenshots:

I'm unable to reproduce this from a clean pull. Can you paste the error you're seeing as well?
I'm only getting the following warnings:

Regarding step three, they raycast should have the script assigned to it already 🤔
https://github.com/Phazorknight/Cogito/blob/main/COGITO/PrefabScenes/player.tscn#L99

Oh nevermind, saw the error at the top. That's a really weird one though, not sure why get_rid() would be returning null from the player there.

When I pulled over the files I chose "reload" instead of "resave" because I assumed that would have updated the files the newly copied ones but is that correct?

I wiped the whole folder and started again after a failed attempt to do some refactoring and now it seems to work. I'm guessing Godot cached some files which ended up causing issues.


Make from_hex inherent for byte-like types

Draft till #2488 goes in.
Byte like types naturally display in hex, therefore they should havean inherent method from_hex and not implement FromHex.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

-1 of 12 (91.67%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.002%) to 83.993%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bitcoin/src/internal_macros.rs
6
7
85.71%

Totals

Change from base Build<PHONE_NUMBER>:
-0.002%

Covered Lines:
19430

Relevant Lines:
23133

💛  - Coveralls


Fix For testing current collection your in

I have detailed documentation on the collection issue finally narrowed down.
https://github.com/provenvelocity/devops_test/tree/Collections_issue.
The issue is ansible is not aware of the current collection your in. This was fixed in ansible-lint by coping over the current collection. This fix allows molecule to change the cache_dir for lint and then better-integrated ansible lint with molecule.
I know there is a long-term fix in the works but this will bridge the gaps.
PR Type

Bugfix Pull Request

This Fixes the following issue:
https://github.com/ansible-community/molecule/issues/3135
It Relies on this issue being fixed.
https://github.com/ansible-community/ansible-lint/issues/1641

I took some time to look into this issue and I am having a hard time replicating the problems. This is what I did to get things set up:
$ mkdir -p /tmp/molecule_test/ansible_collections/provenvelocity
$ cd /tmp/molecule_test/ansible_collections/provenvelocity
$ git clone git@github.com:provenvelocity/devops_test.git
$ cd devops_test
$ git checkout Collections_issue

$ python -m venv /tmp/venv
$ . /tmp/venv/bin/activate
(venv) $ pip install -U pip
(venv) $ pip install -r requirements_withlock.txt

(venv) $ sed -i -e "s/import_playbook: provenvelocity.devops_test.palybooks.main.yml/import_playbook: provenvelocity.devops_test.main/" molecule/default/converge.yml
(venv) $ molecule converge

The sed command is there to fix the error in the converge playbook that uses invalid syntax for referencing collection playbooks. The command indeed fails, but the failure has nothing to do with molecule:
INFO     default scenario test matrix: dependency, create, prepare, converge                                                                         [127/1914]
INFO     Performing prerun...
INFO     Running ansible-galaxy role install --roles-path /home/tadej/.cache/ansible-lint/139bb1/roles -vr requirements.yml
INFO     Running ansible-galaxy collection install -p /home/tadej/.cache/ansible-lint/139bb1/collections -vr requirements.yml
INFO     Added ANSIBLE_COLLECTIONS_PATH=/home/tadej/.cache/ansible-lint/139bb1/collections
INFO     Running default > dependency
[WARNING]: The requirements file '/home/tadej/tmp/123/ansible_collections/prove
nvelocity/devops_test/requirements.yml' contains collections which will be
ignored. To install these collections run 'ansible-galaxy collection install
-r' or to install both at the same time run 'ansible-galaxy install -r' without
a custom install path.
Skipping install, no requirements found
INFO     Dependency completed successfully.
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/download/nginxinc-nginx_core-0.3.0.tar.gz to /home/tadej/.ansible/tmp/ansible-local-124432xh2q4asn/tmphcbs4qxj/nginxinc-
nginx_core-0.3.0-__814xdm
Installing 'nginxinc.nginx_core:0.3.0' to '/home/tadej/.cache/molecule/devops_test/default/collections/ansible_collections/nginxinc/nginx_core'
nginxinc.nginx_core:0.3.0 was installed successfully
INFO     Dependency completed successfully.
INFO     Running default > create

PLAY [Create] ******************************************************************

TASK [Create molecule instance(s)] *********************************************
changed: [localhost] => (item=instance)

TASK [Populate instance config dict] *******************************************
ok: [localhost] => (item={'changed': True, 'log': '/home/tadej/.cache/molecule/devops_test/default/vagrant-instance.out', 'Host': 'instance', 'HostName': '127.
0.0.1', 'User': 'vagrant', 'Port': '2222', 'UserKnownHostsFile': '/dev/null', 'StrictHostKeyChecking': 'no', 'PasswordAuthentication': 'no', 'IdentityFile': '/
home/tadej/.cache/molecule/devops_test/default/.vagrant/machines/instance/virtualbox/private_key', 'IdentitiesOnly': 'yes', 'LogLevel': 'FATAL', 'invocation':
{'module_args': {'instance_name': 'instance', 'platform_box': 'centos/8', 'state': 'up', 'instance_interfaces': [], 'config_options': {}, 'provider_name': 'vir
tualbox', 'provider_memory': 512, 'provider_cpus': 2, 'provider_options': {}, 'provision': False, 'force_stop': False, 'instance_raw_config_args': None, 'platf
orm_box_version': None, 'platform_box_url': None, 'provider_override_args': None, 'provider_raw_config_args': None, 'workdir': None}}, 'failed': False, 'item':
 {'box': 'centos/8', 'name': 'instance'}, 'ansible_loop_var': 'item'})

TASK [Convert instance config dict to a list] **********************************
ok: [localhost]

TASK [Dump instance config] ****************************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

INFO     Running default > prepare

PLAY [Prepare] *****************************************************************

TASK [Bootstrap python for Ansible] ********************************************
ok: [instance]

PLAY RECAP *********************************************************************
instance                   : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

INFO     Running default > converge
[WARNING]: running playbook inside collection provenvelocity.devops_test

PLAY [devops_test.example2] ****************************************************

TASK [Gathering Facts] *********************************************************
ok: [instance]

TASK [nginxinc.nginx_core.nginx : Check whether you are using a supported NGINX distribution] ***
ok: [instance] => {
    "changed": false,
    "msg": "Your OS, CentOS is supported by NGINX Open Source"
}

TASK [nginxinc.nginx_core.nginx : Set up prerequisites] ************************
included: /home/tadej/.cache/molecule/devops_test/default/collections/ansible_collections/nginxinc/nginx_core/roles/nginx/tasks/prerequisites/prerequisites.yml
 for instance

TASK [nginxinc.nginx_core.nginx : Install dependencies] ************************
included: /home/tadej/.cache/molecule/devops_test/default/collections/ansible_collections/nginxinc/nginx_core/roles/nginx/tasks/prerequisites/install-dependenc
ies.yml for instance

TASK [nginxinc.nginx_core.nginx : (Alpine Linux) Install dependencies] *********
skipping: [instance]

TASK [nginxinc.nginx_core.nginx : (Debian/Ubuntu) Install dependencies] ********
skipping: [instance]

TASK [nginxinc.nginx_core.nginx : (Amazon Linux/CentOS/Oracle Linux/RHEL) Install dependencies] ***
fatal: [instance]: FAILED! => {"changed": false, "msg": "This command has to be run under the root user.", "results": []}

PLAY RECAP *********************************************************************
instance                   : ok=4    changed=0    unreachable=0    failed=1    skipped=2    rescued=0    ignored=0

CRITICAL Ansible return code was 2, command was: ansible-playbook --inventory /home/tadej/.cache/molecule/devops_test/default/inventory --skip-tags molecule-no
test,notest /home/tadej/tmp/123/ansible_collections/provenvelocity/devops_test/molecule/default/converge.yml

AM I missing something here so that I could replicate the issues you are having?

Ya I have dyslexia… even with the correct spelling it still fails.
I get the errors documented in the read me every time.
I will try to follow your testing locations and see what happens. The
errors should be as I documented. Honestly maybe ansible treats tmp as a
hidden undocumented collections folder lol… after reading through that code
and setting break points for two week I would not be surprised.
The core issue is that ansible is not aware of the current collection and
will not be aware of it unless you put it in a designated collections
folder.
Ansible lint also had an issue with the play book  not being seen as part
of a collection.
If you take a look at the code changes I made… I think think they are a
good refactor either way.
Can you just run ansible-lint for me
Also can you run in. Debug mode so I can read through the env
Also I’m betting some how the code got into the molecule collections
folder.  Which it never did in my testing.
Thanks for trying it out
On Sat, Jun 26, 2021 at 3:54 AM Tadej Borovšak @.***>
wrote:

I took some time to look into this issue and I am having a hard time
replicating the problems. This is what I did to get things set up:
$ mkdir -p /tmp/molecule_test/ansible_collections/provenvelocity
$ cd /tmp/molecule_test/ansible_collections/provenvelocity
$ git clone @.***:provenvelocity/devops_test.git
$ cd devops_test
$ git checkout Collections_issue
$ python -m venv /tmp/venv
$ . /tmp/venv/bin/activate
(venv) $ pip install -U pip
(venv) $ pip install -r requirements_withlock.txt
(venv) $ sed -i -e "s/import_playbook: provenvelocity.devops_test.palybooks.main.yml/import_playbook: provenvelocity.devops_test.main/" molecule/default/converge.yml
(venv) $ molecule converge
The sed command is there to fix the error in the converge playbook that
uses invalid syntax for referencing collection playbooks. The command
indeed fails, but the failure has nothing to do with molecule:
INFO     default scenario test matrix: dependency, create, prepare, converge                                                                         [127/1914]
INFO     Performing prerun...
INFO     Running ansible-galaxy role install --roles-path /home/tadej/.cache/ansible-lint/139bb1/roles -vr requirements.yml
INFO     Running ansible-galaxy collection install -p /home/tadej/.cache/ansible-lint/139bb1/collections -vr requirements.yml
INFO     Added ANSIBLE_COLLECTIONS_PATH=/home/tadej/.cache/ansible-lint/139bb1/collections
INFO     Running default > dependency
[WARNING]: The requirements file '/home/tadej/tmp/123/ansible_collections/prove
nvelocity/devops_test/requirements.yml' contains collections which will be
ignored. To install these collections run 'ansible-galaxy collection install
-r' or to install both at the same time run 'ansible-galaxy install -r' without
a custom install path.
Skipping install, no requirements found
INFO     Dependency completed successfully.
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/download/nginxinc-nginx_core-0.3.0.tar.gz to /home/tadej/.ansible/tmp/ansible-local-124432xh2q4asn/tmphcbs4qxj/nginxinc-
nginx_core-0.3.0-__814xdm
Installing 'nginxinc.nginx_core:0.3.0' to '/home/tadej/.cache/molecule/devops_test/default/collections/ansible_collections/nginxinc/nginx_core'
nginxinc.nginx_core:0.3.0 was installed successfully
INFO     Dependency completed successfully.
INFO     Running default > create
PLAY [Create] ******************************************************************
TASK [Create molecule instance(s)] *********************************************
changed: [localhost] => (item=instance)
TASK [Populate instance config dict] *******************************************
ok: [localhost] => (item={'changed': True, 'log': '/home/tadej/.cache/molecule/devops_test/default/vagrant-instance.out', 'Host': 'instance', 'HostName': '127.
0.0.1', 'User': 'vagrant', 'Port': '2222', 'UserKnownHostsFile': '/dev/null', 'StrictHostKeyChecking': 'no', 'PasswordAuthentication': 'no', 'IdentityFile': '/
home/tadej/.cache/molecule/devops_test/default/.vagrant/machines/instance/virtualbox/private_key', 'IdentitiesOnly': 'yes', 'LogLevel': 'FATAL', 'invocation':
{'module_args': {'instance_name': 'instance', 'platform_box': 'centos/8', 'state': 'up', 'instance_interfaces': [], 'config_options': {}, 'provider_name': 'vir
tualbox', 'provider_memory': 512, 'provider_cpus': 2, 'provider_options': {}, 'provision': False, 'force_stop': False, 'instance_raw_config_args': None, 'platf
orm_box_version': None, 'platform_box_url': None, 'provider_override_args': None, 'provider_raw_config_args': None, 'workdir': None}}, 'failed': False, 'item':
{'box': 'centos/8', 'name': 'instance'}, 'ansible_loop_var': 'item'})
TASK [Convert instance config dict to a list] **********************************
ok: [localhost]
TASK [Dump instance config] ****************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost                  : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
INFO     Running default > prepare
PLAY [Prepare] *****************************************************************
TASK [Bootstrap python for Ansible] ********************************************
ok: [instance]
PLAY RECAP *********************************************************************
instance                   : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
INFO     Running default > converge
[WARNING]: running playbook inside collection provenvelocity.devops_test
PLAY [devops_test.example2] ****************************************************
TASK [Gathering Facts] *********************************************************
ok: [instance]
TASK [nginxinc.nginx_core.nginx : Check whether you are using a supported NGINX distribution] ***
ok: [instance] => {
"changed": false,
"msg": "Your OS, CentOS is supported by NGINX Open Source"
}
TASK [nginxinc.nginx_core.nginx : Set up prerequisites] ************************
included: /home/tadej/.cache/molecule/devops_test/default/collections/ansible_collections/nginxinc/nginx_core/roles/nginx/tasks/prerequisites/prerequisites.yml
for instance
TASK [nginxinc.nginx_core.nginx : Install dependencies] ************************
included: /home/tadej/.cache/molecule/devops_test/default/collections/ansible_collections/nginxinc/nginx_core/roles/nginx/tasks/prerequisites/install-dependenc
ies.yml for instance
TASK [nginxinc.nginx_core.nginx : (Alpine Linux) Install dependencies] *********
skipping: [instance]
TASK [nginxinc.nginx_core.nginx : (Debian/Ubuntu) Install dependencies] ********
skipping: [instance]
TASK [nginxinc.nginx_core.nginx : (Amazon Linux/CentOS/Oracle Linux/RHEL) Install dependencies] ***
fatal: [instance]: FAILED! => {"changed": false, "msg": "This command has to be run under the root user.", "results": []}
PLAY RECAP *********************************************************************
instance                   : ok=4    changed=0    unreachable=0    failed=1    skipped=2    rescued=0    ignored=0
CRITICAL Ansible return code was 2, command was: ansible-playbook --inventory /home/tadej/.cache/molecule/devops_test/default/inventory --skip-tags molecule-no
test,notest /home/tadej/tmp/123/ansible_collections/provenvelocity/devops_test/molecule/default/converge.yml
AM I missing something here so that I could replicate the issues you are
having?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ansible-community/molecule/pull/3165#issuecomment-868983979,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK2F5C6NCELAVJNNTEDZDU3TUWWUXANCNFSM47ISDE4A
.

I have a feeling that the thing that I did differently is where I checked out the code. Most ansible tools that developer use while developing collections require collection to be checked out at /some/path/that/you/can/freely/select/ansible_collections/<namespace>/<collection_name>. If you do not do that, any ansible-test will yell at you.

Ahhhhhh ya that would do ti ;)
That is why I was looking for the debug output.
I'm not coding for people that know the ins and outs of ansible.... I'm
coding for a company of 200+ teams that will put the code anywhere. :P
On Sat, Jun 26, 2021 at 9:24 AM Tadej Borovšak @.***>
wrote:

I have a feeling that the thing that I did differently is where I checked
out the code. Most ansible tools that developer use while developing
collections require collection to be checked out at
/some/path/that/you/can/freely/select/ansible_collections//<collection_name>.
If you do not do that, any ansible-test will yell at you.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ansible-community/molecule/pull/3165#issuecomment-869025908,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK2F5C2U3DOZYKO7AFYXYQTTUX5LNANCNFSM47ISDE4A
.

@tadeboro Were you able to look at the changes in the code directly?
I think that overall the changes all just strengthen ansible-lint to be more robust in its configuration and how it executes collections. It also allows molecule and ansible-lint to utilize the same collections cache path for their testing to better utilizing each other's code and download time.
My use case is:

user starts coding a collection in any location
Then add's in molecule to test
Then makes a Tests for a playbook they just started writing in the current collection
Then runs default molecule test with the default setup which includes anible-lint

Since Ansible won't (currently) check for a current folder to see if it's a collection we must handle that.
Also, Ansible galaxy does not check for the current folder to see if it is a collection so again that must be handled. This is handled for in ansible-lint 90% of the way the code I added bridges the final gap... Allowing molecule to utilize ansible-lint to ensure all the needed code is in its ephemeral testing folder.
Again I am setting a framework for all of my teams to use collections, molecule, and ansible-lint as one unit, and without this fix, it makes collections force each developer to change how and where they develop which I have always found is a bad way to get a developer to use a framework and I need them to switch of chef and puppet to ansible quickly.

IMHO testing collections works as it right now and due to the work-in-progress to move the bootstrapping code inside https://github.com/ansible-community/ansible-compat/ i will not have time to look into this particular issue, not until the move becomes effective.

Just to add some more info, regarding what @ssbarnea said: testing collections work only if they follow the path requirements (ansible_collections/...).
IMHO although this convention should be followed by devs, many people work on multiple projects, including non-ansible ones, and they already follow a different directory tree structure for their git projects. What ansible-lint does should be the correct thing to do: symlink the current collection to an standard directory tree.
As molecule already uses ansible-lint's prerun, which sets the collection and role paths to the symlinked ones, it should honor them, adding new directories but not ignoring their values.

The fix in ansible lint that then fixes molecule does two things that are
necessary to handle for everything you noted. One is it also handles for
import_playbook and checking to see if it is a collection which was missing
in your code. This will be needed no matter what.  It then makes some small
minor changes that allows ansible-lint pre run and molecule to use the same
cache directory in the ephemeral directory in molecule which then fixes all
other collection issues.
If you look at the code you would see how all the changes only help our
tools and make them faster more robust and better able to handle for
collections.
I would hope we could merge them and put this to bed lol….
Yes collections need to be in a location for now and these fixes just
finish some small gaps we had.
On Tue, Jun 29, 2021 at 2:08 AM Xabier Napal @.***>
wrote:

Just to add some more info, regarding what @ssbarnea
https://github.com/ssbarnea said: testing collections work only if
they follow the path requirements (ansible_collections/...).
IMHO although this convention should be followed by devs, many people work
on multiple projects, including non-ansible ones, and they already follow a
different directory tree structure for their git projects. What
ansible-lint does should be the correct thing to do: symlink the current
collection to an standard directory tree.
As molecule already uses ansible-lint's prerun, which sets the collection
and role paths to the symlinked ones, it should honor them adding new
directories but not ignoring their values.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ansible-community/molecule/pull/3165#issuecomment-870419630,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK2F5C3IUY6RA3KCLFUKCXDTVGEPFANCNFSM47ISDE4A
.

IMHO testing collections works as it right now and due to the work-in-progress to move the bootstrapping code inside https://github.com/ansible-community/ansible-compat/ i will not have time to look into this particular issue, not until the move becomes effective.

@ssbarnea  Can you please look at the import_playbook issue with collections this a bonified error that has to do with the lack of checking to see if the omported_playbook is a collection. They do this in ansible when they process the import_playbook processing all I did was add it to ansible-lint....
If you look at the code I have implemented the fix you need...

This seems related to #3171 but it does not seem to fix the two related broken tests yet.

What command do I run to test for them I can refactor and fix those also…
On Fri, Jul 2, 2021 at 5:59 AM Sorin Sbarnea @.***>
wrote:

This seems related to #3171
https://github.com/ansible-community/molecule/issues/3171 but it does
not seem to fix the two related broken tests yet.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ansible-community/molecule/pull/3165#issuecomment-872978576,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK2F5C2LGW2QVFENPW6DSW3TVWZ37ANCNFSM47ISDE4A
.

There is nothing you can do now as we first need to make some decisions on which direction to take. I opened https://github.com/ansible-community/molecule/pull/3173 but at this stage I only want to gather feedback from other molecule users regarding on how we want to deal with dependencies.
For the moment your best bet is to avoid using "dependency" step inside molecule and only rely on a requirements.yml at the root of you code repositories (that one is installed automatically during prerun phase).

Closing as https://github.com/ansible-community/molecule/pull/3225 will be fixing this in a future proof way.


Fix LineProfile bug where wrong curve length was used

LineProfile used the curve length in mm to calculate the sampling distance between resampled points used to probe to get the profile values, however, the curve which is resampled has been converted to use IJK coordinates instead.  Therefore we need to use the curve length in IJK space which calculating the sampling distance, otherwise, we will get the wrong number of sampling points. I discovered this when the probe filter returned 378 sampled points for an input lineResolution of 100 on the image I was working with. The only change in this PR is to calculate the curve length in IJK coordinates and use that instead when calculating the sampling distance.

Good catch! The fix requires some more work, as the issue is actually that resampling is done in IJK space (slicer.vtkMRMLMarkupsCurveNode.ResamplePoints(curvePoints_IJK, sampledCurvePoints_IJK, samplingDistance, closedCurve)), which does not make sense, because we want equal point distances in physical space (we don't want the physical distance between sample points depend on direction of the line segment).
Could you update the code to resample points in RAS coordinate system and then convert the coordinates to IJK?

Got it, that makes more sense.  I misread the comments in the file as indicating that the resampling had to be uniformly spaced in IJK coordinates in order for the VTK filter to work properly.   Also, since I have been dealing only with single line segments, uniform spacing in IJK was still uniform in the image volume RAS space, but you are correct that if the profile was to be taken along multiple line segments with differing orientations (e.g. along a curve rather than a straight line) uniform IJK sampling will not lead to uniform RAS sampling if the image volume is anisotropic.  I will correct the code to resample uniformly in RAS space and then convert to IJK to feed to the probe filter.

After seeing some more odd behavior when I was testing my fix, I did more testing, and think can now characterize when vtkProbeFilter returns values which I think are incorrect. I found that you had already discovered that vtkProbeFilter considers the bounding box of the image to only extend to contain all voxel centers, excluding a 1/2 voxel shell on the outer boundary of the actual image bounding box.  As you pointed out, this is a particular problem for 2D images, because that 1/2 voxel shell includes the whole image except for an infinitesimal plane running though the center. Probe points within the shell but which don't manage to cross the plane are treated as if they were outside the image, and always return a probed value of zero. What was not clear to me (and still isn't), was why crossing the central plane led to a different result.  If vtkProbeFilter thought those points were outside the volume, why, even if they were on opposite side of the plane, would they get interpolated probed values? I tried to understand the vtkProbeFilter source code, but C++ remains too opaque for me to follow it well, so I still don't really understand, beyond that we avoid an early return by crossing the bounding box. As long as we cross the bounding box, I reproduce the behavior where correct values are returned for probe points in the outer shell (for 3D as well as 2D images).
In addition to that desirable behavior, I found that, as long as one probed point is inside that outer shell (so that returning early with all zeros is avoided) vtkProbeFilter also returns probe values which function something like nearest neighbor extrapolation for an additional 1/2 voxel shell OUTSIDE the image volume boundary, which seems to me to be an incorrect behavior. Points truly outside the image volume should return 0 for a probed value. Here is a gist demonstrating these findings, just run from Slicer python interactor..  Let me know how you think would be best to handle the situation. I see a few options

Ignore it, figuring that, for most use cases, a half-voxel shell too much or too little of probed values will be inconsequential
keep similar to current behavior, where 2D images are handled as a special case, but the borders of 3D images are not, and the behavior of probed values near these borders are left to the inconsistent whims of vtkProbeFilter
detect probe points near boundaries as special cases for both 2D and 3D images (and ND?) and handle them in a way so that they return correct and consistent results (in which case we would need to decide exactly what those should be)
I'm also open to other suggestions.

What was not clear to me (and still isn't), was why crossing the central plane led to a different result.

The root cause of the problem is that vtkProbeFilter can only interpolate, it cannot extarpolate. See detailed explanation here: https://discourse.vtk.org/t/bounding-box-of-vtkimagedata/2178

Let me know how you think would be best to handle the situation. I see a few options

The current behavior is good for now, keep handling single-slice volumes as a special case. If a volume has two or more slices then there is a generous sized-space between the first and last slices, so even if there is numerical imprecision it is reasonable to require the user to place the points between the centers of the first and last planes. If a volume has only one slice then we cannot ask users to draw the line inside the volume, because there is no inside for a single-slice volume.
For a more robust and consistent behavior, we would need a vtkImageProbeFilter that David Gobbi described in the VTK forum discussion, which would be able to extrapolate from boundary points by a half voxel.

vtkProbeFilter actually can only interpolate, but it is very hard to detect if the sampling object is inside the dataset (it just checks if the bounding boxes intersect) so vtkProbeFilter can be tricked into a slight extrapolation. Of course this extrapolation is nothing sophisticated, it is just some weighted average or something like that, so essentially it returns the linear interpolation between closest points in the image.
Indeed, extending the image could be one solution for this, but it would be an overkill (it would be more complex, potentially much, much slower and could use a lot of memory for a big image), and it would still be just a workaround. If you would like a clean solution then you could implement vtkImageProbeFilter.

Thanks, I appreciate the extra explanation.  I implemented the suggested approach (maintain status quo: 2D images are handled as a special case and 3D images retain inconsistent behavior on outer shell and near outer boundary), with the bug fix that uniform resampling is done in RAS space before converting to IJK coordinates for probing.  I also added a small note about the boundary behavior into the helpText.


Change to gnafloader:latest breaks schema in SQL query

This commit https://github.com/LukePrior/nbn-upgrade-map/commit/576d61b00a1d15f8858ccd5c0940a5cae1cf76d5 updated the docker image to use :latest which now uses a different schema name.
The PR https://github.com/LukePrior/nbn-upgrade-map/pull/56 fixes this (along with optionally adding an index to the DB to speed up subsequent runs)

Cheers


Remove The .DS_Store File

https://github.com/BasisHub/web-components/blob/master/.DS_Store

Deleted.


Removed scanning for backslash(es) as such an option is unspecified

You can backslash escape individual letters:
moment().format("M") // '4'
moment().format("\\M") // 'M'

notice that "\\M" is a string with one backslash.


added turbolinks option for pageview observer

thanks for the PR! looks good to me.
Sadly I don't know enough about how the google tag manager works. See my comment (https://github.com/railslove/rack-tracker/pull/88#discussion_r130382810) do you have any hints on that?

Let me get back to you shortly. I am following a published model from the internet, but I have yet to validate it in practice. Perhaps I was too quick to send you the PR….
From: Michael Bumann<EMAIL_ADDRESS>Sent: Monday, July 31, 2017 11:21 AM
To: railslove/rack-tracker<EMAIL_ADDRESS>Cc: Jason Olim<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [railslove/rack-tracker] added turbolinks option for pageview observer (#88)
thanks for the PR! looks good to me.
Sadly I don't know enough about how the google tag manager works. See my comment (#88 (comment) https://github.com/railslove/rack-tracker/pull/88#discussion_r130382810 ) do you have any hints on that?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/railslove/rack-tracker/pull/88#issuecomment-319100274 , or mute the thread https://github.com/notifications/unsubscribe-auth/AAxK-CWXZy13H0AE0oiwg-Kv8Fg0ObVbks5sTfDcgaJpZM4Oog_M .

@jolim any update on this? let me know if you need some help.

It does seem to be working appropriately. According to my GTM consultant, the code tracks pageviews correctly when people use turbolinks. The major caveat is that I cannot confirm this first-hand because I don’t know anything about GTM and haven’t seen the difference in output.
Given that it is an option (which I will add docs for now), it should be safe to include. You can get additional feedback from others in practice if you are comfortable incorporating this as an experimental feature.

would be ok for me! thanks