Support for unstructured grid with a vertical dimension

✨ Feature Request

Firstly, thanks very much for creating this library, I'm excited to use it in my research!
Secondly, would it be possible to generalise geovista.Transform.from_unstructured() for it to take in arrays with more than 2 dimensions, i.e. vertical levels (and possibly time)?
Motivation

I am trying to visualise LFRic output (happy to eventually contribute to the gallery by the way), and while the from_unstructured() method works great for 2D arrays, I would like to plot something w.r.t. model height. Currently there's no obvious way to do this as that function accepts only longitudes and latitudes, throwing an error if I pass a full 3D array as data.
This is probably related to the "isosurfaces support" to-do item.

Hey @dennissergeev,
Stoked to hear that you're excited about geovista... I am too!
Prior to geovista, I was playing with animating model time-series and also providing a slider so the user can manually control the render of spatial data with another single dimension (such as time). To be honest, that worked reasonably well. Here's a proof-of-concept I'm currently working on for geovista... it's show-casing an unstructured ocean model with variable resolution quad-faces:

Apologies for the poor quality GIF, it doesn't really do the colormap justice... but I think you get the idea of the direction I'm headed in.
So time-series support is definitely in the pipeline, perhaps along with ipywidget integration for jupyter... but the overriding goal here is for geovista to easily integrate into the existing scientific python ecosystem e.g., scripting, notebooks, https://panel.holoviz.org/ et al... and this should be a level playing field for the community, with regards to whether you're coming to geovista from iris, xarray, cupy or just where ever.
There are some fundamentals that I'm keen to bank for geovista such as CRS, planar projection and texture mapping support, but later isosurfaces, isolines, streamplots, winds visualization, mesh warping for ocean bathymetry and surface altitudes, web services tiling etc are all in play :+1:
With regards to the vertical I've not quite thought that far ahead to be honest (geovista is just born, so I'm focusing on a solid core first and building outwards). Nevertheless, what kinda viz are you particularly interested in?
I was mulling over geodesic ribbon trajectory slices through unstructured meshes to show vertical levels in the planar, but I've not ventured too far into this space... but I am motivated by concrete use cases though :wink:
So if you can be more specific and give me some examples this would really help :+1:

Thanks for the speedy response @bjlittle!

Here's a proof-of-concept I'm currently working on for geovista...

Looks awesome! I would love to use this once you're happy with the prototype.

the overriding goal here is for geovista to easily integrate into the existing scientific python ecosystem

I agree that's the way to go. I'm mostly using iris because I mostly use the UM in my research (and now starting to use LFRic).

There are some fundamentals that I'm keen to bank first for geovista

Fair enough. I can try to help with some "good first-time issues"...

Nevertheless, what kinda viz are you particularly interested in?

I can of course just plot some slices of the vertical coordinate, but eventually I would like to create plots with the vertical dimension, i.e. planet's radius, such as vertical cross-sections, isosurfaces, wind vectors. As an example, here's what I made with PyVista a while ago: https://dennissergeev.github.io/exoconvection-apj-2020/

@dennissergeev Awesome, I've come across that visualization before, super cool, congrats!
Okay, I can see what you're aiming for, and that all makes sense, thanks. I'm guessing your Trappist-1e 3D viz could also be projected e.g., say the sphere to Plate Carree, but still have the 3D vertical convection layers on top, thus taking advantage of a 2D planar but viewed in 3D, if you get my meaning :thinking:
I think that you're original 3D viz is perhaps currently possible in ParaView. I know that @tinyendian (Wolfgang Hayek @ NIWA) might be able to comment or point you to what's possible there too - if you're interested?

Thanks @bjlittle!

I'm guessing your Trappist-1e 3D viz could also be projected e.g., say the sphere to Plate Carree,
Yes, certainly. Visualising it both in a planar projection or as a 3D sphere would be great! I guess that's why you're envisaging CRS support - to have an API similar to cartopy?

I think that you're original 3D viz is perhaps currently possible in ParaView.
That would be useful to know, so any tips from Wolfgang would be appreciated.
At the same time, this is not urgent and I'm happy to wait/contribute for geovista to mature enough to support this.

P.S. Great logo by the way!

Hi @dennissergeev and @bjlittle, visualisations such as Trappist-1e (which looks great btw!!) can definitely be done with ParaView, including time-dependence of the model data, spherical projection, moving cameras, interactive web publication, ...
I haven't used PyVista before, but, looking at the examples, it seems to use a similar philosophy as ParaView, providing a simplifying layer on top VTK. ParaView comes with a few perks, such as a powerful GUI, and a client-server mode, which is useful for very large models that require an HPC backend to handle. Its Python scripting capabilities are comprehensive and integrate nicely with the GUI, but the price to pay is that the scripts look somewhat obscure compared to PyVista, the latter seems a bit more Pythonic.
Very happy to help, if you'd like to give ParaView a try (it can read CF-netCDF and LFRic output), or if you have any questions.
Btw, I worked in the exoplanet group in Exeter 10 years ago as a postdoc, great to see the work that you guys are doing there! And say hi to Nathan for me please 🙂.

hi @tinyendian,
Thanks! Yes, the exoplanet group is growing stronger, so expect more cool 3D visualisations of exoplanet simulations :smile:!
I actually used ParaView a little bit in the past, though only as a GUI. Now I prefer using PyVista because of its pythonic API and integration with Jupyter, but in the meantime if I wanted to give ParaView another go and visualise LFRic output, where should I start?

Hi @dennissergeev, the easiest way to start with ParaView is a conda installation of the LFRic reader plugin, which will install the latest ParaView GUI as a dependency,
conda install -c conda-forge lfric_reader

If you have a ParaView build on your system already (along with the required build tools and dependencies), you can also easily build the reader yourself, see the instructions on https://github.com/niwa/lfric_reader.
Note that Jupyter integration was recently added to ParaView, too, https://blog.kitware.com/paraview-jupyter-notebook/, but I haven't tried this out yet.
With regards to Python scripting, I agree that PyVista coding looks a lot nicer and straightforward. ParaView really has its strengths when it comes to interactive visualisation (have a look at, e.g., linked cameras for comparing two models), and handling very large datasets (hundreds of millions of cells) efficiently. Maybe there will be ways to integrate Iris/PyVista and ParaView a bit in the future, e.g., via automatically generated ParaView scripts (ParaView can be fully controlled by Python scripting).
Looking forward to seeing more exoplanet simulations 😍!

Thanks very much @tinyendian! I'll give it a go.

Hey @dennissergeev,
Just wanted to let you know that I want to get my ducks-in-a-row to schedule time for supporting this issue. The first step in this journey will be to extend the capability of the geovista.bridge to ingest mesh data with a vertical dimension.
I'm guessing that you've got a tonne of archived data that you'd be keen for geovista to visualise out-the-box... is it possible for you to share it with me somehow?
Cheers :smile:

Hey @bjlittle!
This is exciting to hear! Happy to help test / develop things, just ping me.
And I'm happy to supply some sample data, of course. Here's an output file from one of my recent simulations:
https://we.tl/t-gt1W6B4mkl

@dennissergeev Starting to play in this space, so just I thought that I'd give you a minor update...
I've been working on a use case with an oceanographer at the Met Office, where they have 50 depth levels (bathymetry) of ORCA ocean model data (on tri-polar curvilinear grid), which has been pre-processed through a canny edge filter to detect potential temperature gradients. Initially, they want to visualise the data as a point cloud, which is an ideal first use case.
I was able to easily extend geovista to create the geo-referenced point cloud, which kinda looks like this:

I've rendered the points with their levels values
Used the cmocean deep colormap, which is super lush
Added a texture map base layer with opacity (to confirm geo-refrencing)
Added 10m Natural Earth coastlines (to confirm geo-refrencing)

https://user-images.githubusercontent.com/2051656/221884113-62c07148-d4c1-4fb9-a4a1-0917cd013ef1.mp4
Next steps are to:

make it easy to reproject the point cloud (say to Plate Carree), which might make interactive interrogation a wee bit more intuitive
extend to support non-polydata, and integrate into the geovista.bridge API

In hindsight, I should have rendered this example with culling=back to make the things slightly less confusing, but this is just a PoC at the moment.
Baby steps.

https://user-images.githubusercontent.com/2051656/221891145-52d14e16-8f88-4c7b-85d7-110b2f9864f7.mp4

https://user-images.githubusercontent.com/2051656/221891409-bfc2ddd4-56ef-4085-a0be-04d4475393dd.mp4

Sorry for my slow response, I was on holiday :)
This looks amazing, many thanks for sharing! Is this functionality available in the latest release? (No rush, just wondering.)
And since you've shown that point cloud rendering is possible, I guess extending this to vectors/arrows to show the flow velocity in 3D should be quite straightforward, right?

Hey @dennissergeev,
Hope you had an awesome holiday.
This functionality will be available in the forthcoming 0.2.0 release.
Rendering point clouds is a nice entry point into this space, so 3D grids and vectors should follow, yeah.
There are a few other things that I also need to tidy-up, so I'm going to release little and often, if I can. But I'll certainly ping you when I make more progress :+1:

Excellent, thank you @bjlittle!

Hi @bjlittle! Great to see the steady pace of geovista releases :smile:
Does the latest release include this functionality or did you move it to the next release?
Cheers!

Hey @dennissergeev,
Lovely to hear from you again, as always. Great question :smile:
Okay, so the 0.2.0 point-cloud support is the first step in that direction, but ultimately it's not what you actually want.
My focus at the moment is banking stable core functionality with the view to presenting a lightning talk at SciPy 2023 in July, where at that point geovista finally steps out from the shadows. I'm really interested to see the initial reaction from the scientific community to geovista. I think it's going to be a wee bit of a watershed moment, which I'm equally nervous and excited about...
Anyways, in terms of what's roughly coming up next and when:

the main deliverable for 0.3.0 will contain support for projecting lines and coastlines, including the ability to add a configurable graticule (i.e., labelled parallels and meridians) to the mesh to aid visual geolocation
0.4.0 will be all about bootstrapping the docs. For me, the docs are the shop window to geovista, so having some decent, quality docs is paramount prior to SciPy.

Both 0.3.0 and 0.4.0 are going to follow on the coattails of 0.2.0 and land prior to SciPy.
If there's still time before SciPy, I'd love to steamline and expose a slicker projection API and also seed patterns for geovista.crs projection classes e.g., address #140
Realistically, post SciPy when the dust settles I'm super keen to finally address this issue.
In my head, that timeline and schedule makes sense... is that okay with you?

Yep, totally okay with me! Good luck at SciPy, I'm confident people will be super excited about geovista - I know my colleagues are!
And do let me know if you want me to test/review anything.

Hey everyone, I just came here to
a) thank you for this amazing package. I just made some videos for a project site visit and they look stunning!
b) add a gigantic +1 to supporting 3D (lon, lat, depth) visuzlization. My usual usecases revolve around isosurfaces. This video was done with pyvista-xarray and my first time for me that 3D visualization of my usual ocean/climate model data 'just worked'. Having this sort of plot (with bathymetry) on a 3D globe would be monumental for my work.
Further out, having a way to call this from pyvista-xarray somehow would be the holy grail for the researchers/students in my project but I understand that the basics need to work first 🤗
If there is anything I could do to help you out here, please let me know. Unfortunately I am not well versed in pyvista (and the underlying stack) yet, but could certainly test drive, provide data samples etc.
Again big thanks for this awesome package.

Amazing videos @jbusecke!

Thanks so much @jbusecke. Your feedback means a lot and your animations are truly lush 🤩
geovista is really just starting on it's journey, and I'm so glad you found us. Sounds like your use case definitely bolsters the demand for volume rendering for sure 👍
After hanging out with @banesullivan at SciPy 2023, we're keen to join the dots between pyvista-xarray and geovista to open the door for the xarray community to easily render and explore their Earth sciences data using pyvista. I agree with you; the potential is huge.
I also had the pleasure of crossing paths with @mgrover1, who similarly wants to render volumes for radar data... so it's inevitable that this is going to happen, which I'm pretty darn excited about too.
Game on.

I would be interested in a sprint on this soon 😄

@jbusecke
It's a great video. Could you post this on the PyVista forum to introduce it to more people? If you can't take the time to do so I will introduce that you created this video and post it.
https://github.com/pyvista/pyvista/discussions/new?category=show-and-tell

@dennissergeev @jbusecke @mgrover1
Quick question ... when we get to the point where we have a proof-of-concept for the volume rendering in a feature branch (I'm going to figure out when I can schedule this work), would you guys be happy to kick the tyres to test/play and feedback?
Thumbs-up if you're in 👍

@jbusecke
It's a great video. Could you post this on the PyVista forum to introduce it to more people? If you can't take the time to do so I will introduce that you created this video and post it.
https://github.com/pyvista/pyvista/discussions/new?category=show-and-tell

Sure thing will do that next week.

Prior to that it would be ideal to get my hands on some representative data that you wanted to render. Nothing high resolution, if possible, just some data that I can quickly render when developing/testing. Cheers 🍻

@bjlittle I am thinking mostly about CMIP6 climate model output (this should be very representative for most climate/ocean model output. If you can run this snippet
from xmip.utils import google_cmip_col
from xmip.preprocessing import combined_preprocessing
col = google_cmip_col()
cat = col.search(
    variable_id='so',
    table_id='Omon',
    source_id='CanESM5',
    experiment_id='historical',
    member_id='r1i1p1f1'
)
ds = cat.to_dataset_dict(preprocess=combined_preprocessing)['CMIP.CCCma.CanESM5.historical.Omon.gn']
ds = ds.isel(time=0).squeeze().drop([co for co in ds.coords if co not in ['lon', 'lat']])
ds.to_netcdf('geovista_cmip_demo.nc')

You could get a ~20 MB sample of 3D ocean salinity. Let me know if this works (requires xMIP) otherwise Ill see how to send you this data.
@tkoyama010 https://github.com/pyvista/pyvista/discussions/4937

This issue is still important.

@all-contributors please add @dennissergeev for ideas

@all-contributors please add @mgrover1 for ideas and promotion

Quick question ... when we get to the point where we have a proof-of-concept for the volume rendering in a feature branch (I'm going to figure out when I can schedule this work), would you guys be happy to kick the tyres to test/play and feedback?

@bjlittle - just found this one - subscribed immediately!
TLDR: once you've got your proof-of-concept done, shout iff you want to extend onwards-and-upwards for some space weather use-cases! Happy to help with some data wrangling & tyre kicking if so - no worries if you've got hands full with use-cases from lower down!

Click for context, and potential good 1st target = WACCM-X
Context
This sort of volume / isosurface rendering could be very interesting for space weather use-cases in Earth's ionosphere, thermosphere and below (where we have more-easily supportable geographic lat/lon coords, as well as more bonkers ones too!). These regions can be highly dynamic, with multi-scale spatiotemporal effects which ~require seeing ~4D representations to understand full picture - risk losing insights if you collapse data straight to 2D or lower.
Geovista's interactivity - ability to move round from dayside to nightside, or look down on the poles - could be super-useful for enabling workflows which start with exploration of the full-fat datasets.

i.e. basically exactly the same points @dennissergeev and Cristina made in lightning talks on Geovista!

There's some very nice videos here illustrating this sort of thing - look at all of those ripples as the solar storm hits on 17 Mar 2015 - the 4D synoptic view here invaluable - a lower-dimensional representation couldn't cut it!

Thermospheric temperature
Ionospheric electron number density - volumetric equivalent of the total electron content in iris examples
More details on what's being plotted in Figure 1 of Palmroth+ 2021

From dim recollection I believe @eelcodoornbos generated these with Blender (?). In any case, using output from NCAR's WACCM-X model.
WACCM-X: a good first target?
Iff this is of interest, WACCM-X might be a good target for dipping geovista's toes in the space weather water (if you've not already?):

it's a state-of-the-art community model, coupling into lower atmosphere (Liu+ 2017)
well-behaved: nice netCDF output, on sane geographic grid, vertical on pressure levels - and data volumes not too big by terrestrial standards, so good for exploration (characteristics in slide 5 of WACCM-X tutorial
so good place to start!
Note NCAR's TIE-GCM another good contender: similar characteristics, and very widely used

Later can see if Geovista's ugrid support might be an easy way around trickier things like geomagnetic coordinates in other models, ...
There's WACCM-X output available from the NASA Community Coordinated Modeling Center (CCMC). E.g. for this "St Patrick's day storm", there's run "WACCMX-Weimer-01_2015-03-TP-01_102523_IT_1", and from there:

Data download
Vis API

Happy to put some effort into giving this a whirl if of interest!

@all-contributors please add @edmundhenley-mo for ideas and userTesting

@edmundhenley-mo Great! :rocket:
Good news! I've finally managed to secure a deployment into a science team to work on this ... it's the only way I'm going to secure the time to do it!
I'll come knocking at your door afterwards for sure! :+1:

Amazing 🤩

This is INCREDIBLE! Great work here @bjlittle 👍

Same dataset but with isosurfaces and an opacity linear transfer function for plume-like rendering ...

The widgets won't be part of geovista, they just make it convenient to quickly alter what and how geometries are being rendered :+1:

Wow this is amazing!!! Isosurfaces are the main thing I'm waiting for in geovista, so thank you so much for working on this!

This looks great @bjlittle. It will help with expert judgment on plume dispersion, engagament and model validation etc. In regards this issue and #16 it would be great to be able to overlay 3D vectors on top of the 3D plume. Is the plan that both issues/PRs should work together?

@mo-benjaminevans Yes, indeed.
Both #15 and #16 completely complement each other. Being able to visualize how winds influence plume behaviour is a critical part of your science. So just to confirm, you will be able to overlay 3D vectors on top of a 3D plume :+1:
You'll be glad to hear that the plan is for both features to be available in the next release of geovista 0.6.0.

This is quite exciting.
I purposely omitted 3d from my "UGRID conformance rules" proposal   (now included in published conventions here) because I couldn't see how to make the existing statements hang together.
It has even been proposed that we might pause the whole 3D thing for UGRID since it had so far seen little interest,
But perhaps practical efforts like this can show the way to making it a real thing.


qualify when experimenting with inference is safe

Trying to remove annotations and seeing what gets inferred is a great way to understand what the type system is thinking--if noImplicitAny is on.  Consider xyt versus xya in the following:
type t = "T"
function xyt(p: {x: {y: t}}[]) {
  return p[0].x.y
}
function xya(p) {
  return p[0].x.y
}
const res = xyt([{x: {y: "T"}}]).length
const bad = xya(42).length
const z = res + bad

A programmer exploring

how few [annotations] you need for TypeScript to fully understand what's going on

might well change the signature from xyt to xya. With noImplicitAny off, this doesn't mean TypeScript understands what's going on; it means it doesn't, and silently accepted it anyway.
The conclusions one might draw about the power of inference are often invalid when noImplicitAny is off, as a result, and someone who wants to experiment in this way should be warned that such experiments only really give good results when it is on.

Thanks for sending a PR, but, I don't think that this is an improvement. The default options one gets after a tsc --init will be strict, and so everyone should reasonably have this enabled already.


bug: Make kcp-docs-image does not works on linux/arm64

Describe the bug
I'm trying to validate some docs changes locally, and make kcp-docs-image fails with
 => ERROR [internal] load metadata for docker.io/squidfunk/mkdocs-material:latest

Digging into this a little bit it seems there is no linux/arm64 image available:
docker pull docker.io/squidfunk/mkdocs-material:latest
latest: Pulling from squidfunk/mkdocs-material
no matching manifest for linux/arm64/v8 in the manifest list entries

Steps To Reproduce
Try to run  make kcp-docs-image on a linux/arm64 machine
Expected Behaviour
Tooling for the docs to work on linux/arm64.
Additional Context
I can help fix this, I'm only a little bit short of time ATM so any pointers will be helpful.
Also, if someone wants to take this before me, feel free to do it

It's probably easier to switch to a venv-based setup instead of docker. Let's maybe explore that?

I have a fix almost ready


Created API tests for /phys_locations

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/1385/
Test PASSed.


Update alfred to 2.8.3_435

Thank you for the contribution. It was merged directly as 25ed13a5c1c7500c4b8c21972721b3fbd9a25ec2 to keep commit history cleaner. Your contribution is still credited to you.


Missing data (null) in Time Series Table when no filter applied | Not a data issue from our side

Hi SuperSet community.
We've been encountering an UI issue with SuperSet when plotting Time Series table. Some datapoints are missing from the graphs and showing ''nulls''. However, the weird thing is, when filtering the data in the dashboard to display only the rows where we witness the issue, those data points appear correctly.
Expected results
We except the time series to be plotted without these missing data points (nulls) as there are no nulls in the data.
Actual results
Some random nulls appear in the chart though there are data to display.
When filtering the data, the bug disappears.
Screenshots
Without filtering :

After filtering to only the rows displayed above:

How to reproduce the bug

Create Time Series table.
Add the time series table to a dashboard.
Filter down on the column used to group by in the time series table.
Compare

Environment
The table used for the time series table is (Rows 166,645 | Cols 42) queried using Presto SQL Engine.
We are aggregating on a VARCHAR column and the data plotted is of type BIGINT.

superset version: 0.37.2
python version: 3.6.12

Additional context
The dashboard is very big (close to the size limit).

thanks for reporting, we are looking into it!
@eugeniamz do you have this issue? im not able to reproduce this issue with our sample datasets.

This chart has a limit of 5000 rows, check that it did not reach the limit

@junlincc  the row limit seems to be fixed, we should allow users to change this limit as in other charts. is there a reason why is limited to 5K?

This chart has a limit of 5000 rows, check that it did not reach the limit

@junlincc  the row limit seems to be fixed, we should allow users to change this limit as in other charts. is there a reason why is limited to 5K?

Thanks for the answer @eugeniamz ! This is exactly our issue. I did not acknowledge the limit was so low but this is exactly the reason why some datapoints are missing in the charts as one row is one daily point on a chart. Any idea of a follow up action to increase that limit, or make it editable?
Thanks all.

fixed by ☝


Redis(?) cache memory leak

I'm building a queue system for Yii2 with beanstalkd. I've got a console controller to run in a loop checking for new jobs.
    while ($run) {
            $job = $queue->listen($tubeName);

            if (null !== $job) {
                try {
                    $job->handle();
                } catch (Exception $e) {
                    $this->stderr($e->getMessage());
                    Yii::error($e->getMessage(), 'queue.' . $tubeName);
                    $job->release();
                }
            }

            if ($this->isStopped() || $this->shouldRestart()) {
                $run = false;
            }
        }

If I run it inside a loop I will constantly get increased memory usage (without handling any jobs). After cutting parts of the loop I found out that
$this-isStopped() and $this->shouldRestart()

Is causing it. The methods simply check for a key to be present inside cache (redis)
if (Yii::$app->cache->get(self::RESTART_CACHE_KEY)) {
            $this->stdout("Restarting worker");
            return true;
        }

        return false;

So just checking cache is taking more and more memory?
Yii 2.0.7

Will close for further investigation until I find the real reason for the leak.

Reason for the leak is using 'debug' module enabled in console application.
Is there a reason for such behavior?

do you have the debug toolbar enabled or just YII_DEBUG=true?

Module, not just YII_DEBUG=true

It could be logs collection w/o flushing.

Could be, if the flushing is happening at the end of console request. But if the request does not end (loop) it just grows and grows.

@djeux could you do manual flushing here and there and report if that helped?

Reducing flushInterval or manually flushing doesn't help. Although Log::flush() is getting called a lot.
Well, just have to remember to disable debug module if using infinite console commands.

Hokay here's the walkthrough.
\yii\debug\Module adds his \yii\debug\LogTarget to the log->targets.
\yii\debug\LogTarget::collect() is constantly called when the "flushInterval" is reached, but since $final is always FALSE (since the request doesn't end) all it does is just append the messages to \yii\debug\LogTarget::$messages (line 116), which grows and grows the longer the command is running and is never flushing.

That's expected behavior. Needs to be documented somewhere near http://www.yiiframework.com/doc-2.0/guide-runtime-logging.html#flushing-exporting

Yes, doesn't look like a bug. Just needs clarification for cases when console applications are expected to run in loops.

yeah, debug toolbar is not built to flush constantly like e.g. file logger. it will only write data once request is finished.

@samdark sorry, did not understand your message, so you think this should just have a warning in the docs, right?

Shouldn't simply adding
if (Application instanceof \yii\console\Application && count($this->message) > $this->flushInterval) {
    $this-export();
}

help??


Add swift package add-target-dependency command to edit the manifest

Explanation: Building on SE-0301, add a new command swift package add-target-dependency to edit the package manifest and add a new dependency to a given target.
Original PR: https://github.com/apple/swift-package-manager/pull/7594
Risk: Low. New, very simple code path to edit the package manifest in a narrow way.
Reviewed by: @MaxDesiatov

@swift-ci please test


Add instructions to use tfenv

Ticket
Resolves #86
Changes

Add instructions to use tfenv to manage Terraform versions

Context for reviewers
Different projects might use different versions of Terraform, so it's useful to have a terraform version manager to help engineers who might move from project to project.
Testing
preview of markdown

@shawnvanderjagt btw how do i check which version of terraform we should be using. i think i arbitrarily picked 1.2.1 but not sure which one we use in template-infra

@lorenyu it will be under the terraform root (account or env) required_version = "~>1.2.0" ~ means pessimistic allow only right most version differences. Version Constraint Syntax


Hey, saw you project and it's cool. Maybe we can work together? :)

This are the two changes I've made so far:

Rename vanillaHelpers.hasClass to vanillaHelpers.hasCls to bring it in line with the other methods like .addCls and .removeCls

Alias vanillaHelpers.hasClass to vanillaHelpers.hasCls for backwards compatibility. Maybe a deprecation warning or something like that should be added?

If you're interested, I have a couple more suggestions.
Sincerely,
Hendrikto

Hey Hendrikto, Thank you for your interest, sure i'll be glad! :)


Ask Google to implement this feature in Messages?

This is first a question for JBerkel to see if s/he has any objections, but perhaps Google could be lobbied to just include this feature in Messages or some other Android app themselves? This is completely not a criticism of JBerkel but I know from working on projects like this that sometimes you lose interest in supporting older projects or have others with higher priority and would not mind someone else taking over.
On the slight chance that Google could get over the typical "not invented here" mentality and recognize the value of this feature for all users would it be OK to suggest this to Google in feedback or other channels? This would seem to be a great way to resolve the security issues.

Since this is being actively updated again it can be closed. Thanks!


cursor: not-allowed isn't working on disabled buttons

Sorry for open another issue for a already closed subject, but I'm not pretty sure if it's a expected behavior.
At the newest bootstrap library, we can find this rule:
"
.btn.disabled, .btn[disabled], fieldset[disabled] .btn {
pointer-events: none;
cursor: not-allowed;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
opacity: .65;
}
"
So I assume that bootstrap tried to implement the cursor: not-allowed for disabled buttons, or input's.
I have created two jsfiddles. The only diference between both, is that one has the bootstrap-min.css imported and the other don't.
We can see that when I don't import the bootstrap library, everything works fine and when I import, it doesn't work anymore.
jsfiddle with bootstrap imported: https://jsfiddle.net/3sq410wk/
jsfiddle without bootstap css: https://jsfiddle.net/f2t9ahqe/

Hi @ccriativo!
You appear to have posted a live example (https://fiddle.jshell.net/3sq410wk/show/light/), which is always a good first step. However, according to the HTML5 validator, your example has some validation errors, which might potentially be causing your issue:

line 36, column 78: Attribute text not allowed on element input at this point.
line 37, column 89: Attribute text not allowed on element input at this point.

You'll need to fix these errors and post a revised example before we can proceed further.
Thanks!
(Please note that this is a fully automated comment.)

Hi @ccriativo!
You appear to have posted a live example (https://fiddle.jshell.net/f2t9ahqe/show/light/), which is always a good first step. However, according to the HTML5 validator, your example has some validation errors, which might potentially be causing your issue:

line 32, column 78: Attribute text not allowed on element input at this point.
line 33, column 89: Attribute text not allowed on element input at this point.

You'll need to fix these errors and post a revised example before we can proceed further.
Thanks!
(Please note that this is a fully automated comment.)

Sorry about that... it was .Net addiction. =)
With bootstrap: https://jsfiddle.net/3sq410wk/1/
Without bootstrap: https://jsfiddle.net/f2t9ahqe/1/

Confirming that the cursor:not-allowed isn't showing correctly. It seems that the preceding pointer-events:none is to blame...once that is removed, the cursor changes correctly (however, we have pointer-events:none as a way to suppress pointer-based activation, in situations where .disabled has been used). /cc @cvrebert

Yes, the pointer-events it's breaking the consistency. I'ts not the case to remove the cursor:not-allowed then?
Some people strange that in same form elements we have different behaviors...

X-Ref: #15235

For what it's worth, I ended up having to write this to make this work:
button:disabled {
  cursor: not-allowed;
  pointer-events: all !important;
}

Came across this thread and thought I'd post my workaround, which I know will not work in all scenarios. For my usage, the a tag was wrapped in an li, and the following allows the usage of both CSS rules at play.

  My Link

li.disabled {
  cursor: not-allowed;
}
li.disabled a {
  pointer-events: none;
}

In my brief testing, the pre-existing symptoms persist if the rules are swapped (pointer-events on the parent element).

It may be useful to enable the pointer-events on .disabled only, like:
.btn.disabled{pointer-events:none;}
.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;}

@aborchew thanks, this worked for me.

The way I solved it for a custom styled material button was to include the asterisk *
&.mat-button-toggle-disabled {
cursor: not-allowed;
color: $disabled-btn-color;
  * {
    cursor: not-allowed;
    color: $disabled-btn-color;
  }
}

.pointer-events-none {
    pointer-events: none;
}

.wrapper {
    cursor: not-allowed;
}

<button class="pointer-events-none">Some Text</button>

Reference:
https://stackoverflow.com/questions/46665625/how-to-combine-cursor-not-allowed-and-pointer-events-none

.pointer-events-none {
    pointer-events: none;
}

.wrapper {
    cursor: not-allowed;
}

<button class="pointer-events-none">Some Text</button>

Reference:
#https://stackoverflow.com/questions/46665625/how-to-combine-cursor-not-allowed-and-pointer-events-none


SORT by DATE not available in runtime version of vendelligence webapp

Vendelligence uses sort-by-relevance option from google api by default in the system configuration. My own process is I want DATE in addition to RELEVANCE exactly as I do at design-time when I can test new additions on the fly in the control panel UI and verify the accuracy as a human user, not just in an automated test.
This requires updates to the HTML Thymeleaf template fragments to make it reusable across views and an update to the Javascript / Search Services within Vendelligence itself.

FIXED
Thymeleaf view now provides the SORT by DATE mode and SORT by RELEVANCE modelled on the out-of-the-box js from google hosted version
It will maintain context once it is clicked so returns to ALL results first and whatever FILTER refinement is used, it will keep DATE active if using HELP LIBRARY or ENGINEERING BLOGS etc.
Tested on existing vendors and osps and new osps added in cw49
Deployed to private edition and to community edition on github and on demo version on aws

NOTE: Need to consider passing an object rather than explicit parameters the internal searchservice is expecting. I did not need to rewrite any code in any of the internal backend webserver services here and we simply adapted the existing searchservice interface/business logic to handle an extra optional constant and the js client passes it or not using simple boolean each time. The JS client could still be cleaner on the internal searchservice calls, however. What we don't want is a crowded argument list to appear as otherwise the services need to be split, so they remain small and do a single task.


heroku prod settings file

Same as dev, except:

adjust site url
adjust db connection

Now using LTS for prod


add metric for largest segment size

Description

This adds a metric for the largest segment size on disk by table

it only publishes the metric if there is at least 1 segment
the gauge is not reset if all segments are deleted for example. this should be very rare
this includes the entire segment directory including indices, not just the columns.psf file

I tested by running the batch quickstart with a breakpoint and asserting the value at debug time equalled what I saw on disk
Upgrade Notes
Does this PR prevent a zero down-time upgrade? (Assume upgrade order: Controller, Broker, Server, Minion)

[ ] Yes (Please label as backward-incompat, and complete the section below on Release Notes)

Does this PR fix a zero-downtime upgrade introduced earlier?

[ ] Yes (Please label this as backward-incompat, and complete the section below on Release Notes)

Does this PR otherwise need attention when creating release notes? Things to consider:

New configuration options
Deprecation of configurations
Signature changes to public methods/interfaces
New plugins added or old plugins removed

[ ] Yes (Please label this PR as release-notes and complete the section on Release Notes)

Release Notes

This adds a metric for the largest segment size on disk in a server. You can use this to track the growth of you largest segments.

Documentation

Codecov Report

Merging #8445 (6c41a24) into master (e2053f6) will decrease coverage by 1.11%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #8445      +/-   ##
============================================
- Coverage     70.73%   69.61%   -1.12%
  Complexity     4282     4282
============================================
  Files          1662     1662
  Lines         87227    87238      +11
  Branches      13205    13205
============================================
- Hits          61703    60735     -968
- Misses        21238    22233     +995
+ Partials       4286     4270      -16

Flag
Coverage Δ

integration1
27.13% <100.00%> (-0.11%)
:arrow_down:

integration2
?

unittests1
67.04% <0.00%> (-0.01%)
:arrow_down:

unittests2
14.14% <90.90%> (+<0.01%)
:arrow_up:

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

Impacted Files
Coverage Δ

...g/apache/pinot/common/metrics/ControllerGauge.java
97.61% <100.00%> (+0.05%)
:arrow_up:

.../apache/pinot/controller/util/TableSizeReader.java
99.13% <100.00%> (+0.08%)
:arrow_up:

...apache/pinot/common/helix/ExtraInstanceConfig.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...t/core/plan/StreamingInstanceResponsePlanNode.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ore/operator/streaming/StreamingResponseUtils.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ager/realtime/PeerSchemeSplitSegmentCommitter.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...he/pinot/core/plan/StreamingSelectionPlanNode.java
0.00% <0.00%> (-88.89%)
:arrow_down:

...ator/streaming/StreamingSelectionOnlyOperator.java
0.00% <0.00%> (-87.81%)
:arrow_down:

...re/query/reduce/SelectionOnlyStreamingReducer.java
0.00% <0.00%> (-85.72%)
:arrow_down:

...pache/pinot/common/utils/grpc/GrpcQueryClient.java
0.00% <0.00%> (-80.86%)
:arrow_down:

... and 93 more

Continue to review full report at Codecov.

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

Can you please add the prometheus config and some tests?  You may refer to https://github.com/apache/pinot/pull/8358 which has very similar changes

Added both. It tests for realtime, offline, and all segments missing. thank you for the pointer PR


Add secure grpc connection

Is your feature request related to a problem? Please describe.
In order to allow pyzeebe to connect to all kinds of zeebe clusters (like in camunda cloud), we need to provide the ability to connect with a secure grpc channel.
Describe the solution you'd like
Add secure options to ’ZeebeAdapter’. Requires further research
Describe alternatives you've considered
Additional context

Two types of authorization:

OAuth
Credentials


Build is no longer failing

Moved parseRange and length functions towards top of the file so jshint will pass.
Check passive parameter at the beginning of the requestRange function to stop the http request from being sent if there is a passive parameter is set to 'true'.  This allows the "passive mode prevents duplicate loading" test to pass.

I really appreciate this PR, thank you! I'll examine it in more detail and merge tomorrow or the next day. I may want to release a new version too since this will fix the bug in passive mode.

Yeah this looks great, merging! 😎

Great, I'll be sending another one soon.  I found another (small) bug when
trying to use a scope variable for the url.
Thanks!
Todd
On Wed, Apr 13, 2016, 8:33 PM Joe Nelson<EMAIL_ADDRESS>wrote:

Merged #93 https://github.com/begriffs/angular-paginate-anything/pull/93
.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/begriffs/angular-paginate-anything/pull/93#event-626619820

OK, after merging the next one I'll bump the patch version. Sound good?

It looks like you got those changes already, as well.  Bump away!
Thanks.
On Wed, Apr 13, 2016, 8:36 PM Joe Nelson<EMAIL_ADDRESS>wrote:

OK, after merging the next one I'll bump the patch version. Sound good?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/begriffs/angular-paginate-anything/pull/93#issuecomment-209701391


yarn run gulp vscode-darwin-arm64 fails when run in the debug terminal

open debug terminal
run  yarn run gulp vscode-darwin-arm64 (you might wanna disable mangling in build/gulpfile.compile.js#L19)
the task fails (see error below)
the task succeeds in a normal terminal

[17:19:10] Starting compile-extension-media-build ...
[17:19:10] Finished esbuilding extension media /Users/jrieken/Code/vscode/extensions/ipynb/esbuild.js with 0 errors.
[17:19:10] 'vscode-darwin-arm64' errored after 34 min
[17:19:10] Error: Promise rejected without Error
    at onError (/Users/jrieken/Code/vscode/node_modules/async-done/index.js:49:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Waiting for the debugger to disconnect...
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Waiting for the debugger to disconnect...

https://github.com/microsoft/vscode/blob/6379f57125e02778414bec3393f69a70f7843f80/build/lib/extensions.ts#L566-L568
An attached debugger will cause node to write some metadata to stderr

I think that block can just be removed safely since execFile with provide an error if the subprocess has a !=0 exit code


g stands for goat

@nicolasnoble

This was a test for some other stuff and intended as a joke, but so be it.

I laughed so it worked.


no bedtime reminder notification

Describe the bug
Really appreciate the bedtime and wake up feature! Unfortunately I don't receive a bedtime notification.
To Reproduce

enable bedtime reminder notification
no reminder rings

Expected behavior
Reminder should ring as set
App version
2.4
Device (please complete the following information):

Model: Google Pixel 5
OS: GrapheneOS (Android 14)
Additional context
battery optimisation disabled ofc

You have to enable bedtime alarm and wakeup alarm.

Thanks for your swift answer!
Yep I've done that already. The wake-up setting creates an alarm whereas the bedtime one doesn't if that helps.

Actually just got this:
type: crash
osVersion: google/redfin/redfin:14/UP1A.231105.001.B2/2024060500:user/release-keys
package: com.best.deskclock:2005
process: com.best.deskclock
processUptime: 198 + 342 ms
installer: com.machiav3lli.fdroid

java.lang.RuntimeException: Unable to start service com.best.deskclock.bedtime.BedtimeService@1f84ed4 with Intent { act=com.best.deskclock.action.LAUNCH_BEDTIME cmp=com.best.deskclock/.bedtime.BedtimeService }: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.best.deskclock.data.Weekdays.isBitOn(int)' on a null object reference
	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5079)
	at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2397)
	at android.os.Handler.dispatchMessage(Handler.java:107)
	at android.os.Looper.loopOnce(Looper.java:232)
	at android.os.Looper.loop(Looper.java:317)
	at android.app.ActivityThread.main(ActivityThread.java:8532)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
	at com.android.internal.os.ExecInit.main(ExecInit.java:50)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.best.deskclock.data.Weekdays.isBitOn(int)' on a null object reference
	at com.best.deskclock.bedtime.BedtimeService.getNextBedtime(BedtimeService.java:112)
	at com.best.deskclock.bedtime.BedtimeService.scheduleBedtimeMode(BedtimeService.java:292)
	at com.best.deskclock.bedtime.BedtimeService.startBedtimeMode(BedtimeService.java:268)
	at com.best.deskclock.bedtime.BedtimeService.onStartCommand(BedtimeService.java:69)
	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5061)
	... 11 more

I guess it's because no day of the week is checked?

Nope, Monday to Thursday and Sunday checked

@j-lakeman Could you please tell me step by step what you did to make this bug appear?
I can't reproduce this bug on my devices.

The issue here is starting the bedtime mode when the DataSaver hasn't regained it's data. so basically not touching the app when bedtime launches or it's remind notification. there weren't any other errors because I gave them defauflt values in DataSaver.
@BlackyHawky To fix this issue I would start adding the linesaver.restore(); as line 62 in BedtimeService. At the moment I can't test this but that line should fix this issue.

Since I don't know how to reproduce this problem, I trust you.
Do the tests when you can and let me know. 😉

sorry for the late reply (I totally forgot about this issue) just done the tests this commit should fix the issue.

@Nilsu11
Thank you very much.
I'll publish the new commit as soon as I have time with your modification 😉


UTP API integration

r? @chandraprakash
(maidsafe_highfive has picked a reviewer for you, use r? to override)

Cheers Niall !!


Change regex in extractLoader.js

The regex used in the loader is a bit overzealous and prevents inclusion of scripts in the same manner allowed for images and styles. This should limit it to only the applicable file that needs to be executed, though I would like to change the conditional to something that indicates more absolutely that css-loader is being used.

Coverage remained the same at 97.917% when pulling 20930c1cd23d7f26ed2c9a8cc731fa808c5d8319 on heptahedron:master into 75ed1fa9d20fd055f2ee60ae750e4ecf8557474e on peerigon:master.

I need this patch, too.
I changed the reg to /node_modules.*?\.js$/i locally.

can some merge this ?


Wesib

I have created a frontend implementation using Wesib: https://github.com/wesib/realworld-app
Demo is here: https://wesib.github.io/realworld-app/
Wesib utilizes web components.
Wesib is in beta stage now. RealWorld implementation is a good practical exercise of the framework usage, and lead to several improvements to it.

Hello, we moved the addition of new implementations to this website : https://codebase.show/projects/realworld
Please submit your implementation there.


SPL Program Metadata

This program allows for metadata to be associated with programs that can help to ensure the authenticity of the program, provide an IDL (Interface Description Language) specification describing how the program is used, provide the method of data serialization employed by a program, and other important details related to a program (e.g. GitHub repository, website, assets etc.).

Yes.   I think we could assume the presence of https://github.com/solana-labs/solana-program-library/pull/1600 as we build this out too, where program metadata is located via the naming service

@mvines I'm working on the JavaScript / docs portion first half of the week, but the Rust side could use a look when you have some time.

Hey @oJshua can you clean up the files in this PR? There's a lot that should be gitignore'd

Thanks @jstarry! This is helpful feedback. I will catch up on how non-upgradeable programs work real quick.
Just to verify my understanding is correct, a program wanting to use the program metadata program would invoke the metadata program with its special PDA. i.e. the program might implement a SetProgramMetadata instruction that makes the call to program metadata, signing with the pda?

Just to verify my understanding is correct, a program wanting to use the program metadata program would invoke the metadata program with its special PDA. i.e. the program might implement a SetProgramMetadata instruction that makes the call to program metadata, signing with the pda?

Yes, exactly. Maybe a "special" PDA isn't required, not too sure yet. We could also add a feature to the runtime which allows a program like the metadata program to know which program invoked it.

We could also add a feature to the runtime which allows a program like the metadata program to know which program invoked it.

I like this idea. I'll finish cleaning this up a little bit and we can discuss further.


Problem occurred when using web socket and loosing internet

When listening telemetries and attributes update via the WebSocket. If we loose internet, the following exception happens and can't be managed:
#0      _NativeSocket.startConnect (dart:io-patch/socket_patch.dart:719:35)
#1      _RawSocket.startConnect (dart:io-patch/socket_patch.dart:1877:26)
#2      RawSocket.startConnect (dart:io-patch/socket_patch.dart:27:23)
#3      RawSecureSocket.startConnect (dart:io/secure_socket.dart:297:22)
#4      SecureSocket.startConnect (dart:io/secure_socket.dart:77:28)
#5      _ConnectionTarget.connect (dart:_http/http_impl.dart:2482:26)
#6      _HttpClient._getConnection.connect (dart:_http/http_impl.dart:2924:12)
#7      _HttpClient._getConnection (dart:_http/http_impl.dart:2929:12)
#8      _HttpClient._openUrl (dart:_http/http_impl.dart:2784:12)
#9      _HttpClient.openUrl (dart:_http/http_impl.dart:2622:7)
#10     _WebSocketImpl.connect (dart:_http/websocket_impl.dart:1021:42)
#11     WebSocket.connect (dart:_http/websocket.dart:320:22)
#12     new IOWebSocketChannel.connect (package:web_socket_channel/io.dart:81:28)
#13     connect (package:web_socket_channel/src/_connect_io.dart:15:24)
#14     new WebSocketChannel.connect (package:web_socket_channel/src/channel.dart:115:16)
#15     TelemetryWebsocketService._openSocket (package:thingsboard_client/src/service/telemetry_websocket_service.dart:204:38)
#16     TelemetryWebsocketService._tryOpenSocket (package:thingsboard_client/src/service/telemetry_websocket_service.dart:184:11)
#17     TelemetryWebsocketService._onClose.<anonymous closure> (package:thingsboard_client/src/service/telemetry_websocket_service.dart:292:61)
#18     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
#19     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
#20     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
#21     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12)

The problem seems to come from the lib you use: WebSocketChannel, as you can see here: https://github.com/dart-lang/web_socket_channel/issues/268
The solution suggested is the following one: https://github.com/flutter/website/issues/8765#issuecomment-1576470328

Fixed in ver. 1.0.8. Commit de8aff622af141494f3f8ff860e233ed4f532f56


teoria-chord-progression

https://github.com/JasonStorey/teoria-chord-progression

Fixed by 3a39832


Add git.add({ cwd: '/cwd/path' }) option to ReadMe

I could not find this option in the docs but it seems to be working.

should have been there... thanks!


VCF handling for insertions SVs is incorrect

For insertions, (<INS> in the ALT column) endpos should be the same as startpos but from the code it appears that endpos = startpos + svlen which is incorrect. The line in point is https://github.com/arq5x/bedtools2/blob/2f90e6a76e87f4e7972b97cbfae77a096a1e20c2/src/utils/FileRecordTools/Records/VcfRecord.cpp#L25

Thanks very much for reporting this, good catch. @nkindlon is having a look today.

Yeah, definitely a good catch, thanks. I changed it to treat insertions like zero length records. Added a unit test for this. Pull request is #224.


:bug: Upgrading on RPi is making the agent panic

This has been tested on master 383ed52f4296384580b2a836e7bb50b4e18211f6 for openSUSE and Alpine.
When trying to upgrade via kairos-agent upgrade --image some-image:latest there is a nil pointer error that makes the agent panic

Originally posted by @mauromorales in https://github.com/kairos-io/kairos/issues/1066#issuecomment-1625446141

This is the output on debug mode (it was extracted from images, so format is missing and some characters also got lost. I can upload the images if you prefere)
image flag is deprecated, please use
-source
Upgrading to source:
'oci: quay. io/kairos/alpine-arm-rpi:v2.2.1°
WARMING: jsonschema:
[L36m INFOL [Om [2023-07-03T14:11:382] kairos-agent version U2.1.9
does not validate with file:///home/kairos/schema. jsont/required: missing properties: 'users'
[[37mDEBU[ [Om [2023-07-0?T14:11:3821 Full config loaded: &U1. RunConfig Debug: true,
Strict: false,
Reboot: false,
Poweroff: false,
CloudInitPaths: [string
"/run/initramfs/cos-state"
3,
EjectCD: false,
Config: u1.Config‹
Logger: &u1. logrusHrappert // pO
Logger: &logrus.Loggert
Out: &os .Filet, Hooks: logrus. LevelHooks?3, Formatter: &logrus. TextFormatter ForceColors: true,
DisableColors: false,
ForceQuote: false,
DisableQuote: false,
EnvironmentOverrideColors: false,
DisableTimestamp: false,
FullTimestamp: true, TimestampFormat:
DisableSorting: false,
SortingFunc:, DisableLevelTruncation: false,
PadLevelText: false,
QuoteEmptyFields: false,
FieldMap: logrus.FieldMap(nil), CallerPrettyfier:
3,
ReportCaller: false,
Level: 5,
Exitfunc: os.Exit,
BufferPool: nil, 3.
3,
Is: Bufs.osist?, / pl
Mounter: &mount Mounter), Runner: @u1. RealRunnert // p?
Logger: po,
3,
Syscall: 81.RealSyscal10),
Cloud InitRunner: &cloudinit.YipCloud InitRunner O,
ImageExtractor: U1,OCIImageExtractor), Client: &http. Client (3, Platform: &u1.Platform
OS:
"linux"
Arch:
"arm64"
GolangArch: "arm64"
3,
Cosign: false, CosignPubKey:
Repos: [101.Repository, Arch:
"arm64",
SquashFsCompressionConfig: LIstring‹
"-comp
"gzip",
SquashFsNoCompression: false,
[[37mDEBUT [Om [2023-07-07714:11:3821 Full config: &U1.RunConfig‹
Debug: true,
Strict: false,
Reboot: false,
Poweroff: false,
CloudInitPaths: [Istring(
"/run/initramfs/cos-state"
子.
EjectCD: false,
Config: u1. Config
Logger: &u1. logrushrapper€ // po
Logger: &logrus. Logger Out: &os.Filed),
Hooks: logrus. LevelHooks?3,
Formatter: &logrus. TextFormatter{
ForceColors: true,
DisableColors: false,
ForceQuote: false,
DisableQuote: false,
EnvironmentDuerrideColors: false,
DisableTimestamp: false,
FullTimestamp: true, TimestampFormat:
DisableSorting: false, SortingFunc:
DisableLevelTruncation: false,
PadLevelText: false,
QuoteEmptyFields: false,
FieldMap: logrus.FieldMap(nil), CallerPrettyfier:
3.

Repos: [lu1. Repository), Arch:
"arm64",
SquashIsCompressionConfig: [Istring(
"- COnF
"gzip
3,
SquashFsNoCompress ion: false,
[33nUARN[ LOm [2023-07-07T14:11:3821 failed reading installation state: open /run/initranfs/cos-state/state.yanl: no such file or directory
[E37mDEBUOLOm [2023-07-07T14:11:3821 Loaded upgrade UpgradeSpec: &u1 .UpgradeSpect
RecoveryUpgrade: false,
Active: u1. Image
File:
"run/initramfs/cos-state/cOS/transition. ing",
Label: "COS_ACTIVE",
Size: 3000,
FS: "ext2"
Source: &u1. ImageSource 03,
MountPoint: " run/cos/transition", LoopDevice:
Recovery: u1. Image File:
Label:
Size: 3000, FS:
Source: nil,
Mount Point:
LoopDevice:
3.
GrubDefEntry: "Kairos", Passive: U1. Image File:
"run/initramfs/cos-state/cOS/passive. ing",
Label: "COS_PASSIVE",
Size: 0,
FS: "ext2",
Source: &u1. ImageSource (), MountPoint:
LoopDeuice:
Partitions: U1.ElementalPartitions€
BIOS: nil,
EFI: &u1.Partition
Name: "mncbIk0p1"
FilesystemLabel:
"COS_GRUF"
Size: 96,
FS: "Ufat" Flags: nil,
MountPoint:"* Path: "/deu/mncbikOpl", Disk:
"dev/onchik0*
DEM: nil,
Recovery: nil,
State: &u1.Partition
Name: "mmcbIkOp?"
Filesystenlabel? "COS STATE",
Size: 6200, FS:
"ext4"
Flags: nil,
MountPoint:"/run/initramfs/cos-state", Path:
"/dev/mmcb1k0p2*
Disk: "/dev/mmcbiko
Persistent: &u1.Partition
Name: "mmcbIk0p?" FilesustemLabel:
"COS PERSISTENT"
Size: 64, FS:
"ext4"
Flags: nil, MountPoint:
Path:
"run/cos/persistent"
"/dev/mnch1k0p4
Disk:
"/dev/mmcbiko**
State: nil
[[37mDEBUE COm [2023-07-07T14:11:3821 Mounting partition COS_STATE
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGU: segmentation violation code=0x1 addr=0x10 pc-0x896ae41
gorout ine 1 [running]:
github.com/kairos-io/kairos/u2/pkg/elemental.Elemental.MountPartition((0x400053935873, Ox0, (0x400050e750, 0x1, 0x13)
/go/src/github.com/kairos-jo/kairos-agent/pkg/elemental/elemental.go:179+0›44
github.com/kairos-io/kairos/U2/pkg/elemental.Elemental.MountRUPartition((0x0?3,0x0)
/go/src/github.com/kairos-io/kairos-agent/pkg/elemental/elemental.go:167+0x1e8
github.com/kairos-io/kairos/v2./pkg/action.(*/pgradeAction).Run(0x400050e660)
/go/src/github.com/kairos-io/kairos-agent/pkg/action/upgrade.go:144+0x3ac
githab.com/kairos-io/kairos/u2/internal/agent.Upgrade(fOx0, 0x07, (0×40005b0cf0, 0x287, 0x0, 0x1, 0x0, (0x55c4300, 0x3, 0x37,
/go/src/github.com/kairos-io/kairos-agent/internal/agent/upgrade.go:132+0x5cc
main.glob.func3(0x40003abb00)
/yo/src/github.com/kairos-io/kairos-agent/main.go:138+0x1d8
github.com/urfave/cli/u2.(«Command).Run(0x55cd9c0,0x40003abb00,(0x400050c:330,0x3,0x33)
/gorpky/nod/github.com/urfave/cli/u2@u2.25.7/command.go:274+0x73c
github.com/urfave/cli/v2.(*Conmand).Run(0x400011a840,0x40003ab880,(0x4000068000,0x5,0x57)
/go/pky/mod/github.com/urfave/cli/v2@v2.25.7/command.go:267+0x948
github.com/urfave/cli/u2. (sApp).RunContext(0x40002de3c0, (0x44744507, 0x40000a60007, (0x4000068000, 0x5, 0x53)
/gorpkg/mod/github.com/urfave/cli/uz@u2.25.7/app.go:332+0x568
github.com/urfave/cli/u2. (aApp).Run(...)
/gorpkg/mod/github.com/urfave/cli/uz@u2.25.7/app.go:309
main.main()
/go/src/github.com/kairos-jo/kairos-agent/main.go:661+0×444

Same issue with interactive upgrade and for the manual upgrade I also tried using the specific version label instead of latest. All result in the same error

@mauromorales is it possible to get a decent log with proper entries? maybe you can redirect all output to a file and scp it?


Company Page - when create company it is not showing in top

Describe the bug
https://www.berrycast.com/conversations/52bd0e68-6d62-53c6-b6ef-036ae9f24cba

https://www.berrycast.com/conversations/b351083e-bc4c-56e3-a388-15900cc6b5ec

@mitulpanch what is default order ?


added further sounds

I did it again... added sounds to the soundboard:

the legendary fake Schnabel sound
several Sonneborn takes
Ms. Germanistik
Mr. Doppel-Wumms

Danke 👍😆


qesteidutil: Fixes build from Qt upgrade.

Motivation for this change
Plowing through #45960 failures.
This is (with at least another failure) fallout from Qt 5.10 -> 5.11 from June.
The patch does not strictly address the issue, but has been judged (by me) to be fine; the actual intended fix is minimal, and the value of having one fewer failure is good. If it is judged not to be fine, cutting the fix and keeping the header changes in a custom patch can be done.
It'll need cherry-picking to release-18.09
Things done

✔ Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

✔ NixOS
⬜ macOS
⬜ other Linux distributions

⬜ Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
⬜ Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
🌶 Tested execution of all binary files (usually in ./result/bin/)
⬜ Determined the impact on package closure size (by running nix path-info -S before and after)
✔ Fits CONTRIBUTING.md.

#44047 stops me from testing this :/.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: qesteidutil
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on aarch64-linux (full log)
Attempted: qesteidutil
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/92i0yk7qh6vza1a3sbgmff6bcr2h2bil-qesteidutil-3.12.10
shrinking /nix/store/92i0yk7qh6vza1a3sbgmff6bcr2h2bil-qesteidutil-3.12.10/bin/qesteidutil
gzipping man pages under /nix/store/92i0yk7qh6vza1a3sbgmff6bcr2h2bil-qesteidutil-3.12.10/share/man/
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/92i0yk7qh6vza1a3sbgmff6bcr2h2bil-qesteidutil-3.12.10/bin
patching script interpreter paths in /nix/store/92i0yk7qh6vza1a3sbgmff6bcr2h2bil-qesteidutil-3.12.10
checking for references to /build in /nix/store/92i0yk7qh6vza1a3sbgmff6bcr2h2bil-qesteidutil-3.12.10...
postPatchMkspecs
/nix/store/92i0yk7qh6vza1a3sbgmff6bcr2h2bil-qesteidutil-3.12.10

Success on x86_64-linux (full log)
Attempted: qesteidutil
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/616675cm14km8gkiv5dkjyhz69cs3lbf-qesteidutil-3.12.10
shrinking /nix/store/616675cm14km8gkiv5dkjyhz69cs3lbf-qesteidutil-3.12.10/bin/qesteidutil
gzipping man pages under /nix/store/616675cm14km8gkiv5dkjyhz69cs3lbf-qesteidutil-3.12.10/share/man/
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/616675cm14km8gkiv5dkjyhz69cs3lbf-qesteidutil-3.12.10/bin
patching script interpreter paths in /nix/store/616675cm14km8gkiv5dkjyhz69cs3lbf-qesteidutil-3.12.10
checking for references to /build in /nix/store/616675cm14km8gkiv5dkjyhz69cs3lbf-qesteidutil-3.12.10...
postPatchMkspecs
/nix/store/616675cm14km8gkiv5dkjyhz69cs3lbf-qesteidutil-3.12.10

... cutting the fix and keeping the header changes in a custom patch can be done.

Since this is a security-sensitive application, we should only apply appstream patches, not try to make our own, so I think it's fine.

Now I may be overly cautious here, but after applying the patch it's not the officially released version any more, so we should even think about marking it as insecure and warning users about that.
After all it's a government-sponsored app related to electronic id cards, and users deserve to know they're not installing the official release (which unfortunately doesn't build).

I was about to open an issue on their repo, but first I was prompted to read the guidelines.
Part of it is as such:

Official builds are provided through the official distribution point https://installer.id.ee. If you want support, you have to be using official builds.
Source code is provided on "as is" terms with no warranty (see LICENSE for more information). Do not file Github issues with generic support requests.

So yeah, it looks like this already isn't official. Though I additionally agree that we shouldn't willy-nilly patch this!

@jagajaga you are marked as the maintainer. Any input? Do you have any association with this software?

Instead of patching, we could use the latest git revision, name the nixpkgs version unstable-2018-xx-xx and add something like "unsupported development version, use installer... for the official version" to the description.

Sorry this got delayed. Since the maintainer approves, let's merge it.

backported: 7c7f9623dc6


Usage of Group Procedure ?

First of all
Any documentations available for the latest release ?
Seems the documentation i see is no longer relevant ?
I'm trying to get group operations to work properly but can't figure what is the right way to use them...
here is a simple group operation i have
class GetAndProcessDcryptorStatusProcedure : GroupProcedure, InputProcedure{

    public var input: ProcedureKit.Pending<String> = .pending
    public var output:DcryptorData?

    init(_ serialCrc:String){
        if !serialCrc.isEmpty{
            input = .ready(serialCrc)
        }

        let opDownload = GetDcryptorStatusProcedure(serialCrc)
        let opProcess = ProcessDcryptorProcedure()
        opProcess.addDependency(opDownload)
//        opProcess.add(condition: NoFailedDependenciesCondition())
        opProcess.injectResult(from: opDownload)

        super.init(operations: [opDownload, opProcess])
        name = "GetAndProcessDcryptorStatusProcedure"

        opDownload.addDidFinishBlockObserver { (procedure, errors) in
            guard errors.isEmpty else{return}
        }
        opProcess.addDidFinishBlockObserver { (procedure, errors) in
            guard errors.isEmpty else{return}
            self.output = procedure.output
        }
    }

//    override func child(_ child: Operation, willAttemptRecoveryFromErrors errors: [Error]) -> Bool {
//        return false
//    }
}

So each procedure of this group can finish with an error. I want to finish the group procedure when one child procedure finishes with an error.
And i want to get that error only when the group finishes.
I tried with NoFailedDependenciesCondition but it seems that other child procedures still get executed. and the returned errors contain a lot of fail dependency errors
Can someone point out what is the correct way of handling this ?
And a link to the current documentation would be awesome !
thanks
mat

@mateo666: You're on the right track. Overriding child(_: willAttemptRecoveryFromErrors:) is precisely what you should do to manage the aggregated errors in the GroupProcedure.
(Perhaps that method ought to be renamed to something like child(_: willHandleErrors:) in the future.)
Here's one option that could go into your GroupProcedure subclass:
override func child(_ child: Operation, willAttemptRecoveryFromErrors errors: [Error]) -> Bool {
    // Check child's dependencies.
    // If any dependency has errors, ignore the errors from this child.
    // (i.e. Do not aggregate the child's errors into the final errors of the GroupProcedure)

    func operationHasDependenciesWithErrors(_ op: Operation) -> Bool {
        for case let dependency as Procedure in op.dependencies {
            guard dependency.errors.isEmpty else { return true }
        }
        return false
    }

    guard !operationHasDependenciesWithErrors(child) else {
        // Filter out errors from children that have failing dependencies
        //
        // Returning `true` ensures that the errors from this child Procedure
        // are not aggregated into the final errors of the GroupProcedure.
        log.verbose(message: "Ignoring the errors from child with failing dependencies: \(child.operationName)")
        return true
    }
    return super.child(child, willAttemptRecoveryFromErrors: errors)
}

With the above, any children that have dependencies with errors will not have their errors aggregated into the GroupProcedure's final errors.
Now, this doesn't control whether those children with failing dependencies execute, so you'll still need to use either:

add(condition:NoFailedDependenciesCondition())
injectResult(from:)

Both of which will cancel the target operation if there are errors in the dependencies / source of the injected result.
(You shouldn't need to use both, although it also won't hurt anything to do so.)

I've been struggling with a similar, albeit simpler, scenario.  Some of these may produce errors because of missing links, etc. I would like to ignore those. If I override childWillAttemptRecoverFromErrors and return true, I still see that the error is being propagated into the GroupProcedure so that it doesn't appear to complete without errors. Any insights or suggestions or is a code sample going to be the only way to advise?

Of course if I call self.errors.removeAll() inside the childWillAttemptRecoveryFromErrors method it seems to work better. Note that I had tried to just cancel the child operation but wasn't sure that was correct either.
One of the reasons for my confusion is because I'm not sure if any Repeatable operations handle the childWillAttemptRecoveryFromErrorscondition the same way. There are some inline notes about attempting to re-run the operation that confuse me. In addition, CloudKit operations definitely respect that when childWillAttemptRecoveryFromErrors returns true, everything still proceeds and the error appears to be swallowed.
If would be nice to be able to pick up any and all errors in a child operation and flag them as handled and thus discardable in the larger GroupProcedure. I don't see any examples of this anywhere so I'm not sure if there's an easy path to achieving this.

@StephenDaedalus: If you override child(_: willAttemptRecoveryFromErrors:) in your GroupProcedure subclass, the errors should not be automatically aggregated into the GroupProcedure's final errors. If you are seeing otherwise, a reduced code example that exhibits the problem would be appreciated, because it sounds like a bug.

@swiftlyfalling i'm using NoFailDependencies with the function you provided and its working the way i want.
thanks !
Mat

Hi, gonna close this for now.


Error: Cannot find module 'mui-toolpad/dist/index.js'

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Steps:

yarn install
yarn dev
yarn toolpad dev test/integration/backend-basic/fixture --dev

Current behavior 😯
It's throwing an error.
$ yarn toolpad dev test/integration/backend-basic/fixture --dev
node:internal/modules/cjs/loader:1080
  throw err;
  ^

Error: Cannot find module '/Users/dan/test/mui-toolpad/dist/index.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v18.16.1

Expected behavior 🤔
For there to be no error
Context 🔦
Was following the contributing.md guide to run examples/qr-generator and got an error. Then I Realized I got the same error for est/integration/backend-basic/fixture too and that's easier to report in the issue.
Your environment 🌎

npx @mui/envinfo
  System:
    OS: macOS 13.4
  Binaries:
    Node: 18.16.1 - ~/.nvm/versions/node/v18.16.1/bin/node
    Yarn: 3.6.1 - ~/.nvm/versions/node/v18.16.1/bin/yarn
    npm: 9.5.1 - ~/.nvm/versions/node/v18.16.1/bin/npm
  Browsers:
    Chrome: 116.0.5845.187 (using chrome)
    Edge: Not Found
    Safari: 16.5

manbe you need to offer more details.
such as your OS,

Thanks for the reply. It's there OS: macOS 13.4, M1

Likely related to the evrsion of yarn you are running. Could you try with
git diff
diff --git a/package.json b/package.json
index 2bde0abca..a2106104f 100644
--- a/package.json
+++ b/package.json
@@ -40,7 +40,7 @@
     "test:argos": "node ./scripts/pushArgos.mjs",
     "test": "lerna run test",
     "check-types": "lerna run check-types",
-    "toolpad": "toolpad",
+    "toolpad": "node packages/toolpad-app/cli.js",
     "jsonSchemas": "tsx ./scripts/docs/generateJsonSchemas.ts",
     "test:rest:start": "tsx ./scripts/restTestServer.ts"
   },

That fixed it, thanks!

Thanks, that's great to hear. I'm reopening, we should fix this.


feat: LSDV-5451: Async Taxonomy data from remote

PR fulfills these requirements

[ ] Commit message(s) and PR title follows the format [fix|feat|ci|chore|doc]: TICKET-ID: Short description of change made ex. fix: DEV-XXXX: Removed inconsistent code usage causing intermittent errors
[ ] Tests for the changes have been added/updated (for bug fixes/features)
[ ] Docs have been added/updated (for bug fixes/features)
[ ] Best efforts were made to ensure docs/code are concise and coherent (checked for spelling/grammatical errors, commented out code, debug logs etc.)
[ ] Self-reviewed and ran all changes on a local instance (for bug fixes/features)

Change has impacts in these area(s)
(check all that apply)

[ ] Product design
[ ] Frontend

Describe the reason for change
(link to issue, supportive screenshots etc.)
What does this fix?
(if this is a bug fix)
What is the new behavior?
(if this is a breaking or feature change)
What is the current behavior?
(if this is a breaking or feature change)
What libraries were added/updated?
(list all with version changes)
Does this change affect performance?
(if so describe the impacts positive or negative)
Does this change affect security?
(if so describe the impacts positive or negative)
What alternative approaches were there?
(briefly list any if applicable)
What feature flags were used to cover this change?
(briefly list any if applicable)
Does this PR introduce a breaking change?
(check only one)

[ ] Yes, and covered entirely by feature flag(s)
[ ] Yes, and covered partially by feature flag(s)
[ ] No
[ ] Not sure (briefly explain the situation below)

What level of testing was included in the change?
(check all that apply)

[ ] e2e
[ ] integration
[ ] unit

Which logical domain(s) does this change affect?
(for bug fixes/features, be as precise as possible. ex. Authentication, Annotation History, Review Stream etc.)

Codecov Report
Patch coverage: 36.84% and project coverage change: -2.93% :warning:

Comparison is base (8139d7b) 68.15% compared to head (a763913) 65.22%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1526      +/-   ##
==========================================
- Coverage   68.15%   65.22%   -2.93%
==========================================
  Files         439      440       +1
  Lines       28086    28164      +78
  Branches     7435     7358      -77
==========================================
- Hits        19141    18370     -771
- Misses       7729     9794    +2065
+ Partials     1216        0    -1216

Files Changed
Coverage Δ

src/env/development.js
0.00% <0.00%> (ø)

src/components/NewTaxonomy/NewTaxonomy.tsx
11.76% <11.76%> (ø)

src/regions/Result.js
78.76% <16.66%> (-2.67%)
:arrow_down:

src/tags/control/Taxonomy/Taxonomy.js
71.65% <30.90%> (-23.94%)
:arrow_down:

src/mixins/AreaMixin.js
96.07% <83.33%> (-0.90%)
:arrow_down:

...omponents/SidePanels/DetailsPanel/RegionLabels.tsx
100.00% <100.00%> (ø)

src/mixins/HighlightMixin.js
54.08% <100.00%> (-2.99%)
:arrow_down:

src/stores/Annotation/Annotation.js
71.98% <100.00%> (-3.06%)
:arrow_down:

src/stores/RegionStore.js
62.22% <100.00%> (-11.67%)
:arrow_down:

src/tags/control/Labels/Labels.js
85.18% <100.00%> (+1.18%)
:arrow_up:

... and 2 more

... and 214 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Stubbing prepended methods no longer works under Ruby 2.5.1

We recently upgraded to ruby 2.5.1 and had a regression in our test suite.  I isolated the failure to expecting a method to be called on a partial class double and wrote the following test case:
    RSpec.describe "A partial class mock" do
      it 'allows prepended methods to be mocked' do
        klass = Class.new do
          def self.meth1
            'hi'
          end
        end

        mod = Module.new do
          def meth1
            meth2
          end

          def meth2
            'hello'
          end
        end
        klass.singleton_class.prepend(mod)
        expect(klass).to receive(:meth2).and_call_original
        klass.meth1
      end
    end

$ rbenv local 2.5.0
$ bundle exec rspec spec/rspec/mocks/partial_double_spec.rb --example "A partial class mock allows prepended methods to be mocked"
Run options: include {:full_description=>/A\ partial\ class\ mock\ allows\ prepended\ methods\ to\ be\ mocked/}

Randomized with seed 51084

A partial class mock
  allows prepended methods to be mocked

Finished in 0.00733 seconds (files took 0.17655 seconds to load)
1 example, 0 failures

Randomized with seed 51084

$ rbenv local 2.5.1
$ bundle exec rspec spec/rspec/mocks/partial_double_spec.rb --example "A partial class mock allows prepended methods to be mocked"
Run options: include {:full_description=>/A\ partial\ class\ mock\ allows\ prepended\ methods\ to\ be\ mocked/}

Randomized with seed 20049

A partial class mock
  allows prepended methods to be mocked (FAILED - 1)

Failures:

  1) A partial class mock allows prepended methods to be mocked
     Failure/Error: object_singleton_class.__send__(@original_visibility, method_name)

     NameError:
       undefined method `meth2' for class `#<Class:#<Class:0x00007f82cd197538>>'
       Did you mean?  method
     # ./lib/rspec/mocks/method_double.rb:108:in `public'
     # ./lib/rspec/mocks/method_double.rb:108:in `restore_original_visibility'
     # ./lib/rspec/mocks/method_double.rb:87:in `restore_original_method'
     # ./lib/rspec/mocks/method_double.rb:118:in `reset'
     # ./lib/rspec/mocks/proxy.rb:319:in `block in reset'
     # ./lib/rspec/mocks/proxy.rb:319:in `each_value'
     # ./lib/rspec/mocks/proxy.rb:319:in `reset'
     # ./lib/rspec/mocks/space.rb:79:in `block in reset_all'
     # ./lib/rspec/mocks/space.rb:79:in `each_value'
     # ./lib/rspec/mocks/space.rb:79:in `reset_all'
     # ./lib/rspec/mocks.rb:52:in `teardown'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/mocking_adapters/rspec.rb:27:in `teardown_mocks_for_rspec'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example.rb:510:in `run_after_example'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example.rb:273:in `block in run'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example.rb:500:in `block in with_around_and_singleton_context_hooks'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example.rb:457:in `block in with_around_example_hooks'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/hooks.rb:464:in `block in run'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/hooks.rb:602:in `run_around_example_hooks_for'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/hooks.rb:464:in `run'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example.rb:457:in `with_around_example_hooks'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example.rb:500:in `with_around_and_singleton_context_hooks'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example.rb:251:in `run'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example_group.rb:629:in `block in run_examples'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example_group.rb:625:in `map'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example_group.rb:625:in `run_examples'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/example_group.rb:591:in `run'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/runner.rb:116:in `block (3 levels) in run_specs'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/runner.rb:116:in `map'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/runner.rb:116:in `block (2 levels) in run_specs'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/configuration.rb:1975:in `with_suite_hooks'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/runner.rb:111:in `block in run_specs'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/reporter.rb:74:in `report'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/runner.rb:110:in `run_specs'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/runner.rb:87:in `run'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/runner.rb:71:in `run'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/lib/rspec/core/runner.rb:45:in `invoke'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rspec-core-a8aae27114dd/exe/rspec:4:in `<top (required)>'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bin/rspec:23:in `load'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bin/rspec:23:in `<top (required)>'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/cli/exec.rb:75:in `load'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/cli/exec.rb:75:in `kernel_load'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/cli/exec.rb:28:in `run'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/cli.rb:424:in `exec'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/cli.rb:27:in `dispatch'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/cli.rb:18:in `start'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/exe/bundle:30:in `block in <top (required)>'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/lib/bundler/friendly_errors.rb:122:in `with_friendly_errors'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/exe/bundle:22:in `<top (required)>'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
     # /Users/jhottenstein/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'

Finished in 0.00887 seconds (files took 0.18807 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/rspec/mocks/partial_double_spec.rb:271 # A partial class mock allows prepended methods to be mocked

Randomized with seed 20049

Thanks for reporting this.  Seems like it's a regression in ruby 2.5.1 and there's a fix coming.   Given the potentially large amount of effort to work around this I doubt we'll get around to it.

@myronmarston I actually got the same thing when I upgraded to Ruby 2.3.7 just FYI


Figure out why it takes two clicks before going to next web page

Taking 2 - 3 clicks on object before moving onto next page, even when data is received back from the server.

https://github.com/jayzamazing/Restaurant-POS/commit/4b10c40ca6141e76c2aeda4032e06737ce71bee4 fixes issue.


Estimating ATE for Continuous Treatment?

It seems that DoWhy only supports binary treatment variables when estimating the treatment effect.
Are there plans to implement any methods which can estimate the treatment effect for CONTINUOUS treatment variables?

@gabeguo DoWhy does support continuous treatment variables. However it does so by invoking the econml library that has many methods for estimation of ATE for continuous treatment (those methods can also estimate CATE).
Within DoWhy, the only method that supports continuous treatments is the linear regression method, but that's a really simple method.
To use any econml's methods, you can refer this notebook: https://microsoft.github.io/dowhy/example_notebooks/dowhy-conditional-treatment-effects.html
All the syntax remains the same, the only difference is that you call backdoor.econml.method_name (instead of backdoor.method_name or backdoor.dowhy.method_name).
I'd suggest starting with double-ml.  Here's an example.
dml_estimate = model.estimate_effect(identified_estimand, method_name="backdoor.econml.dml.DMLCateEstimator",
                                     control_value = 0,
                                     treatment_value = 1,
                                 confidence_intervals=False,
                                method_params={"init_params":{'model_y':GradientBoostingRegressor(),
                                                              'model_t': GradientBoostingRegressor(),
                                                              "model_final":LassoCV(),
                                                              'featurizer':PolynomialFeatures(degree=1, include_bias=True)},
                                               "fit_params":{}})
print(dml_estimate)

You can use method_params to pass any specific parameters. All these parameters are directly passed to the econml method.
If you have a specific method in mind, do let me know and I can try to implement it.


On Android (Pixel), the compass is super laggy when compared to an iOS device

On iOS you seem to be getting close to 60fps on the compass animation, while the android one only updates once a second? It's a stark difference. Am I doing something wrong?

Same here. After update to 0.7, compass super laggy on every device on android

Same for me, It runs smoothly on iOS but unusable for Android devices. After changing to 0.7


Step 10

Per Eric:
"Diagnostic information is defined in section A.5, Diagnostic Information Definition. "
needs to be removed from the report/logging.

New pass version from report:
Start Step 1.10. DM11: Diagnostic Data Clear/Reset for Active DTCs
08:54:33.9889 Clearing Diagnostic Trouble Codes
08:54:33.9889 Global DM11 Request
08:54:33.9890 18EAFFF9 D3 FE 00 (TX)
Diagnostic Trouble Codes were successfully cleared.
End Step 1.10. DM11: Diagnostic Data Clear/Reset for Active DTCs
New fail version from report
Start Step 1.10. DM11: Diagnostic Data Clear/Reset for Active DTCs
08:36:32.1863 Clearing Diagnostic Trouble Codes
08:36:32.1865 Global DM11 Request
08:36:32.1866 18EAFFF9 D3 FE 00 (TX)
08:36:32.1869 18E8FF00 00 FF FF FF F9 D3 FE 00
Acknowledgment from Engine #1 (0): Response: ACK, Group Function: 255, Address Acknowledged: 249, PGN Requested: 65235
Diagnostic Trouble Codes were successfully cleared.
WARN: <IP_ADDRESS>.a - The request for DM11 was ACK'ed
End Step 1.10. DM11: Diagnostic Data Clear/Reset for Active DTCs


Update dependency for simple-get

Dependabot says, that simple-get older than 4.0.1 has security issue.

There's even a PR (#5 ) from dependabot, it would be very useful to merge it and bump this package to 1.1.1


[INTEL_MKL] Windows OpenMP support

Enable Windows OpenMP support for Intel-MKL to improve performance on CPUs

@penpornk bazel throes some error: Error in cc_binary: cc_binary 'name' attribute must be a string. Is there a suggested fix for this?
ERROR: Traceback (most recent call last):         File "/localdisk/bani/inteltf1-build/3de45b8df3514ee70c6c7e96234456ef/external/llvm_openmp/BUILD.bazel", line 226, column 10, in <tople                 cc_binary(         File "/localdisk/bani/inteltf1-build/3de45b8df3514ee70c6c7e96234456ef/external/rules_cc/cc/defs.bzl", line 39, column 21, in cc_binary                 native.cc_binary(**_add_tags(attrs)) Error in cc_binary: cc_binary 'name' attribute must be a string

@bani-intelaipg Ah, we probably need to generate the rule like you did then. (Sorry about that. I'm not a bazel expert either.)
Can we do this? Define a genrule in openmp.bzl and call it from the BUILD file:
openmp.bzl:
def tf_gen_libiomp(name, sources, common_includes):
    # Linux and MacOS
    for ext in [".so", ".dylib"]:
        cc_binary(
            name = name + ext,
            srcs = sources + [
                "runtime/src/z_Linux_util.cpp",
                "runtime/src/kmp_gsupport.cpp",
                "runtime/src/z_Linux_asm.S",
            ],
            additional_linker_inputs = ["ldscript"],
            copts = ["-Domp_EXPORTS -D_GNU_SOURCE -D_REENTRANT"],
            includes = common_includes,
            linkopts = ["-lpthread -ldl -Wl,--version-script=$(location :ldscript)"],
            linkshared = True,
            visibility = ["//visibility:public"],
        )

    # Windows
    cc_binary(
        name = name + ".dll",
        srcs = sources + [
            "runtime/src/z_Windows_NT_util.cpp",
            "runtime/src/z_Windows_NT-586_util.cpp",
            ":openmp_asm",
        ],
        additional_linker_inputs = [":generate_def"],
        copts = ["/Domp_EXPORTS /D_M_AMD64 /DOMPT_SUPPORT=0 /D_WINDOWS /D_WINNT /D_USRDLL"],
        includes = common_includes,
        linkopts = ["/MACHINE:X64"],
        linkshared = True,
        visibility = ["//visibility:public"],
        win_def_file = ":generate_def",
    )

BUILD file:
tf_gen_libiomp(
    name = "libiomp5",
    common_includes = common_includes,
    sources = cppsources + srcdeps + headers,
)

If this doesn't work, please feel free to go back to your original changes which you have tested (since we are short on time) but use the select_os_specific_2 to avoid duplicate strings between linux and mac.

We are reverting as you suggested. Will push the commit soon.

Thank you!
Does your original commit build for you? I tried building the libiomp5.so target on Ubuntu and got this error:
ERROR: /root/windows/tensorflow/third_party/llvm_openmp/BUILD:129:18: in genrule rule //third_party/llvm_openmp:config_omp: target '//third_party/llvm:expand_cmake_vars' is not visible from target '//third_party/llvm_openmp:config_omp'. Check the visibility declaration of the former target if you think the dependency is legitimate
ERROR: Analysis of target '//third_party/llvm_openmp:libiomp5.so' failed; build aborted: Analysis of target '//third_party/llvm_openmp:config_omp' failed

Hi @penpornk after reverting the changes the build passes in both Linux and Windows.

@penpornk Please let us know if anything remains to be done before including this PR.

@bani-intelaipg I have pulled this PR in yesterday and fixed additional issues from internal tests (internally) this morning. It is not merged yet because of some infra issues. I'm not sure if it will get merged in time, but I'll keep trying the merge.

@bani-intelaipg Seems like the merge just went through. The PR should be updated shortly. :)


Skype Bot

I'm trying on simple getting started Skype bot. Where to find the bot Id ? Is it a GUID generated by the developer. In this link [https://developer.microsoft.com/en-us/skype/bots/docs]
it says the portal will generate the Id for us but I don't find it.

You can read it from the activity class instance.
ChannelAccount from = activity.From;
string sender = from.Name;
string id = from.Id;

The activity class contains sender and recipient information.
ChannelAccount recipient = activity.Recipient;
string id = recipient.Id;

The document you are linking to is an older revision. Please see the latest documentation here: https://docs.botframework.com/en-us/skype/getting-started


[YUNIKORN-1899] Handle config reload in the event code

What is this PR for?
We must consider the current configuration when sending out events. Right now, a boolean is initialzed only once and config reloads do not take effect.
What type of PR is it?

[ ] - Bug Fix
[ ] - Improvement
[x] - Feature
[ ] - Documentation
[ ] - Hot Fix
[ ] - Refactoring

Todos

[ ] - Task

What is the Jira issue?
https://issues.apache.org/jira/browse/YUNIKORN-1899
How should this be tested?
Screenshots (if appropriate)
Questions:

[ ] - The licenses files need update.
[ ] - There is breaking changes for older versions.
[ ] - It needs documentation.

utils.go coverge report is misleading

Filed a follow up for the missing unit tests for the utility code YUNIKORN-1903


turned transport into runnable and added it to manager.

listening for context cancellation was added wherever missing.

/assign @nirrozenbaum

/approve


Packages: update babel

Coverage remained the same at 67.683% when pulling ef8040ef7f982ca69f56eeeb7e0ac6f9efb12c79 on packages/babel-update into 2e821006e294b90390c33a1258d457f8fa3cda97 on master.


feat: as a Portal, I can create an Attestation

What does this PR do?
As a Portal SC, I can create an Attestation on the AttestationRegistry.
Some slight changes to the US. Noteably, in this implementation I assume that it is the Portal's role to construct the Attestation, thereby the attest function directly receives an "Attestation" as a parameter.
Related ticket
Fixes #61
Type of change

[ ] Chore
[ ] Bug fix
[x] New feature
[ ] Documentation update

Check list

[x] Unit tests for any smart contract change
[x] Contracts and functions are documented

Codecov Report

Merging #69 (6e6587f) into dev (dceff10) will decrease coverage by 8.34%.
The diff coverage is 77.77%.

@@             Coverage Diff             @@
##               dev      #69      +/-   ##
===========================================
- Coverage   100.00%   91.66%   -8.34%
===========================================
  Files            4        7       +3
  Lines           46       72      +26
  Branches        14       21       +7
===========================================
+ Hits            46       66      +20
- Misses           0        6       +6

Files Changed
Coverage Δ

src/ModuleRegistry.sol
100.00% <ø> (ø)

src/PortalRegistry.sol
100.00% <ø> (ø)

test/mocks/SchemaRegistryMock.sol
0.00% <0.00%> (ø)

test/mocks/PortalRegistryMock.sol
33.33% <33.33%> (ø)

src/AttestationRegistry.sol
100.00% <100.00%> (ø)

src/SchemaRegistry.sol
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Currently we have a default portal which has a schema and list of modules. Attestation struct hold schema too. We need to decide which component owns the schema.

I think its fine to have a reference to the schemaId in both don't you think?

I can be useful but then there will be extra validations required like portal and attestation having different schema id situation. Also it can be little confusing while implementing portals. Do we have any strong reason to do so?

@0xEillo let's push the tests under test/unit and leave the mocks where they are.
This way, by modifying the command in smart-contracts-test.yml, we'll be able to get the coverage we want (only on the real tests and not the mocks).