[TextField] Add ability to style label color when a value is present

Hi, first, thank you for this great library.
Recently I've been attempting to theme our site, and ran into an issue while trying to style TextField components.
Description of problem
Given the following code:
<TextField
  floatingLabelFixed={true}
  floatingLabelText="TextField w/o value"
/>
<TextField
  floatingLabelFixed={true}
  floatingLabelText="TextField w/ value"
  defaultValue="Some Value"
/>

I get the following output:

Where you can see that the label for the input without a value is rgba(0, 0, 0, 0.298039) while the label for the input WITH a value is rgba(0, 0, 0, 0.498039)
Root cause
The source of this issue is src/TextField/TextField.js:80:
const getStyles = (props, context, state) => {
  /* ... */
  if (state.hasValue) {
    styles.floatingLabel.color = fade(props.disabled ? disabledTextColor : floatingLabelColor, 0.5);
  }
  /* ... */
}

Possible solutions

Remove the fade( /*...*/, 0.5) wrapper around the props.disable ternary.

This would be my preferred approach, but would change the way labels look for current users which could be something that people desire or are depending on (?).

Add a  floatingLabelHasValueColor option to the textField theme config that is used when present, otherwise, fall back to the current behavior.

This would allow for use to specify the color to use for a label when the input has a value (In, my case I would like this to be the same as when there is not a value).

I'm more than happy to update this MR to use the first approach (or any other suggestions/approaches you may have), but figured it was best to start with a solution that would not change existing behavior unless you confirmed a desire to do so.
Thanks again, and please let me know anything I can do to help support this PR.

Remove the fade( /.../, 0.5) wrapper around the props.disable ternary.

@m14t I think that we can go even further and do the following changes 👍 .
This piece of logic hasn't changed for almost 2 years. The material spec documentation is much better now.
That must have been added with few context. I can't find any style variation in the spec.
-  if (state.hasValue) {
-    styles.floatingLabel.color = fade(props.disabled ? disabledTextColor : floatingLabelColor, 0.5);
-  }

floatingLabel: {
-  color: hintColor,
+  color: props.disabled ? disabledTextColor : floatingLabelColor,

textField: {
  textColor: palette.textColor,
  hintColor: palette.disabledColor,
-  floatingLabelColor: palette.textColor,
+  floatingLabelColor: palette.disabledColor,

@oliviertassinari I just reverted my initial commit and made the changes you suggested and they work great for me.
I'm happy to rebase out the initial commit and revert if you prefer.
Thanks again!

@m14t Thanks! Hopefully, we won't introduce any regression. Hard to tell without a visual test suite. Yeap, that would be even better with a single commit rebase on master.

@oliviertassinari rebased with latest master and trimmed down to single commit.


Include age of person whose birthday it is. The same for Anniversaries

When you are subscribed to the "Contact's birthday and events" calendar then rather than stating:
Fred Blogg's birthday
it would be nice if it stated the age as well:
Fred Blogg's 37th birthday
If this causes problems with language translations, then:
Fred Blogg's birthday (37)
would also work.

Definitely a nice feature to have.  Would like to see it available.

+1

Would be great for tracking ages of neices nephews etc. Please look into this further!

good idea, please add this feature

On how to see Google Calendar's birhdays and anniversaries (of Contacts) at all please read this comment in the related issue: https://github.com/plusonelabs/calendar-widget/issues/56#issuecomment-541054399
Regarding showing age I still don't know if these "calendars" have such information. Could anybody investigate this?
If not, the only solution will be integrating the Todo Agenda widget with actual Contacts, allowing the app to read them, and presenting birthdays and anniversaries from the Contacts as Events in the widget...

Regarding showing age I still don't know if these "calendars" have such information. Could anybody investigate this?

No, they have not. You should count the repetitions like we discussed on #227 (sorry I didn't find this #79 at first otherwise I would have posted here).

If not, the only solution will be integrating the Todo Agenda widget with actual Contacts, allowing the app to read them, and presenting birthdays and anniversaries from the Contacts as Events in the widget...

Other widgets (such as the one I named on #227) have an additional "add-on" to install, this way those who don't want a permission to access their contacts and don't need birthdays can simply avoid installing.
The add-on reads both the Birth date and Anniversary date field bound with the phone contacts and displays as a separate calendar on the main app (with a configurable color). Think as a "virtual calendar".


Add Noir on Scroll Workshop

Description
Noir on Scroll Workshop
Problem*
No
Summary*
No
Additional Context
No
PR Checklist*

[x] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt on default settings.

thanks!


Support for nix/nixos in CrossJava

The current mechanism in CrossJava: https://github.com/sbt/sbt/blob/1.x/main/src/main/scala/sbt/internal/CrossJava.scala scan linux directories for java home.
As stated in the PR: https://github.com/sbt/sbt/pull/4245#issuecomment-404529319, there is no such default in nix/nixos. You need to provide the path explicitly.
Here is what I suggest:
Detect the user is using nix or nixos.
val isNixOS = sys.props.get("java.home").map(_.startsWith("/nix/store")).getOrElse(false)

Nixos users need to provide jdks via environment variables explicitly. Shortcircuit any automatic detection and use thos environment variable to build the map from version to jdk path.
SBT_JVM_XYZ=pkgs.jvm-xyz

It would be great to improve JDK detection on NixOS.
When using nix-shell it might be possible to auto-detect them from either the PATH or buildInputs environment variable?

JAVA_HOME could help and should be more direct than parsing PATH or buildInputs.
It is defined in pkgs/development/compilers/openjdk/8.nix (likewise for oraclejdk):
# Set JAVA_HOME automatically.
mkdir -p $out/nix-support
cat <<EOF > $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out/lib/openjdk; fi
EOF

Now, in a nix-shell:
[user@host ~]$ nix-shell -p jdk
[nix-shell:~]$ echo $JAVA_HOME
/nix/store/5j2b3bnihr0rnd6gbn2999fbwxsj7b0k-openjdk-8u222-ga/lib/openjdk
[nix-shell:~]$ cat $JAVA_HOME/release
JAVA_VERSION="1.8.0_222"
OS_NAME="Linux"
OS_VERSION="2.6"
OS_ARCH="amd64"
SOURCE=""

[nix-shell:~]$

@jorsn The point of JDK forking is to detect and fork to JDK versions that are currently not being used by JAVA_HOME though. Is there a way to enumerate all JDK packages and their metadata?

Nix enables you to pull an arbitrary package as JDK into each build env, e.g. by simply spawning a nix-shell for each build (so, into PATH, setting JAVA_HOME automatically) and, if you like, to set JAVA_HOME to any JDK not in PATH.
But if you really need multiple JDKs visible in one build, then, in my opinion, there should not be a de-facto standard solely for the combination of Nix and sbt, but an easy way to give sbt an explicit list of JAVA_HOMEs, e.g. as an env var SBT_JAVA_HOMES/ALT_JAVA_HOMES with colon separated directories (like PATH), a commandline option or a build property. sbt would only scan for available versions if they were not given.
This would at least generalize to any meta build tool managing dependencies (general package manager), which could safely control the collection of visible JDKs for sbt.

there should not be a de-facto standard solely for the combination of Nix and sbt

Obviously!

SBT_JAVA_HOMES

Let's not make this sbt-specific either ;)

ALT_JAVA_HOMES with colon separated directories (like PATH)

Or perhaps simply JAVA_HOMES? I like this idea.
(it was one of the options I considered when creating https://github.com/NixOS/nixpkgs/pull/76699, but initially went with JAVA_8_HOME because there was more precedent for the latter, but both seem valid approaches to me)

a commandline option or a build property

I'd prefer an environment variable.

ALT_JAVA_HOMES with colon separated directories (like PATH)

Or perhaps simply JAVA_HOMES? I like this idea.

According to my intuition, JAVA_HOMES would include JAVA_HOME whereas ALT_JAVA_HOMES wouldn't.

According to my intuition, JAVA_HOMES would include JAVA_HOME whereas ALT_JAVA_HOMES wouldn't.

Makes sense to me. I think I would prefer introducing JAVA_HOMES over ALT_JAVA_HOMES, that seems easier to keep consistent.


geometryType -> valueType

Since "values" instead of "coordinates" shall be used for axis objects (see https://github.com/Reading-eScience-Centre/coveragejson/issues/3#issuecomment-157101428) it makes sense to generalize the term "geometryType" to "valueType". Especially since the default geometryType of Coordinate wouldn't fit to time strings. So instead of thinking of spatial geometry types, we could think of data structure types. The default could be "Simple" (before, it was "Coordinate") and anything else is "Complex" (abstract type). Instead of "Simple" it could be "Primitive" but I don't like that really. The actual values that would be used are "SimpleComposite" (array of simple values) and "Polygon" (a GeoJSON-like Polygon coordinates array).

Renamed it to "compositeType" which can be either "Simple", "Polygon", or a custom URI.

I'm not sure I've understood this. Would "compositeType" make sense where the axis values are not composites? Are the use cases:

Numeric (e.g. latitude, longitude, time in a temporal CRS)
Time instant (i.e. ISO-like string)
Tuple (e.g. for trajectories)
Polygon

or have I misunderstood the intention of this?

Axis values are either primitive (number, string[, bool, null]) or composite (anything else). The use case is just to identify the structure of the values, not their semantics. And the use case for understanding their structure is to properly create a connection to the reference systems when they refer to axis/component identifiers. If compositeType does not exist, then the values are primitive. If it does exist, they are composite and the type further defines the structure. Currently, "compositeType" can be "Simple" which means a tuple/array of primitive values, or "Polygon" for a GeoJSON polygon array.

OK, that's clearer to me now, thanks. I'm still not sure that "Simple" is a good term for a tuple. Having a "simple composite" seems almost like a contradiction in terms. Would "tuple" suffice?

My only worry is that "tuple" in general also covers tuples of composite values, but here we want to restrict it to tuples of primitive values. But I agree, it may still be confusing at the moment.

Reopening, need better terminology.

I renamed "Simple" to "Vector". Even though the mathematical notion is broader than what we allow here (only primitive vector elements) I think it still makes sense. If in the future there is a need for have an array or object as one of the vector components, then we could still invent a "ComplexVector" for that. Do you agree? Then I would close this issue.

Scrap that, Vector doesn't actually fit from a mathematical point of view (axioms etc.), I renamed it to Tuple now which should work for all cases.

OK, I think I finally got it right now. I renamed compositeType to dataType, and more importantly "components" to "dimensions". Components worked fine for tuples, but not really for polygons or other structures, and referencing components in reference systems was also a bit weird. I think dimension is the correct term here. It just feels right and it is way easier to understand as a concept.
Also note that this now has uniform definitions also for non-composite values. In that case, the dataType is implicitly "Primitive" and the "dimensions" are a single dimension of the same name as the axis key. This is a default and I have a requirement in the spec that in the default case the axis object is not allowed to explicitly include the dataType and dimensions, to have consistent documents.

See the updated spec, section 6.1

Yes, this makes sense to me now. It would be good (if not done already) to discuss this some more in the spec. If I'm reading this correctly, a dimension is a spatiotemporal (xyzt) dimension, and corresponds with coordinate referencing information. An axis is a component of the domain, orthogonal to all other axes. An axis may correspond with a dimension, but may be comprised of coordinates from many dimensions (hence a trajectory is a 1-axis feature in a 4-dimensional space).
One could also argue that this terminology should be reversed, which might actually match other systems better. (In NetCDF a dimension is a side of the data cube, whereas we are calling this an axis. And coordinate reference systems are comprised of axes in the usual GIS terminology.)

Your interpretation is right.
Regarding dimension vs axis:

CIS uses axis in CRSs, but also defines srsDimension as "The number of named axes in
the CRS". CIS uses axis for grids as well, and a grid also has a dimension (number of axes). So axis is used for both cases. Dimension is just a number. CIS uses the physical/mathematical definitions of axis and dimension (of a space).
NetCDF has the concept of dimension which defines an internal name and the size of it but not any coordinate values or semantics. The NetCDF-CF document also uses the term axis for the actual coordinate variable if it is 1D. Since dimensions themselves don't have any meaning on their own except defining a size I'm not sure if they match our current domain axes so well, at least in the netCDF sense. NetCDF uses the "dimension of an object" definition for dimension.
RDF Data Cube uses the term dimension and doesn't know axis. It uses the "dimension is a structure that categorizes facts and measures" definition (data warehouse). Notably, the dimension values are not ordered!
Currently, in CovJSON, for a tuple axis, the individual components are matched to CRS axes via "dimensions": ["t", "x", "y"]. If the terms are switched, then this would be "axes": ["t", "x", "y"] which may be slightly confusing as someone could assume that each of the components in the array of tuples forms an axis (with ordered values), which is not the case. The word dimensions doesn't carry this meaning in any of the previously referenced definitions.
Even though axis is typically used in CRSs, we are more general and allow any reference system, not necessarily based on coordinates. It feels like an axis is a specialisation of a data warehouse dimension with additional constraints. If the reference system is e.g. ISO 3166-1 alpha-2, then the axis values would be 2-letter country codes like ["DE", "GB"] and clearly there is no axis with a defined order but just the set of codes which one could say are in the 1-dimensional space of ISO 3166-1 alpha-2 country codes.

I'm sure some of that is debatable or slightly wrong/incorrect in some contexts but what I found interesting is that dimension does not have an ordering in any definition or use, whereas axis does. Since our domain axis values do have an ordering I think using "dimensions" would be wrong here. I agree that referring CRS axes via "dimensions" is not as precise as it could be, but as I wrote above we are more general, so it would be wrong in some cases if the reference system does not have a value ordering. CIS seems to be restricted to spatiotemporal CRSs, so the obvious question is: Do we really want to be more general? If yes, then this has to be added to the CIS section of the spec. And I guess we do, right?

Consider the case of encoding a trajectory in NetCDF. You'd have a single dimension, with several coordinate arrays that depend on that dimension. Each of these coordinate arrays corresponds with an axis in a CRS. But in the current CovJSON the terminology would be reversed: there would be a single "axis" with a link to multiple "dimensions". A trajectory is a one-dimensional object in a multidimensional space.

may be slightly confusing as someone could assume that each of the components in the array of tuples forms an axis (with ordered values), which is not the case.

There's a difference between an axis definition (that you'd find in a CRS definition) and a concrete instantiation of an axis, which is the list of axis values. What about having "coordinateAxes": ["t", "x", "y"]?

For grids, we talk about things like regular axes. Would you then say regular dimensions? Doesn't seem right to me and also doesn't match CIS, which defines regular and irregular axes for grids.

No, "regular dimension" would not make sense. There would be a regular axis, which lines up with the corresponding dimension. The axis would be associated with a "coordinate axis", i.e. a component of a CRS.
On reflection, I'm wondering if the concept of a dimension (in the NetCDF sense) needs to appear in CovJSON at all. It's given implicitly by the axes. (The structure of NetCDF means that the dimension construct is necessary but maybe it's not necessary in JSON, where we can nest things.)
But I'm still not quite happy with using the word "dimension" to mean a link to a reference system. That doesn't quite make sense to me (both because of NetCDF usage and English meaning!). How about using "axisReference" or "axisLink" if the purpose is to link the axis values to reference systems?
You are right to introduce the use case of (potentially unordered) non-spatiotemporal axes, which is why I'm not quite comfortable with "coordinateAxis".
I think this may be the sort of thing that's best explained by example...

The problem is that we have to cover arbitrary axis value data types. And a data type currently defines which dimensions it exposes under which aliases (currently just for referencing), e.g. the components of a tuple, or the coordinate parts of each polygon point. In that sense it's decoupled from reference systems, meaning that we don't directly use e.g. the CRS axis abbreviation (e.g. "lat") like CIS does (which is only defined for CRSs and not other reference system types). So, currently the domain axes expose dimension names, and the "referencing" property references these which are then matched up to dimensions exposed by the reference system according to some rules (e.g. for CRS, axes = dimensions; for temporal rs, single dimension only; ...).
But I agree it may be confusing and not understandable by just looking at it. I really don't know how to do it differently though while considering all cases. How would you call the things inside a tupled axis (=set of all x values across all tuples for example) if not dimension? Only then we can think about how to refer to this concept for referencing systems.

How about "components"? I don't think we're using that term elsewhere in CovJSON.
I also thought about "elements" but that might be confused with the elements of a list or collection.

I actually had it as "components" before renaming it to "dimensions". I had written "Components worked fine for tuples, but not really for polygons or other structures, and referencing components in reference systems was also a bit weird. " We're not using "components" currently elsewhere.
I also changed it to "dimensions" because I thought "components" is yet another new concept whereas dimensions could be reused.

Well it could be a case of "potato potahto" if you're familiar with that saying! But to be honest, the more I think about it the more I like "components". A composite axis is a list of tuples, and each item in that list is a list of values of its components. That terminology feels natural to me. "Dimensions" could work, but in my mind that is an overloaded term and the first thing that comes into my head is a physical dimension. "Component" feels more neutral and could equally well apply to non-spatiotemporal, er, axes.

referencing components in reference systems was also a bit weird

I don't think referencing "dimensions" in reference systems is any less weird, considering that most reference systems are made up of axes.

I know that saying from the song "Let's Call The Whole Thing Off" actually!
I think I can live with "components". So does the following make sense for primitive axes?
  "domain" : {
    "type": "Domain",
    "profile": "Grid",
    "axes": {
      "x": { "start": -179.5, "stop": 179.5, "num": 360 },
      "y": { "start": -89.5, "stop": 89.5, "num": 180 },
      "t": { "values": ["2013-01-13T00:00:00Z"] }
    },
    "rangeAxisOrder": ["t","y","x"],
    "referencing": [{
      "components": ["x","y"],
      "srs": {
        "type": "GeodeticCRS",
        "id": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
      }
    }, {
      "components": ["t"],
      "trs": {
        "type": "TemporalRS",
        "calendar": "Gregorian"
      }
    }]
  },

Similarly, for polygons:
  "domain" : {
    "type": "Domain",
    "axes": {
      "composite": {
        "dataType": "Polygon",
        "components": ["x","y"],
        "values": [
          [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]  ]
        ]
      }
    },
    "referencing": [{
      "components": ["x","y"],
      "srs": {
        "type": "GeodeticCRS",
        "id": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
      }
    }
  },

That makes sense to me. Would be interesting to see the case for a non-spatiotemporal axis (like country codes). I think it would be OK.

Actually, country codes would also be a spatial ref system (according to ISO19112), so also a spatial axis. Something like:
  "domain" : {
    "type": "Domain",
    "axes": {
      "country": {
        "values": [ "de", "gb" ]
      }
    },
    "referencing": [{
      "components": ["country"],
      "srs": {
        "type": "GeographicIdentifierRS",
        "id": "https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2",
        // optional for convenience
        "identifiers": {
          "de": {
            "id": "http://dbpedia.org/resource/Germany",
            "label": { "de": "Deutschland", "en": "Germany" },
            "spatialExtent": [...] // bbox
          },
          "gb": {
            "id": "http://dbpedia.org/resource/United_Kingdom",
            "label": { "de": "Vereinigtes Königreich", "en": "United Kingdom" },
            "spatialExtent": [...] // bbox
          }
        }
      }
    }
  },

By the way, I like how this merges the code based with the linked data world.
I can't think of any non-spatiotemporal axis right now but it seems to work anyway.

Looks very good to me. An example of a non-spatiotemporal axis might be “Gender”, if we were interested in, say, life expectancy data per country. This matches with the examples they give for the RDF Data Cube and it might be a useful exercise to compare the CoverageJSON encoding with the DataCube encoding.

I guess what I would do is generalize GeographicIdentifierRS to just IdentifierRS and do that:
  "domain" : {
    "type": "Domain",
    "axes": {
      "gender": {
        "values": [ "m", "f" ]
      }
    },
    "referencing": [{
      "components": ["gender"],
      "rs": { // Not srs anymore!
        "type": "IdentifierRS",
        // this probably should not be "id" since it is not a ref system as such
        "id": "http://dbpedia.org/ontology/gender",
        // required I guess
        "identifiers": {
          "m": {
            "id": "http://dbpedia.org/resource/Male",
            "label": { "de": "Männlich", "en": "Male" }
          },
          "f": {
            "id": "http://dbpedia.org/resource/Female",
            "label": { "de": "Weiblich", "en": "Female" }
          }
        }
      }
    }
  },

So, here codes are referenced to non-geographic concepts.
Of course you could also directly go to URI space:
  "domain" : {
    "type": "Domain",
    "axes": {
      "gender": {
        "values": [ "http://dbpedia.org/resource/Male", "http://dbpedia.org/resource/Female" ]
      }
    },
    "referencing": [{
      "components": ["gender"],
      "rs": { // Not srs anymore!
        "type": "UniformResourceIdentifierRS", // subtype of IdentifierRS
        // this probably should not be "id" since it is not a ref system as such
        "id": "http://dbpedia.org/ontology/gender",
        // required I guess
        "identifiers": {
          "http://dbpedia.org/resource/Male": {
            "id": "http://dbpedia.org/resource/Male",
            "label": { "de": "Männlich", "en": "Male" }
          },
          "http://dbpedia.org/resource/Female": {
            "id": "http://dbpedia.org/resource/Female",
            "label": { "de": "Weiblich", "en": "Female" }
          }
        }
      }
    }
  },

What does this URI ref system reference? A URI already represents a concept, so this would just establish further information about the concepts? Could you still call that a reference system then?

So, just to come back to the original topic: Does "components" make sense in all the earlier examples?
In the CIS comparison, there is currently:

CIS enforces exactly one coordinate reference system (CRS) per coverage, CoverageJSON allows CRSs to be associated with a given combination of dimensions.

How would we rewrite that? Just replacing it with components doesn't make much sense on its own. And saying "axes" would be wrong in the general sense.
The spec text would change to the following (replaced "dimension" with "component"):
6.1.1. Axis Objects
...

The value of "dataType" determines the structure of an axis value and its components that are made available for referencing. The value of "dataType" must be either "Primitive", "Tuple", "Polygon", or a full custom URI (although custom data types are not recommended for interoperability reasons). For "Primitive", there is a single component and each axis value must be a number or string. For "Tuple", each axis value must be an array of fixed size of primitive values in a defined order, where the tuple size corresponds to the number of components. For "Polygon", each axis value must be a GeoJSON Polygon coordinate array, where each of the coordinate components (e.g. the x coordinates) form a component in the order they appear.
If missing, the member "dataType" defaults to "Primitive" and must not be included for that default case.
If "dataType" is "Primitive" and the associated reference system (see 6.1.2) defines a natural ordering of values then the array values must be ordered monotonically, that is, increasing or decreasing.
The value of "components" is a non-empty array of component identifiers corresponding to the order of the components defined by "dataType".
If missing, the member "components" defaults to a one-element array of the axis identifier and must not be included for that default case.
A component identifier shall not be defined more than once in all axis objects of a domain object.

6.1.2. Reference System Connection Objects
A reference system connection object creates a link between values within domain axes and a reference system to be able to interpret those values, e.g. as coordinates in a certain coordinate reference system.

A reference system connection object must have a member "components" which has as value an array of component identifiers that are referenced in this object. Depending on the type of referencing, the ordering of the identifiers may be relevant, e.g. for 2D/3D coordinate reference systems.
A reference system connection object must have exactly one of the members "srs", "trs", or "rs", where "srs" has as value a spatial reference system object, "trs" a temporal reference system object, and "rs" a reference system object that is neither spatial nor temporal. Section 5 defines common types of spatial and temporal reference system objects.

How would we rewrite that? Just replacing it with components doesn't make much sense on its own. And saying "axes" would be wrong in the general sense.

Well, the only way I can think to address this is to define "components" earlier and then use the word components here. Anything else would seem inconsistent.
I think the rest of the text is fine (at least, I can't think of a better way to do it). My only question is over the use of "srs", "trs" and "rs" - do we need to distinguish them? Would it do any harm if they were all "rs", and in fact might that be easier for clients?

OK, I will change it from "dimensions" to "components" then. Also, as we discussed today, there is no harm in collapsing "srs"/"trs"/"rs" into a single one, since this is also what I do in the JS API and there's no issue with that. Should it be "rs" then or something longer? "system" (I use that in the JS API)? "refSystem"?

I think "system" is good - it pairs nicely with the parent "referencing" element


Rendering: Improve event handling early during a render

This PR addresses #3524
If a render is still in progress any call to render will be returned.
This prevents unpredictable axis changes when a user calls for a render within an AxisChangedEvent, but it does mean it is not possible to force a render within any SizeChanged or AxisLimitChanged events.
Is this OK?
Code for testing:
        InitializeComponent();
        WpfPlot1.Plot.RenderManager.AxisLimitsChanged += AxisChanged;
        WpfPlot1.Plot.Add.Signal(Generate.Sin(51));
        WpfPlot1.Plot.Add.Signal(Generate.Cos(51));

        void AxisChanged(object sender, RenderDetails e)
        {
            WpfPlot1.Plot.Render();
        }

I solved both #3524 and #3508 with this PR.
I have added a new event during the render that fires BEFORE render actions take place.
The event is called AxisLimitsChanging.
This allows things like labels to be set in response to the new axis limits, and yet be rendered in the same render.
It also solves my original requirement, which was to give me knowledge of the direction and scale of the zoom change, so I can snap to a tick interval.
Example code using the new event:
        InitializeComponent();
        WpfPlot1.Plot.RenderManager.AxisLimitsChanging += AxisChanging;
        WpfPlot1.Plot.Add.Signal(Generate.Sin(51));
        WpfPlot1.Plot.Add.Signal(Generate.Cos(51));

        void AxisChanging(object sender, AxesChangingArgs e)
        {
            var changedPlot = (ScottPlot.Plot)sender;
            var newLimits = e.NewAxisLimits;
            var oldLimits = e.OldAxisLimits;

            if ( Math.Abs(newLimits.Right - newLimits.Left) < Math.Abs(oldLimits.Right - oldLimits.Left))
            {
                WpfPlot1.Plot.Title($"You zoomed In on X");
            }
            else if(Math.Abs(newLimits.Right - newLimits.Left) > Math.Abs(oldLimits.Right - oldLimits.Left))
            {
                WpfPlot1.Plot.Title($"You zoomed Out on X");
            }
            else
            {
                WpfPlot1.Plot.Title($"You didn't Zoom X");
            }
            WpfPlot1.Plot.YLabel($"New Y limits: {newLimits.Bottom:F1}, {newLimits.Top:F1}");
            WpfPlot1.Plot.XLabel($"New X limits: {newLimits.Left:F1}, {newLimits.Right:F1}");
        }

The EventArgs being sent is from a new class called AxisChangingEventArgs (It didn't seem apprpriate to send a RenderDetails object as the data woudl be form the previous render not in in progress one).
I wasn't sure where to put this AxisChangingEventArgs, as I couldn't find any other similar EventArgs classes, so take a look and see if I got it right.

Thanks @BrianAtZetica! I'm really liking the direction this is going. I have a bit of feedback that may result in code changes, and you can make them or I can based on what you think.
Events
I see what you're doing with the new AxisLimitsChanging event (and the AxesChangingArgs it emits). We may get more general-purpose functionality if we change it to something like RenderStarting to compliment the existing RenderFinished event. It could emit the RenderPack which has all sorts of information (including the plot, which can access previous axis limits etc).
Skipping Renders
Regarding exiting Render() early if the plot is already rendering, this is probably okay, but that's a really interesting method that is called only a few very special times. I think it's called to force a render only in memory (notice that nothing is returned) to setup the axis, layout, etc. Leaving that method early makes me a bit concerned. What would you think about replacing the "if IsRendering, return" with a "while IsRendering, delay 1 ms" or something? That way that manually-requested render is guaranteed to happen, and a render will be completed before that function returns. I've only looked at this PR in the browser so far, but I can dig a little deeper and see when/why that odd function exists and what it's needed for

... sorry about the accidental commits. I'm going to revert them in this branch and leave this like I found it 😅 https://github.com/ScottPlot/ScottPlot/pull/3527#issuecomment-2016648180

Hi @swharden,
Skipping Renders
I took a look at the Skipping Renders problem further. I explored using a Semaphore instead of a "while IsRendering, delay 1 ms" (thinking this would be less harmful on CPU usage). Unfortunately, both methods have the same issue.
The situation I was mitigating was the call of plot.Render() from within the AxisLimitsChanged event. Unfortunately, the AxisLimitsChanged event is happening on the same thread, so whether we use a Semaphore or a simple Delay loop, the second render will delay indefinitely waiting for (and holding up) the previous render that invoked the event to finish:
        if (EnableEvents)
        {
            RenderFinished.Invoke(Plot, LastRender);

            if (LastRender.SizeChanged)
            {
                SizeChanged.Invoke(Plot, LastRender);
            }
            if (LastRender.AxisLimitsChanged)
            {
                AxisLimitsChanged.Invoke(Plot, LastRender);
            }
        }

        // TODO: event for when layout changes
        RenderCount += 1;
        IsRendering = false;

We could simply move the RenderCount and IsRendering = false above the firing of events. This seems appropriate given the rendering has by all accounts finished (as per the first event invoked!) It means nothing stops a new render (even my original code) because the previous render has actually finished before the events fire.
That is a simple change (basically revoking my mess and moving two lines of code above the events).
I'll actually commit my version that implemented the Semaphore (mainly for your interest/thoughts). It might help if there are other scenarios that could trigger simultaneous calls to render that aren't locked on the same thread? But I dont know if that's even likely, so I will follow that up with a commit that revokes it.
Pre-Rendering Events
I'm happy with the solution of using the RenderStarting event. I was able to achieve the same real-time updates of title and axis labels with the following as the event handler:
        void renderstarted(object sender, RenderPack e)
        {
            var newLimits = e.Plot.Axes.GetLimits();
            var oldLimits = e.Plot.LastRender.AxisLimits;

            if (Math.Abs(newLimits.Right - newLimits.Left) < Math.Abs(oldLimits.Right - oldLimits.Left))
            {
                WpfPlot1.Plot.Title($"You zoomed In on X");
            }
            else if (Math.Abs(newLimits.Right - newLimits.Left) > Math.Abs(oldLimits.Right - oldLimits.Left))
            {
                WpfPlot1.Plot.Title($"You zoomed Out on X");
            }
            else
            {
                WpfPlot1.Plot.Title($"You didn't Zoom X");
            }
            WpfPlot1.Plot.YLabel($"New Y limits: {newLimits.Bottom:F1}, {newLimits.Top:F1}");
            WpfPlot1.Plot.XLabel($"New X limits: {newLimits.Left:F1}, {newLimits.Right:F1}");
        }

Interestingly, this was already being fired by a RenderAction, while the RenderFinished event is simply fired within the Render method. I've reverted my event in the latest commit (which will be pushed when I finish this epic comment!)
Wrapping Up
I think this PR and associated issues turned into a bit of a storm in a teacup. Ultimately, very little has changed, except that I discovered how to access the changed axis extents before rendering is complete. I guess my specific named event would have been easier to find for someone wanting to do something similar.
It seems to me that three minor issues remain:

It should be posisble to update titles and legends in the AxisLimitsChanged events - the render has, by all accounts, actually finished by the time this event fires, so the user should be able to make a change to the plot and have it re-render the new change (I guess there is some risk of a rendering loop if the user puts bad code into the event handler).
Calling of Plot.Render() was probably misguided on my part, but it is accessible to a user, and the doc string implies that it would force any new changes to be rendered. Maybe the method needs some form of protection to make it unavailable outside of ScottPlot? or at least some more detailed guidance in the docstring?
If I understand better now (not gauranteed) the better way for a user to force a redrawing of the plot is to call Refresh() on the control. This also does not seem to update the axis labels or title in my AxisLimitsChanged event handler. I don't need this now that I am using the RenderStarting event, but I am keen to learn what's happening.

Thanks!

We could simply move the RenderCount and IsRendering = false above the firing of events.

Simple, but elegant! I like it!

I think this PR and associated issues turned into a bit of a storm in a teacup

I never heard that phrase before, I love it 😆

It should be possible to update titles and legends in the AxisLimitsChanged events - the render has, by all accounts, actually finished by the time this event fires, so the user should be able to make a change to the plot and have it re-render the new change (I guess there is some risk of a rendering loop if the user puts bad code into the event handler).

Actually I don't think this is the case. Consider this sequence of events that happens in the render cycle:

The title string is measured to determine how much space it needs
The data area is adjusted to make room for the title
Plottables are rendered in the data area

It's a bit of a chicken-and-egg problem, but I think the title has to be known before the data can be rendered.
An alternative solution is to create a custom plot type that renders text outside the data area. This way it's always rendered near the end of the render cycle, so it can be aware of the pixel/axis dimensions. This may be a really useful plot type to have, and may have shared functionality with new Annotation plot type that was recently merged #3510 but isn't on NuGet yet. Adding a flag to let annotations render outside the data area would be great! Maybe it already works if you give it negative padding? This is worth looking into...

Calling of Plot.Render() was probably misguided on my part, but it is accessible to a user, and the doc string implies that it would force any new changes to be rendered. Maybe the method needs some form of protection to make it unavailable outside of ScottPlot? or at least some more detailed guidance in the docstring?

I'll look into this further after posting this comment.

If I understand better now (not guaranteed) the better way for a user to force a redrawing of the plot is to call Refresh() on the control. This also does not seem to update the axis labels or title in my AxisLimitsChanged event handler. I don't need this now that I am using the RenderStarting event, but I am keen to learn what's happening.

I think leaning on the Annotation plot type may be the solution here! Use the RenderStarting event to change the Annotation's text.

Calling of Plot.Render() was probably misguided on my part, but it is accessible to a user

It turns out that method was only used by the test system to make sure nothing crashes during a render. It wasn't intended to be called by end users. I'm marking the method obsolete now 😈

Okay I'm going to merge this PR because it's in a good place... and I'll open a new issue to track progress toward adding the feature where a title or annotation may change its text inside the render loop.
FYI this is the code I'm using to demonstrate the issue, and the rendered scale is always 1 frame behind
using ScottPlot;
using ScottPlot.WinForms;
using System.Windows.Forms;

namespace Sandbox.WinFormsFramework;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        FormsPlot formsPlot1 = new() { Dock = DockStyle.Fill };
        Controls.Add(formsPlot1);

        formsPlot1.Plot.Add.Signal(Generate.Sin());
        formsPlot1.Plot.Add.Signal(Generate.Cos());

        var an = formsPlot1.Plot.Add.Annotation("test", Alignment.UpperCenter);
        formsPlot1.Plot.RenderManager.AxisLimitsChanged += (s, e) =>
        {
            an.Label.Text = e.AxisLimits.ToString(2);
        };
    }
}

Hey, I think this works!
using ScottPlot;
using ScottPlot.WinForms;
using System.Windows.Forms;

namespace Sandbox.WinFormsFramework;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        FormsPlot formsPlot1 = new() { Dock = DockStyle.Fill };
        Controls.Add(formsPlot1);

        formsPlot1.Plot.Add.Signal(Generate.Sin());
        formsPlot1.Plot.Add.Signal(Generate.Cos());

        var an = formsPlot1.Plot.Add.Annotation("test", Alignment.UpperCenter);

        formsPlot1.Plot.RenderManager.RenderStarting += (object sender, RenderPack rp) =>
        {
            AxisLimits thisRenderLimits = rp.Plot.Axes.GetLimits();
            AxisLimits lastRenderLimits = rp.Plot.LastRender.AxisLimits;

            if (thisRenderLimits == lastRenderLimits)
            {
                // test this by resizing the window
                an.Label.Text = "limits unchanged";
            }
            else
            {
                an.Label.Text = thisRenderLimits.ToString(2);
            }
        };
    }
}


ci: Switch GitHub macOS build workflow to use macos-13 (x86) and macos-14 (ARM) runners.

Description

The GH macos-12 hosted runner image has begun to be deprecated leading to much longer build times for our macOS workflow.
This PR addresses the issue by:

Switching the workflow to build using the macos-13 and macos-14 hosted runners.

We use macos-13 to test building on an older OS running on an x86 host, and we use macos-14 to test building on a newer OS running on an ARM host.

Removing the specific version number (12) from the macOS install steps for core.

Validation performed

GitHub workflows succeeded and in a timely manner.
task docs:serve and validated the docs about installing on macOS were updated.

Summary by CodeRabbit

New Features

Enhanced build workflow for macOS to support a broader range of versions (macOS 13 and 14).
Updated installation scripts for improved compatibility.

Documentation

Generalized macOS setup instructions to apply to all macOS versions, simplifying the installation process.
Updated references in documentation to reflect the broader applicability of the setup instructions.

If these two are unrelated to the changes then the PR should be good to be merged.

Thanks. Yeah, those are from submodules (external libraries).


ArrayUpsert does not update array items when using a custom idKey

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[X] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request
[ ] Other... Please describe:

Current behavior
I am using the arrayUpsert helper function with a custom idKey of "sku".
In the case where the entity already exists (update) the idKey is not passed to the arrayUpdate function.
So the item does not actually get updated. When not using a custom key everything is fine (since it will use DEFAULT_ID_KEY)
Expected behavior
Existing item should be updated when a custom idKey is used.
Minimal reproduction of the problem with instructions
My code:
 arrayUpsert(items, item.sku, { sku: item.sku, qty: item.qty }, 'sku')

In the arrayUpsert file it is clear that the idKey parameter is not passed.
if (entityExists) {
   return arrayUpdate(arr, id, obj);
}

It should just need idKey parameter added to the above function call.

What is the motivation / use case for changing the behavior?
Bug
Environment

Angular version: X.Y.Z

Browser:
- [ ] Chrome (desktop) version XX
- [ ] Chrome (Android) version XX
- [ ] Chrome (iOS) version XX
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [ ] Edge version XX

For Tooling issues:
- Node version: XX
- Platform:

Others:

Someday when I am not up to 3am every day I'll learn how to make a PR, but right now I'll need to hand this one off to you guys again to fix.

Hopefully soon I'll get to share all the cool ways I'm using Akita.

Thanks!


0.12.20 breaks code that uses fastapi_pagination.ext.sqlalchemy.paginate_query

The removal of fastapi_pagination.ext.sqlalchemy.paginate_query from 0.12.20 (since 0.12.19) breaks the API for code that uses that function.
Please roll this change back for 0.12.21 and release a new 0.13.0 minor version with the change.

Sorry, my bad

Hi @seaninmar,
New vesion 0.12.21 has been released. Please, check if it fixed your issue.


about acc

I checked closed issue about acc. you replied pretraining strategy is different.
Can you explain different between this implementation and papers? (I checked the authors' pretraining method in paper, but,i can't find  your strategy in this repository)
and in DEC paper, they used dropout, but why didn't you use dropout layer?

@cheon-research My pretraining strategy is exactly here.
https://github.com/XifengGuo/DEC-keras/blob/d40914fd034f1708483902554f395b9c87ee1304/DEC.py#L141
I didn't find dropout help in my experiments, so I removed it. If you find it useful for your own dataset, you can definitely add it back. Other normalization layers like batchnorm can also be applied.


DOC: Updated groupwise registration docs with note on tolerances and setting image origins

Hey Kasper,
I think I have it now. Hopefully the commit message is a bit better now and the pull request is to the correct location.
I have some more issues I have run into with the program, they are mostly problems with using 4D images and I did have the sitk 4D turned to on when I built simple elastix. Would you like me to continue to report issues? I feel like a bit of a pest. I don't mind continually updating the docs to help others that come behind me.
Anthony.

Your bug reports are very appreciated and I do hope you will continue to report any issues you encounter. This will only make SimpleElastix better. You are not at all a pest, but I understand the feeling  - I get that too when reporting bugs in SimpleITK.
You are very welcome to continue to improve the docs. Thank you for the PR, hopefully the first of many!


⚠ ClamAV has degraded performance

In bf147b3, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 600 ms

Resolved: ClamAV performance has improved in 7564af6.


Respect tsconfig.json and/or .babelrc

It would be awesome if swc could read settings from existing tsconfig.json and/or .babelrc in a project. This would be super useful since there seems to already be some overlap, and would save new users a trip to the documentation to figure out what swc's options are.

I've had a look at parsing tsconfigs into Rust, and this is a nice motivator to do it; it's slightly complicated because one tsconfig can extend others (ie, you might have tsconfig.dev.json, tsconfig.prod.json, both inheriting from a tsconfig.base.json), and certain settings imply others (setting some flag to true means that some other flag defaults to false if unset, where it would otherwise default to true). A couple of questions:

Which tsconfig settings correspond to which .swcrc settings? Presumably things like bundle type should only correspond to typescript files? E.g., as in: https://swc.rs/docs/configuring-swc#multiple-entries
Should the parsing code for the tsconfig live in swc, or should swc add a dependency to a new crate?

Which tsconfig settings correspond to which .swcrc settings? Presumably things like bundle type should only correspond to typescript files? E.g., as in: https://swc.rs/docs/configuring-swc#multiple-entries

I think tsconfig can be used to all files if .swcrc does not exist.
If .swcrc exists, it should get higher precedence over tsconfig.json, regardless of language.
As I expect to a user to use only typescript and javascript in single project, I think applying to all language is correct way to go.

Should the parsing code for the tsconfig live in swc, or should swc add a dependency to a new crate?

Both is acceptable, if tsconfig to swc-config lives in swc repository.

I'm also looking for this but can't find any. So I just wrote a config-mapping node module tsconfig-to-swcconfig which maps configs in tsconfig.json to configs in .swcrc. (Only a subgroup of features of tsconfig is supported by swc currently, however.)
I also wrote some other libraries based on this:

tswc which allows you to use tswc -- [swc options] to compile with tsconfig respected.
swc-register which allows you to use node -r swc-register file.ts to transpile TypeScript files on the fly, also, with tsconfig.json respected.

When we use @swc/jest does it recognise the settings in tsconfig.json? Or do we need to map tsconfig.json to .swcrc first?
I ask because I've started to use swc as part of ts-node and the author of ts-node said no additional configuration is required, as tsconfig.json is still respected. But now I'm wondering if that applies across the board to include jest as well...?

And if it isn't possible I reckon it would be nice to document this explicitly for each of the tools.

SWC does not interop tsconfig.json or babelrc or any other configs as of today. There were internal discussions, while techinically nothing prevents it we do not have any immediate plan to introduce it in @swc/core - probably any userland support would come first.

Really important feature, I think, cause seems like eslint currently works only with .tsconfig files - https://github.com/swc-project/swc/issues/246
In that way, it multiplies config files required, one for linting and other for building. Most modern projects already have a lot of boilerplate in their initial commits, I do not think adding another one makes people's lifes better :smiling_face_with_tear:

I'm going to close this for now, implcit interop between configuration can help some and as well as confusing other usecase pretty quickly. At least, if we are really going to do this it needs very careful design to understand what's going on. Core team will internally put this into backlog to determine if we really wants this or not, however for now we don't have strong desire to have this.


Client side issue

Not sure if that's not postcss issue but when importing the library on the browser I'm getting the following:
browser-external:path:9 Uncaught (in promise) Error: Module "path" has been externalized for browser compatibility. Cannot access "path.dirname" in client code.
    at Object.get (browser-external:path:9:13)
    at node_modules/postcss/lib/map-generator.js (map-generator.js:4:7)
    at __require (chunk-OL3AADLO.js?v=ae7dec9e:9:50)
    at node_modules/postcss/lib/lazy-result.js (lazy-result.js:4:20)
    at __require (chunk-OL3AADLO.js?v=ae7dec9e:9:50)
    at node_modules/postcss/lib/postcss.js (postcss.js:5:18)
    at __require (chunk-OL3AADLO.js?v=ae7dec9e:9:50)
    at node_modules/sanitize-html/index.js (index.js:6:33)
    at __require (chunk-OL3AADLO.js?v=ae7dec9e:9:50)
    at dep:sanitize-html:1:16

sanitize-html 2.7.1
postcss 8.4.14
Server Operating System:
System:
OS: Linux 5.15 Ubuntu 22.04 LTS 22.04 LTS (Jammy Jellyfish)
CPU: (1) x64 Intel(R) Xeon(R) CPU           X5570  @ 2.93GHz
Memory: 3.26 GB / 12.68 GB
Container: Yes
Shell: 5.1.16 - /bin/bash
Binaries:
Node: 18.4.0 - ~/.nvm/versions/node/v18.4.0/bin/node
Yarn: 1.22.19 - /usr/bin/yarn
npm: 8.12.1 - ~/.nvm/versions/node/v18.4.0/bin/npm
Browsers:
Firefox: 102.0.1
The base framework is SvelteKit

I see. Since we don't use sanitize-html on the front end, support for front end use comes from the community. It will likely help if you can provide a simple test project.

Here we can see the error in the console:
https://stackblitz.com/edit/sveltejs-kit-template-default-7tj64c?file=src/routes/index.svelte

@PlopTheReal
If you are in a hurry, can try dompurify 👆

I tried using dompurify but it was missing some features that I depend on such as not lower case tags since I'm using Vue there are some Vue Components involved and also closing tags that are missing them. I was able to work around this by aliasing some nodejs packages to an empty file, we are using Nuxt 3 here is an example of how I was able to alias this, I only needed to do it in dev, in build it is not an issue
nuxt.config.js

const aliasedPackages = process.env.NODE_ENV !== 'production'
  ? {
      vueBundler: 'vue/dist/vue.esm-bundler.js',
      url: 'empty-file.txt',
      fs: 'empty-file.txt',
      path: 'empty-file.txt',
    }
  : { vueBundler: 'vue/dist/vue.esm-bundler.js' };

export default defineNuxtConfig({
  vite: {
    resolve: {
      alias: aliasedPackages,
    },

any updates?


Fix possible bug wellborepath layer

Issue: #362

Could you do me the favor of labelling this PR with "hacktoberfest-accepted" if you think it is a valid contribution to the project?

@nicholasdalhaug done. Thank you for your contribution, we appreciate it 😊


[BUG] PyTorch 2.4.0 rocm 6.1| ... cannot import name 'LORA_ATTENTION_PROCESSORS' from 'diffusers.models.attention_processor'

Torch version: 2.4.0+rocm6.1
PyTorch version 2.4.0+rocm6.1 available.
Warning, cannot find cuda-compiled version of RoPE2D, using a slow pytorch version instead
Warning, cannot find cuda-compiled version of RoPE2D, using a slow pytorch version instead
Traceback (most recent call last):
  File "/home/musclez/ComfyUI/nodes.py", line 1993, in load_custom_node
    module_spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/musclez/ComfyUI/custom_nodes/ComfyUI-Open-Sora-Plan/__init__.py", line 1, in <module>
    from .nodes import NODE_CLASS_MAPPINGS
  File "/home/musclez/ComfyUI/custom_nodes/ComfyUI-Open-Sora-Plan/nodes.py", line 29, in <module>
    from opensora.models.diffusion.latte.modeling_latte import LatteT2V
  File "/home/musclez/ComfyUI/custom_nodes/ComfyUI-Open-Sora-Plan/opensora/models/diffusion/__init__.py", line 2, in <module>
    from .latte.modeling_latte import Latte_models
  File "/home/musclez/ComfyUI/custom_nodes/ComfyUI-Open-Sora-Plan/opensora/models/diffusion/latte/modeling_latte.py", line 21, in <module>
    from opensora.models.diffusion.latte.modules import PatchEmbed, BasicTransformerBlock, BasicTransformerBlock_, AdaLayerNormSingle, \
  File "/home/musclez/ComfyUI/custom_nodes/ComfyUI-Open-Sora-Plan/opensora/models/diffusion/latte/modules.py", line 14, in <module>
    from diffusers.models.attention_processor import SpatialNorm, LORA_ATTENTION_PROCESSORS, \
ImportError: cannot import name 'LORA_ATTENTION_PROCESSORS' from 'diffusers.models.attention_processor' (/home/musclez/ComfyUI/.venv/lib/python3.11/site-packages/diffusers/models/attention_processor.py)

Cannot import /home/musclez/ComfyUI/custom_nodes/ComfyUI-Open-Sora-Plan module for custom nodes: cannot import name 'LORA_ATTENTION_PROCESSORS' from 'diffusers.models.attention_processor' (/home/musclez/ComfyUI/.venv/lib/python3.11/site-packages/diffusers/models/attention_processor.py)

this is due to using a later version of diffusers and LORA_ATTENTION_PROCESSORS has been deprecated in 2.26.0.


In "Usage Hints", clearly document the classic entity deletion pitfall (with examples)

ie. the following:

Obsolete with the upcoming 2.0.


make the plot widgets accessible with JS api

in classic beaker you can

make this work with our javascript magic:

by defining our JS API on the beaker object:
https://github.com/twosigma/beaker-notebook-private/blob/master/beaker-nbextension/main.js#L29

this works if i reload the page.
but if i just open a notebook, then i get the "not a constructor" error.
the problem is the beaker object is empty.

@scottdraves it should work with this fix:
https://github.com/twosigma/beakerx/pull/5284


Icon's width is not the same as that defined in css

In css, the icon width is set to 18px
.chose-image-small {
	width:18px;
	max-height:18px;
	vertical-align: middle;
	margin: -3px 0 0 0;
	padding: 0 3px 0 0;
}

But actually, it is 15px

Is this expected result?

change
.chose-image-small {
	 margin: -3px 0 0 0;
	padding: 0 3px 0 0;
}

to
.chose-image-small {
	margin: -3px 3px 0 0;
}

will fix this issue

Nicely spotted  :) .. should be fixed, thanks @khiav223577


p2p example

Added an example that establishes p2p sessions with polygon peers.
Credits: https://blog.merkle.io/blog/fastest-transaction-network-eth-polygon-bsc

reason for closing this @loocapro ?

reason for closing this @loocapro ?

its already merged here: https://github.com/paradigmxyz/reth/pull/6393


[backport] Deprecate passing shape=None to mean shape=()

Backport of #4616

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit 3e18cee251ba9c856968b95e20747f06cdf2cd08, target branch v8) failed with status FAILURE.


UI: Support viewing logs for containers created by resource template

Summary
AFAIK, currently argo can only log container defined in Workflow step, not the container it creates through resource template. It will be useful if users can specify the container they want to log.
Use Cases
For example, if users want to use argo and kubeflow training operator for ML training, they can use the follow template
  - metadata:
      labels:
        user: xxx
    name: step4
    resource:
      action: create
      failureCondition: failed in (status.replicaStatuses.Master, status.replicaStatuses.Worker)
      manifest: |
        apiVersion: kubeflow.org/v1
        kind: PyTorchJob
        metadata:
          generateName: step4-pytorchjob-
          labels:
            user: xxx
          namespace: xxx
        spec:
           <pytorchjob related spec>

However, currently argo can only log the container of that "argo container", which looks like below:
time="2021-10-21T07:01:06.195Z" level=info msg="0/1 success conditions matched"
time="2021-10-21T07:01:06.195Z" level=info msg="Waiting for resource pytorchjob.kubeflow.org/pytorchjob-l8kc9 in namespace argo resulted in retryable error: Neither success condition nor the failure condition has been matched. Retrying..."
time="2021-10-21T07:01:11.199Z" level=info msg="Get pytorchjobs 200"
time="2021-10-21T07:01:11.199Z" level=info msg="failure condition '{failed in [status.replicaStatuses.Master status.replicaStatuses.Worker]}' evaluated false"
time="2021-10-21T07:01:11.199Z" level=info msg="success condition '{status.replicaStatuses.Master.succeeded exists []}' evaluated false"
time="2021-10-21T07:01:11.199Z" level=info msg="0/1 success

Can we support this feature? Thanks.

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

i am not familar with ts

Providing an example to extract resource log in parallel step. Hope this can help you.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: sparkjob-
  annotations:
    pipelines.kubeflow.org/kfp_sdk_version: 1.8.22
  labels:
    pipelines.kubeflow.org/kfp_sdk_version: 1.8.22
spec:
  serviceAccountName: pipeline-runner
  entrypoint: sparkjob
  templates:
  - name: sparkjob
    steps:
    - - name: sparkjob-run
        template: sparkjob-run
      - name: sparkjob-driver-log
        template: sparkjob-driver-log

  - name: sparkjob-run
    resource:
      action: create
      successCondition: status.applicationState.state == COMPLETED
      failureCondition: status.applicationState.state == FAILED
      manifest: |
        apiVersion: "sparkoperator.k8s.io/v1beta2"
        kind: SparkApplication
        metadata:
          name: {{workflow.name}}
          namespace: spark-operator-35
        spec:
          type: Python
          pythonVersion: "3"
          mode: cluster
          image: "your/spark/image:latest"
          imagePullPolicy: Always
          mainApplicationFile: local:///opt/spark/work-dir/app.py
          sparkVersion: "3.5.1"
          sparkConf:
            spark.shuffle.io.retryWait: "3s"
            spark.network.timeout: "800"
          restartPolicy:
            type: OnFailure
            onFailureRetries: 1
            onFailureRetryInterval: 10
            onSubmissionFailureRetries: 1
            onSubmissionFailureRetryInterval: 20
          driver:
            annotations:
              sidecar.istio.io/inject: "false"
            securityContext:
              runAsUser: 0
            cores: 1
            coreLimit: "1200m"
            memory: "64G"
            labels:
              version: 3.5.1
              workflows.argoproj.io/workflow: "{{workflow.name}}"
            serviceAccount: spark-operator-spark
          executor:
            annotations:
              sidecar.istio.io/inject: "false"
            securityContext:
              runAsUser: 0
            cores: 3
            instances: 1
            memory: "32G"
            labels:
              version: 3.5.1
              workflows.argoproj.io/workflow: "{{workflow.name}}"

  - name: sparkjob-driver-log
    container:
      image: bitnami/kubectl:1.27
      command:
      - bash
      - -c
      args:
      - |
        POD_NAME="{{workflow.name}}-driver"
        NAMESPACE="{{workflow.namespace}}"
        while true; do
          POD_STATUS=$(kubectl get pod ${POD_NAME} -n ${NAMESPACE} --ignore-not-found)
          if [ -n "$POD_STATUS" ]; then
            echo "Pod $POD_NAME is created..."
            break
          else
            echo "Waiting for pod $POD_NAME to be created..."
            sleep 1
          fi
        done && kubectl wait pod {{workflow.name}}-driver -n {{workflow.namespace}} --for=condition=ready --timeout=600s && kubectl logs {{workflow.name}}-driver -n {{workflow.namespace}} --follow

See #7067

This was resolved by #7067, so this issue is effectively a duplicate of #6910

This was resolved by #7067

Or that didn't quite add a UI feature for it per se or document how to use it for this purpose

Or that didn't quite add a UI feature for it

https://github.com/argoproj/argo-workflows/pull/10397 added the UI feature as I understand, although it is still not documented


NodeGit cannot be mocked in Jest

Trying to mock NodeGit in Jest fails with the following error message:

TypeError: Cannot set property 'lookupWrapper' of undefined

The code of the test:
var nodegit = require('nodegit');
jest.mock('nodegit');

describe('mocking nodegit', () => {
    it("doesn't work", () => {
        console.log('it never reaches this point.');
    });
});

Its output is:
$ jest nodegit-mock.spec.js
 FAIL  ./nodegit-mock.spec.js
  ● Test suite failed to run

    TypeError: Cannot set property 'lookupWrapper' of undefined

    > 1 | var nodegit = require('nodegit');
        |               ^
      2 | jest.mock('nodegit');
      3 |
      4 | describe('mocking nodegit', () => {

      at Object.<anonymous> (node_modules/nodegit/dist/utils/lookup_wrapper.js:41:29)
      at Object.<anonymous> (nodegit-mock.spec.js:1:15)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        0.812s
Ran all test suites matching /nodegit-mock.spec.js/i.

I'm using the latest versions of NodeGit and Jest:
$ npm list --depth=0
<EMAIL_ADDRESS>/home/axiac/jest-nodegit-mocking
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>

@prashant-andani Just Jest and Node (version 8), no React, nothing else. All the dependencies declared in package.json are listed in my post above.

Instead of...
var nodegit = require('nodegit');
jest.mock('nodegit');

try...
var mock = jest.genMockFromModule('nodegit');
mock.Utils = {};
var nodegit = require('nodegit');

@axiac I know its a bit late, but I was having the same issue and solved it using a manual mock.
const nodegit = jest.genMockFromModule('nodegit');

// Implement custom mock logic here

module.exports = nodegit;

I also added some custom mock logic so that the static methods Repository.init and Repository.open returned instances of the mocked class.
import { Repository } from 'nodegit';
nodegit.Repository.init.mockImplementation(() => Promise.resolve(new Repository()));

I tried to fix this with a manual mock and it still crashes with the lookupWrapper error.

Alternatively, you can:

Create a ./nodegit-import.js and re-export nodegit as a default export
Replace all imports of nodegit with ./nodegit-import
During test, apply a jest.mock on ./nodegit-import.js to mock it away
Apply your own desired mock behaviors with jest.spyOn()

nodegit-import.js
// to overcome issues with mocking nodegit directly
// https://github.com/nodegit/nodegit/issues/1514
import Git from "nodegit";
export default Git;

your-own-file.js
import Git from "./nodegit-import";

your-own-file.test.js
import Git from "./nodegit-import";
jest.mock('./nodegit-import');

jest.spyOn(Git, 'Repository');


How to slice a tensor in keras with variable indices?

I have an image of size 100x120x3. After applying convolutions on original image, I want to get a subset/patch from the image, of size 11x11, during training. The patch would be centered around indices "index1" and "index2". The code I am trying is written below. The dimensions of feats_new is same as that of the image. Google colaboratory is being use for implementation.
x = Input(shape=(100,120,3), name='inputA')
index1 = Input(shape=(1,), name='ind1', dtype = 'int32')
index2 = Input(shape=(1,), name='ind2', dtype = 'int32')
feats_new = encoder(x)
patch = feats_new[:,index1-5:index1+6, index2-5:index2+6,:]
I get the following errors on execution:
TypeError: Cannot convert a symbolic Keras input/output to a numpy
array. This error may indicate that you are trying to pass a
symbolic value to a NumPy call, which is not supported. Or, you may
be trying to pass Keras symbolic inputs/outputs to a TF API that
does not register dispatching, preventing Keras from automatically
converting the API call to a lambda layer in the Functional Model.
and
ValueError: Shapes must be equal rank, but are 2 and 0
From merging shape 2 with other shapes.
For '{{nodetf.__operators__.getitem_11/strided_slice/stack_2}} =
Pack[N=4,   T=DT_INT32, axis=0
(tf.__operators__.getitem_11/strided_slice/stack_2/values_0,
Placeholder_1, Placeholder_3,
tf.__operators__.getitem_11/strided_slice/stack_2/values_3)' with
input shapes: [], [?,1], [?,1], []
How can I get the patch?

Is it a problem related to broadcasting during matrix multiplication

No. I think the problem is that the input defined in keras in this form index1 = Input(shape=(1,), name='ind1', dtype = 'int32') cannot be used as index because its shape is (None,1). But I need it in this format because the index will change for every sample in the batch. Hence I want to give the index as numpy array during training and testing.

@ShivamP1993 Sorry for the late response!
The normal way to go is to pad your inputs to the same maximum length before batching.Please refer to this tensor slicing   and  try with latest TF v2.7.0 .Please let us know if it helps?Thanks!

@ShivamP1993 Sorry for the late response! The normal way to go is to pad your inputs to the same maximum length before batching.Please refer to this tensor slicing  and try with latest TF v2.7.0 .Please let us know if it helps?Thanks!

This method is about general slicing of tensors. The problem comes when I want to use the indices for slicing as input in a Keras based model (using "Input" layer) and use that "Input" for slicing.

@ShivamP1993,
Use Lambda layer to slice the Keras input
import tensorflow as tf
x = tf.keras.Input(shape=(100,120,3), name='inputA')
sliced_input = tf.keras.layers.Lambda(lambda x: x[:,:,0])


does not fail on error

What happened?
running the action with a malformed config fails the command but the action does not fail
Expected Behavior
action should fail, which would result in a notification to the repo admin that something's broken
Steps to reproduce
see https://github.com/pulumiverse/pulumi-vercel/pull/44 and all the runs in https://github.com/pulumiverse/pulumi-vercel/actions/runs/6001806781/job/16276798111 that were successful although the action failed
Output of pulumi about
n/a
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Hi @omercnet. Thank for opening this issue. This is definitely the wrong behavior. It's not the fault of the action though: upgrade-provider returns an exit code of 0 when run with an invalid config file.
I'm going to transfer this issue to the upgrade-provider repo so it can be fixed.


Add credo coder linter.

It could help us to improve and keep the code quality.

@theoretick Feel free to merge this :-)

also anyone of the other collaborators... :-)

Nice! Been meaning to try this out :)

Do you mean credo or merging the PR? :)

Haha credo, but in retrospect why not both?


why  you  set      stiffness=0  damping =0 in config ?

Hi ,  bro .  Recently  I  am  trying to  train  a  PPO  policy  in  Isaacgym  and  deploy  to  AliengoRobot ,  but  I    see  your   stiffness=0  damping =0  ,    how  can  you  control  your  robot  to  move ?

Hi,
Joint stiffness and damping are actually simulated by the actuator, so by setting them to zero means we hand over the control authority to joint controller, and stiffness and damping are simulated there by computing PD feedback torques.
Thanks.


YesNoModal is missing AR translation

Describe the bug
A clear and concise description of what the bug is.
After the yesNoModal was fixed the yesBtn and noBtn needs to be added and translated.
It should be done here: https://github.com/abahmed/Deer/blob/develop/assets/locales/ar/yesNoModal.json
Simply by adding the two properties mentioned before and adding it's respective translation should fix this.

Fixed #169 with PR #179


Regression test score displays

For https://github.com/phetsims/vegas/issues/102 I had to make some major changes to the code that displays the users' score in various games.  These score displays generally appear on the level selection buttons and/or the status bars in the games.  Here are a handful of screenshots that depict score displays in different settings to help clarify:

I'd like to request that the QA team run through the master versions of all sims that have score displays and verify that they look reasonable and match the published versions.  I don't think we have a good list, so I think you'll just need to go through the sims and look, or just identify a reasonable subset of sims known to have games and spot check.
Here is an example of a score display that was initially broken by my changes.  I have fixed this, but there may be other similar instances.  In this case, the color of the score text doesn't match the rest of the test on the status bar.

@KatieWoe and I had a conversation about this, so she is pretty aware of what this is all about, but feel free to ask for any sort of clarification that is needed.

[ ] Tester = , Platform = , Time =
[ ] Tester = , Platform = , Time =
[ ] Tester = , Platform = , Time =
[ ] Tester = , Platform = , Time =

List of sims with scores on master:

Area Builder
Area Model Algebra
Area Model Multiplication
Arithmetic
Balancing Act
Balancing Chemical Equations
Build a Fraction
Build an Atom
Equality Explorer
Expression Exchange
Fourier Making Waves
Fraction Matcher
Fractions Equality
Fractions Intro
Fractions Mixed Numbers
Gene Expression Esentials?
Graphing Lines
Graphing Slope Intercept
Make a Ten
Number Play
Reactants Products and Leftovers

I think we can call QA here.

Thanks @KatieWoe and @Nancy-Salpepi.  Closing.


why WordToHtmlConverter.cs does not existing

I want convert a docx file to html, but can't find WordToHtmlConverter.cs in this repository, anyone can help ?

That's a good question :)

I need  too!


Remove ruptures import statement

This fixes #199

Codecov Report

Merging #201 (365d055) into main (12929b4) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #201      +/-   ##
==========================================
- Coverage   89.51%   89.51%   -0.01%
==========================================
  Files          20       20
  Lines        1765     1764       -1
==========================================
- Hits         1580     1579       -1
  Misses        185      185

Flag
Coverage Δ

cxx
87.96% <ø> (ø)

python
90.81% <ø> (-0.01%)
:arrow_down:

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

Impacted Files
Coverage Δ

src/py4dgeo/segmentation.py
89.74% <ø> (-0.03%)
:arrow_down:

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 12929b4...365d055. Read the comment docs.


Allow for a customizable fallback mapper

Hello,
I'm not sure whether you're accepting pull requests or not. If you're not, feel free to close!
My thinking here is to be able to set a fallback_mapper in the settings that defaults to dj_angles.mappers.django.map_include.
What one would be able to able to accomplish by switching the fallback mapper is to use their favorite component library as fallback instead of {% include %}.
So for example, assuming django bird, with the appropriate mapper:
<dj-partial /> would be mapped to {% bird partial %}{% endbird %}  instead of {% include 'partial.html' %}
I'm opening this as draft, as if that's something you'd be interested in, documentation would be needed

This feature makes sense to me. 👍 I'm not sure about the setting name, though. I wonder if something like "component_fallback_mapper" would be more clear? What do you think?
To merge in I'd add docs to settings.md and a test, but I can handle both of those things if you want.
The use of import_string makes me wonder if that would be useful for the mappers dictionary as well. Currently, the value is either a string or a callable, so this would make it more complicated -- there would be two types of strings, i.e. a Django templatetag or an import string? I guess I could differentiate between the two types of strings by looking for a period, but that feels a little hacky. The other approach is to deprecate the current mappers approach and move everything to be import strings and make that work -- would reduce some if string, else if callable logic I have floating around. But, would require updates by anyone using custom mappers (admittedly, I have no clue how widespread that is). Mostly thinking out loud here, but let me know if you have any thoughts!

This feature makes sense to me. 👍 I'm not sure about the setting name, though. I wonder if something like "component_fallback_mapper", "component_mapper", or "default_component_mapper" would be more clear? What do you think?

I think I like "default_component_mapper" best... it's also the longest though

To merge in I'd add docs to settings.md and a test, but I can handle both of those things if you want.

I'll take a look at how you write your tests, I haven't touched pytest in ages...
Also I tries running ruff but it spat quite a lot of warnings, so I'm not sure if I'm doing something wrong here.
Re: tangent
to stay backwards compatible I see 2 possibilities:

use a format like 'tag:dotted.path.to.templatetag' and try import_string only on strings that start with tag:
always try to import, catch the ImportError and fallback to the legacy behavior

What do you think?
I'll change the settings name and get started on the docs

I think I like "default_component_mapper" best... it's also the longest though

Let's go with that! I'd rather be explicit than terse. :)

Also I tried running ruff

just lint should be good. Let me know what errors you see.

always try to import, catch the ImportError and fallback to the legacy behavior

This is a good idea!

It should start looking somewhat ok. But....

I'm not convinced by having dj_angles.mappers.angles.map_include_when_no_tag
2} For some reason tests are flaky on my machine (ie: they pass every odd time I run them -> something to do with settings override) I'm assuming it's a "me problem"

Let me know what errors you see.

src/dj_angles/mappers/angles.py:5:30: F401 `minestrone.Element` imported but unused
  |
3 | from django.template import engines
4 | from django.template.exceptions import TemplateDoesNotExist
5 | from minestrone import HTML, Element
  |                              ^^^^^^^ F401
6 |
7 | from dj_angles.mappers.include import get_include_template_file, map_include
  |
  = help: Remove unused import: `minestrone.Element`

src/dj_angles/mappers/thirdparty.py:1:1: I001 [*] Import block is un-sorted or un-formatted
  |
1 | / from collections.abc import Callable
2 | | import logging
3 | | from typing import TYPE_CHECKING
4 | |
5 | | from dj_angles.mappers.utils import get_attribute_value_or_first_key
6 | |
7 | | if TYPE_CHECKING:
  | |_^ I001
8 |       from dj_angles.tags import Tag
  |
  = help: Organize imports

src/dj_angles/tags.py:1:1: I001 [*] Import block is un-sorted or un-formatted
   |
 1 | / from typing import TYPE_CHECKING, Optional
 2 | |
 3 | | from minestrone import Element
 4 | |
 5 | | from django.utils.module_loading import import_string
 6 | |
 7 | | from dj_angles.attributes import Attributes
 8 | | from dj_angles.mappers.angles import map_angles_include
 9 | | from dj_angles.settings import get_setting
10 | |
11 | | if TYPE_CHECKING:
   | |_^ I001
12 |       from collections import deque
   |
   = help: Organize imports

Found 3 errors.
[*] 2 fixable with the `--fix` option.

The imported but unused error on src/dj_angles/mappers/angles.py:5:30 should now be fixed in main. The others are interesting. I wonder if you have a different version of ruff than I do?

ruff 0.7.0

@all-contributors please add @nanuxbe for code, tests, and docs


Sonic Adventure DX (steam): add alternative save location

This mod https://sadxmodinstaller.unreliable.network/ downgrades exe and this changing save data location.

Thanks for the PR! Because of how the manifest is updated, these changes could be wiped out later since they won't match what's on PCGamingWiki. I imagine PCGW probably doesn't want mod paths in their main save/config tables, so I think we would need to add another file to the repo, like data/manifest-supplement.yaml, for this info. The supplement file could then be combined into the main file when performing the daily updates.
If you're interested in implementing the supplement file, let me know, but otherwise I'll try to add it as soon as I have some time so that we can add this save info there.

I think it should be fine using the same main entry and just adding a proper note that this is the directory when using the mod. For example, in this entry I added the mod to the entry and also added the save path: https://www.pcgamingwiki.com/wiki/Umineko_When_They_Cry_-_Question_Arcs#Save_game_data_location
Although it should be better to ask the PCGW staff about this.

I've updated pcgamingwiki page https://www.pcgamingwiki.com/wiki/Sonic_Adventure_DX_(Steam)#Configuration_file.28s.29_location

Merged https://github.com/mtkennerly/ludusavi-manifest/commit/046affcbbe36c730ad3bf30f7efd7c5693d37c91#diff-86b38c85c292f5a5025e585057a4d546R214491-R214495


Negative overstaked penalty

Calculations for this (or decision not to make any calculations in the client) are up for debate in this ticket so parking this for now until we know how to proceed.
David is seeing negative overstaked penalty figures in the governance dapp

Jon is investigating, follow the conversation here https://vegaprotocol.slack.com/archives/C038EB6V2RE/p1683715338911629

Looks like a short term improvement is to ensure penalties are no lower than 0. I'll do that in this ticket and we can look at broader changes separately


Visualization Bug when Removing API Resources

Description:

Customer is experiencing a graphical UI glitch when deleting resources from a API Product. And please note that it is just a UI issue when save these changes and move to another page and return this resource is removed.

Steps to reproduce:

Edit an API

Remove one of the resources (screenshot 1, click yes)

The page does not visually update the resource list, and the resource is still visible (screenshot 2)

Steps to reproduce:

APIM 2.6.0

This issue is not reproducible in the latest APIM Master branch.


Dbz 4300 xref supported configs from connectors

DBZ-4300
Fix incorrect attribute that was used to represent link to downstream Supported Configuration page.

Superseded by PR #3114.


New register function issue fixed

Previous merge has not the new register function. honestly idk why haha

Merge accept


vmtouch not allocating more than 1G

I have a folder which has 1.8G of files.
When I give the command:
vmtouch -l /foldername
It shows on screen:
Files: 82502
Directories: 14358
Resident Pages: 337502/416978  1G/1G  80.9%
Elapsed: 1.7909 seconds
I referenced https://github.com/hoytech/vmtouch/issues/18 and changed ulimits to 2G even after that vmtouch does not allocate more then 1G

ulimit -l<PHONE_NUMBER>
ulimit -l
2000000000

Here is the output of the free command:

free -h
total       used       free     shared    buffers     cached
Mem:          125G        60G        65G       289M       1.4G        27G
-/+ buffers/cache:        31G        94G
Swap:         3.7G         0B       3.7G

This is a ubuntu 15.10 system.
Why?

Hmm that's strange. the -l switch is supposed to print something like this:

# vmtouch -l .
LOCKED 317 pages (1M)

(or an error message). Can you please paste your entire terminal session?
In your case since you have such a large number of files you may also need to increase the number of open files rlimit (ulimit -n). I have another branch where it closes the files after mmap()+mlock()ing them, but that is not merged yet (should be in 1.0.3).

hi @hoytech
I am facing the same issue as [https://github.com/hoytech/vmtouch/issues/18] #18.
Any tentative release date for 1.0.3 ?
Thanks.

@rahul-chhabra -- There are a few fixes that will be in 1.0.3:

The fix where it keeps files open when it doesn't need to, which can bump against your NOFILE rlimit
Removes the default max file size to map (so you don't need to use -m)

You might still run up against the -l "max locked memory" ulimit if you are a non-privileged process, there's not much vmtouch can do about that.
I've got a few things on my plate, but I'll try to get 1.0.3 out early next week... There are a few branches that need cleaning up, that's been the main thing stopping me, but I'll do it ASAP.

So I decided to skip 1.0.3 and go straight to 1.1.0 which is now available from the releases page and the master branch.
Please file a ticket if any new issues come up.
Thanks for your patience!


IE8 doesn't appear to work

I am having an issue with IE8 were picturefill doesn't appear to be working, I thought it was my code but it also doesn't function as expected on the demo. Is this a known issue?

It is a known MatchMedia issue. Use this version of MatchMedia to resolve it: https://github.com/benschwarz/matchMedia.js/blob/IE7-8/matchMedia.js

@skyyip , even though I implemented the versionf of MatchMedia you have mentioned, it still doesn't work on IE8 and IE9.

@yakutsa
The fact, that it doesn't work in IE9 for you, is very weird. We would need a simplified testcase. You can also try the following pre-alpha version of picturefill, which fixes the IE8 (matchMedia) issues

@aFarkas ,
This is the code snippet that I have been using: https://jsfiddle.net/k7n9ev3r/
I didn't use the latest version of picturefill. But in some websites, I saw that the code snippet I have sent is working on IE8 and IE9. Maybe I am missing something here, I am not sure.

Oh, sorry. This was all about picturefill 2.0/3.0. We strongly recommend to update.

This one will be sorted by 3.0.

yey


Question: what is the best way to track the distance using this library?

Plugin version: "^0.5.0-alpha.34"
Platform: iOS or Android: Android
OS version: All
Device manufacturer and model: All
React Native version: 0.55.1
Plugin configuration options:
BackgroundGeolocation.configure({
stopOnTerminate: true,
desiredAccuracy: BackgroundGeolocation.MEDIUM_ACCURACY,
stationaryRadius: 1000,
distanceFilter: 7000,
notificationTitle: 'Route verification',
notificationText: 'enabled',
startOnBoot: true,
stopOnTerminate: true,
locationProvider: BackgroundGeolocation.DISTANCE_FILTER_PROVIDER,
interval: 10000,
fastestInterval: 5000,
activitiesInterval: 10000,
postTemplate: {
lat: '@latitude',
lng: '@longitude',
},
url: API.baseUrl + '/driver/location/',
httpHeaders: {
'Authorization': Bearer ${props.accessToken},
},
})
What is the best way to track the distance using this library? Is there is an odometer method, build in inside the library, for the distance tracking or something similar?

@mauron85  Or at least a build-in method for finding distance between two locations?

Use this library for great circle distance between 2 points:
https://github.com/brandon93s/haversine-js

I used this one library, it's pretty good https://github.com/manuelbieh/geolib


Spelling Error: Moderator is not capabale

This is a server bug, I submitted a PR for it.
https://github.com/OpenBazaar/openbazaar-go/pull/529


Can't name a room's member on a room

On Riot Android and Web i can name a member in a message, by typing the begining of his name and select him in a combo, but it doesn't work on riot ios.

Currently the only way to mention a room member is by tapping on the display name of this member in the room history. This enters their nickname in the entry box.

Dup #1098


Multiple AWS instances - unique identifier required?

In a multiple AWS instances scenario, it used to be required to make the AWS identifier URI unique by adding "#" and any unique value.
This is still mentioned in the AAD tutorial for AWS here
This doc should make clear if for AWS a unique identifier is still required or not.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: aa04cf91-e1eb-5b59-f85f-1cb46a08f40b
Version Independent ID: a4aff3ba-9c3f-71c5-bf8b-a4101b94b073
Content: Use Microsoft Graph APIs to configure SAML-based single sign-on - Azure Active Directory
Content Source: articles/active-directory/manage-apps/application-saml-sso-configure-api.md
Service: active-directory
Sub-service: app-mgmt
GitHub Login: @kenwith
Microsoft Alias: kenwith

@MrAzureAD Thank you for your feedback . We will investigate and update the thread.

@MrAzureAD  Adding "#" and followed by a unique number is required only when there are multiple instances of Amazon Web Services (AWS) enterprise application added to the same Azure AD tenant.
The reason is Identifier (Entity ID) should be unique for every Enterprise Application. You cannot use "https://signin.aws.amazon.com/saml" as identifier in multiple instances of Amazon Web Services (AWS) app. So, if there are 2 instances of AWS app, we add #1 and #2 at the end of the Identifier url. Azure AD eventually removes the value of # and sends https://signin.aws.amazon.com/saml as the audience URL in the token.
In short, using #Number is not mandatory in Identifier. It needs to be used only when there are multiple instances of AWS in same tenant. If there is only one instance, you do not need to specify that. Since this document is providing general guidelines to automate SAML-based SSO app configuration with Microsoft Graph API, and a single instance of AWS app is used as an example.
Adding all this information would confuse the readers working with other applications.

Understood. However the example is AWS and AWS is one of the major use cases why to use automated creation of AAD apps. So from that perspective, I would it being mentioned.
On the other hand Azure portal prevents duplicate  entity IDs from being created - the automation does not prevent it, but it will not work and frustrate users.

Any update on this same issue. When we add #1, #2 it doesn't remove the # for just the /saml

@amanmcse Does this still work? I saw a reddit forum which said it doesn't work as of now, is there any alternative way to achieve this?


autodetect shader uniforms

annotations and regex

things to figure out:

how to register a shader as auto-detectable, perhaps a separate public call to ShaderReloader with the path?
what will the annotations look like, perhaps #slider=3  do they include ranges?
do these new controls belong into a new nested folder? what will be the folder name?
can we represent all the control elements as a uniform? probably yes
good errors for type mismatches, like a float uniform trying to consume a #gradient or #color


Remove unused Cargo.lock files

Since all crates are part of the same workspace, there should only be one Cargo.lock file.

bors r+


bug: placement controller may do concurrent work on one wrapped object

Describe the bug
From review of the architecture document, I noticed that the placement controller may have concurrent goroutines working on the same ManifestWork --- and not necessarily with the same versions of their inputs. Also, the controller makes too many assumptions about the current state of a given ManifestWork object rather than reading it from the apiserver (or a local cache of that).
Steps To Reproduce
A reliable procedure to demonstrate the problem would require more fine-grained and precise control over timing than the technology offers.
Expected Behavior
Only one goroutine should work on a given output object at a time, using the latest inputs.
Additional Context
No response

@MikeSpreitzer Is this still valid?

Yes, this is still valid. The problem is in the older part of the binding controller, of course, the part that is creating/updating/deleting ManifestWork objects.

Here is the code analysis. For a given workload objects, there are two different items that can appear in the workqueue and cause work to be done on that object's ManifestWork. One is a Key that refers to the object. Another is a Key that refers to a BindingPolicy, where the Key's DeletedObject is non-nil. Look at func (c *Controller) handleBindingPolicy and see where it calls c.handleBindingPolicyFinalizer and c.cleanUpObjectsNoLongerMatching. Both of those will delete ManifestWork objects. Also: inquiring minds want to know why there are two paths to delete those objects for the same reason.


Add JavaScript example to layout chaining page

This is what I meant to put in #409.

In service to #397

Hooray, it passes also also!
Like @zachleat said, it was the npm run links-internal for /docs/languages/.

Thank you!


How to pass Docker build-time variables?

Trying to use a private npm registry like described in npm's Docker and private packages where the npm token is passed in as a build argument. Can't find any way to do this with now though.

We're working on this. Most likely it will happen in now.json via a dockerBuild parameter.

Okay, thanks for the quick & clear reply! Another way to achieve this is with pre-build private Docker images.


Move client_id into configuration

Slightly cleaner, I think--we gain a global but avoid having to embed client ids into JS. There will probably be other values we need to make accessible to the front-end too.

LGTM


[Preview] Added latency calculations to AMQP records.

This pull request adds latency calculation logic to AMQP and a corresponding field "latency" is added to the AMQP table to reflect the calculated latency.
NOTE: For asynchronous AMQP frames since calculating latency is not required so i've used zero latency for the async frames.
What type of PR is this?
/kind feature
What this PR does / why we need it:
This PR adds latency calculation to AMQP protocol.
What is the testplan for the PR:
bazle test src/striling/source_connectors/socket_tracer/...

truncated for readability
Which issue(s) this PR fixes:

NONE

Additional documentation:

NONE

@chengruizhe Requesting review.

@noman-xg ,
We would like to voice a slight preference toward not using mutable variables. Would like to suggest the following small re-write toward that end:
int64_t AMQPCalculateLatency(const int64_t req_timestamp_ns, const int64_t resp_timestamp_ns,
                             const bool req_synchronous, const bool resp_synchronous) {
  if(!req_synchronous || !resp_syncrhonous) {
    return 0;
  }

  if(req_timestamp_ns <= 0 || resp_timestamp_ns <= 0) {
    return 0;
  }

  latency_ns = std::max(req_timestamp_ns, resp_timestamp_ns) - std::min(req_timestamp_ns, resp_timestamp_ns);
  return latency_ns;
}

NB args flagged as const also.
This surfaces the return value clearly, in the code, for cases where we cannot compute the latency.

@etep
Thanks for taking a pass. I've pushed the suggested re-write in 86fae33bd8fd0591ddbb7327ae3e43404861386f

Thanks @noman-xg! Will pull this in soon.

Merged in 4ac47cc7a9051b5a5cb7e60b3dc3160720e15085