Calendar Week Unit

As mentioned in another thread I like the calendar component very much.
Today I have tried to add another unit into the calendar: the week. This is a requirement for my current work, so I tried out the following HACK (!) without deeper knowledge of the component... I'd like to share it because the result is sufficient for the moment, but not yet optimum. You can start by default to display the current week by setting the defaultTimeStart and defaultTimeEnd:
var startOfWeek = moment().startOf('week').toDate(); // try also 'isoweek' instead of 'week'
var endOfWeek   = moment().endOf('week').toDate(); // try also 'isoweek' instead of 'week'

defaultTimeStart: startOfWeek,
defaultTimeEnd: endOfWeek,

First, here are some screenshots.

This is where I added "week":

In Timeline.js

a)
export const defaultTimeSteps = {
  second: 1,
  minute: 1,
  hour: 1,
  day: 1,
  week: 1,
  month: 1,
  year: 1
}

b)
export const defaultHeaderLabelFormats = {
  yearShort: 'YY',
  yearLong: 'YYYY',
  monthShort: 'MM/YY',
  monthMedium: 'MM/YYYY',
  monthMediumLong: 'MMM YYYY',
  monthLong: 'MMMM YYYY',
  week: 'W',
  dayShort: 'L',
  dayLong: 'dddd, LL',
  hourShort: 'HH',
  hourMedium: 'HH:00',
  hourMediumLong: 'L, HH:00',
  hourLong: 'dddd, LL, HH:00',
  time: 'LLL'
}

c)
export const defaultSubHeaderLabelFormats = {
  yearShort: 'YY',
  yearLong: 'YYYY',
  monthShort: 'MM',
  monthMedium: 'MMM',
  monthLong: 'MMMM',
  week: 'W',
  dayShort: 'D',
  dayMedium: 'dd D',
  dayMediumLong: 'ddd, Do',
  dayLong: 'dddd, Do',
  hourShort: 'HH',
  hourLong: 'HH:00',
  minuteShort: 'mm',
  minuteLong: 'HH:mm'
  }

d)
headerLabelFormats: PropTypes.shape({
      yearShort: PropTypes.string,
      yearLong: PropTypes.string,
      monthShort: PropTypes.string,
      monthMedium: PropTypes.string,
      monthMediumLong: PropTypes.string,
      monthLong: PropTypes.string,
	  week: PropTypes.string,
      dayShort: PropTypes.string,
      dayLong: PropTypes.string,
      hourShort: PropTypes.string,
      hourMedium: PropTypes.string,
      hourMediumLong: PropTypes.string,
      hourLong: PropTypes.string
    }),

e)
subHeaderLabelFormats: PropTypes.shape({
      yearShort: PropTypes.string,
      yearLong: PropTypes.string,
      monthShort: PropTypes.string,
      monthMedium: PropTypes.string,
      monthLong: PropTypes.string,
	  week: PropTypes.string,
      dayShort: PropTypes.string,
      dayMedium: PropTypes.string,
      dayMediumLong: PropTypes.string,
      dayLong: PropTypes.string,
      hourShort: PropTypes.string,
      hourLong: PropTypes.string,
      minuteShort: PropTypes.string,
      minuteLong: PropTypes.string
    }),

In Header.js
a)

headerLabel (time, unit, width) {
    const { headerLabelFormats: f } = this.props

    if (unit === 'year') {
      return time.format(width < 46 ? f.yearShort : f.yearLong)
    } else if (unit === 'month') {
      return time.format(width < 65 ? f.monthShort : width < 75 ? f.monthMedium : width < 120 ? f.monthMediumLong : f.monthLong)
    } else if (unit === 'week') {
      return 'Week ' + time.format(f.week)
    } else if (unit === 'day') {
      return time.format(width < 150 ? f.dayShort : f.dayLong)
    } else if (unit === 'hour') {
      return time.format(width < 50 ? f.hourShort : width < 130 ? f.hourMedium : width < 150 ? f.hourMediumLong : f.hourLong)
    } else {
      return time.format(f.time)
    }
  }

b)
subHeaderLabel (time, unit, width) {
    const { subHeaderLabelFormats: f } = this.props

    if (unit === 'year') {
      return time.format(width < 46 ? f.yearShort : f.yearLong)
    } else if (unit === 'month') {
      return time.format(width < 37 ? f.monthShort : width < 85 ? f.monthMedium : f.monthLong)
    } else if (unit === 'week') {
      return 'Week ' + time.format(f.week)
    } else if (unit === 'day') {
      return time.format(width < 47 ? f.dayShort : width < 80 ? f.dayMedium : width < 120 ? f.dayMediumLong : f.dayLong)
    } else if (unit === 'hour') {
      return time.format(width < 50 ? f.hourShort : f.hourLong)
    } else if (unit === 'minute') {
      return time.format(width < 60 ? f.minuteShort : f.minuteLong)
    } else {
      return time.get(unit)
    }
  }

In utils.js

a)
export function getMinUnit (zoom, width, timeSteps) {
  let timeDividers = {
    second: 1000,
    minute: 60,
    hour: 60,
    day: 24,
	week: 7,
    month: 30,
    year: 12
  }

b)
export function getNextUnit (unit) {
  let nextUnits = {
    second: 'minute',
    minute: 'hour',
    hour: 'day',
    day: 'week',
	week: 'month',
    month: 'year'
  }

  return nextUnits[unit] || ''
  }

What I noticed:

It's not possible to change from week to month and year on header clicks
It's possible to zoom to month and year by pinching
The week starts from Sunday until Saturday
The header is not localizable (of course...)

My wishlist for the calendar:

A property to add other units like "week" or "quarter year"
Week definition according iso standard ( in momentjs "isoweek" ) from Monday to Sunday
Localization for Header title
Nice to have: A way to zoom out by click (e.g. from week to month to year)

hey @kmueller!
I like your correction! I just read the code quickly but would like to give it a run. I think I can use it also in my project.
If @mariusandra agrees I would like to have your code also in the master branch here.
Contributor
I could take your code and copy it to the files. But then I get the credit for your code (git tracks it). And I always like when people get credit for their work. Plus I like to have new contributors to this repo. So if you like you could also do a Pull Request. Did you do that before? The steps would be:

fork this repo
clone your repo to your local machine
create a new branch and do the corrections
push that branch to your github-account
do a pull request

With that behaviour you get the credits and you become a contributor (plus you make our live easier :). Sorry if I explained you steps you already know.
But please wait for the opinion of @mariusandra if we wanna have it in master.
Your Wishlist
Nice!

A property to add other units like "week" or "quarter year" → it would be good to have something like a configuration for that! Maybe control that via timeSteps (don't ask how... :) what would you suggest @mariusandra ?
Week definition according iso standard ( in momentjs "isoweek" ) from Monday to Sunday → see last point
Localization for Header title → you mean according to your language?
Nice to have: A way to zoom out by click (e.g. from week to month to year) → I would solve that by an additional component that controls defaultTimeStart and defaultTimeEnd. But it would also be cool to have that on a elegant position in the component. Would you have an idea for it?

Github-Comments
No critics at all! We love to hear from you no matter how. But probably you didn't know. If you have something like:
{
  test: 1
}

and you past it with no editing you get:
{
test: 1
}
just write:
```js
{
  test: 1
}
```

then you get the correct formatting:
{
  test: 1
}

I changed your comment to give it code-formatting and get colorzzz 😍

@signalwerk Thanks for your comment! Contributing is new to me, so thanks for the steps. I'd like to make life easier for you, credits are not important. So -> next time ;-) I'll give it a try. This time it maybe makes sense that you invent some kind of configuration before including the "week" and take over the changes as you like - otherwise the current behavior of the calendar with day/month/year will be broken.
Localization is on the list because I didn't succeed to concatenate a string to the momentjs format 'W' (e.g. week: 'Week W' in the header label format results in a strange output). I'd like the header to display "Week 26" in locale en, or "Woche 26" for locale de.
The last point with the "zoom out by click" is really difficult, because the component wins because of its "simplicity" i.e. the less buttons the better (but that's my opinion). I have no good idea in the moment that's why I said "nice to have"...

Subscribing to this issue as this is a feature that I need to implement as well.

@kmueller any movement on this?

@t-hughes Hi Talon, sorry for the late reply (holiday season...). I also don't know if there are some plans to integrate "weeks" by a new configuration feature.
Regarding your question about the gray borders I am not quite sure if I understand you right: Is the styling in my example other than you expected? (I took the screenshots from some other project than the default example)

Hello there,
Week unit is a common feature for plannings and alike.
Is there any plan to integrate it to RCT?
Thanks.
J.

@kmueller do you mind publishing your above code/snapshot related? I'd like to give it a shot.

@jabidof Hi, everything I changed in the code can be found in the original post above. I personally did not create a regular React component from it, but I used the build configuration from gabriel-deliu to create a JavaScript library...

@kmueller
Thanks
Enjoy the weekend

hey @jabidof i implemented @kmueller s changes in this branch - https://github.com/namespace-ee/react-calendar-timeline/tree/feature/weeks-view
The logic that still needs to be tweaked is in this file - https://github.com/namespace-ee/react-calendar-timeline/commit/ad279d244a9d940e28aa0e2a49fbc92ece79c42f#diff-cb66ba9b01505371573edba866680f91
That details the commit of changes i made to get weeks to show when you toggle/click the header.  When i find time, I am going to work on this too but right now:

when in "day: hour view", clicking the day brings us to "week: day" view.  This is correct behavior IMO
when in "week: day view", clicking the week causes us to stay in "week: day: view, but it expands the timeline range. This seems like a bug to me. Clicking on the header should ALWAYS change the units in the header

I think we need to heavily refactor getMinUnit and maybe change how units are changed when clicking in the header.  good luck and let me know what you find out after digging into the code.

@mcMickJuice thanks very much for the input. I'll do my homework soon to test it and dig in the code.
Currently I'm having some difficulties managing big amount of items (~5k) in the timeline. I noticed it re-renders a lot although nothing changed except the time scale.
I tried using recompose (https://github.com/acdlite/recompose) without success till now.
Except fullUpdate={false} is there a way you could point me to to avoid some re-render and make it smoother?

re: performance, lets take the discussion over to issue https://github.com/namespace-ee/react-calendar-timeline/issues/247

@jabidof what are your use cases when you see performance degradation in the timeline?

Closing in favor of https://github.com/namespace-ee/react-calendar-timeline/issues/361.  All discussion will continue over there.

Sorry about necrobumping, but I'd like to know if the point about making Monday the first day of the week was addressed anywhere and if so, how I can enable it.

first day of the week

Did you find a solution?

Sorry about necrobumping, but I'd like to know if the point about making Monday the first day of the week was addressed anywhere and if so, how I can enable it.

@azeghers  Did you find a solution?


Using maven-checkstyle-plugin

To use linters, jnxplus plugins downland jars from checkstyle and ktlint from github releases. I thought this technique was stable but we still receive issues.
I want to try the following technique and see if it's fit nx monorepo:
https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/multi-module-config.html
To lint a project, we can use run-task from jnxplus.
Lint executor will not be removed for now, but will just display a massage to use maven-checkstyle-plugin instead

1- Create a lib for checkstyle linting
2- add maven-checkstyle-plugin to root pom.xml
3- add target config to nx.json
    "maven-checkstyle-lint": {
      "cache": true,
      "dependsOn": [
        {
          "projects": ["build-tools"],
          "target": "build"
        }
      ]
    }

4- add target to project.json
    "maven-checkstyle-lint": {
      "executor": "@jnxplus/nx-maven:run-task",
      "options": {
        "task": "checkstyle:check"
      }
    }

code is here https://github.com/khalilou88/jnxplus-examples


Linux kernel starts to warn about executable stack which is not necessary.

Seems small assembly decoration is needed? https://wiki.ubuntu.com/SecurityTeam/Roadmap/ExecutableStacks
dmesg> process 'tmp.OWk4ps2HhT/OpenBLAS/getarch' started with executable stack
certainly on rawhide and tumbleweed x86_64 incarnations, no idea when it started, no change in overall behaviour, no danger on being force-fed with no-exec stack in future.

Would anybody seriously consider getarch as an attack vector ? As there as no reason to assume that any distribution packager will include it, the impact should be infinitesimally low.


How to get X and Y position of the cursor in StyleClassedTextArea?

I have a StackPane with StyleClassedTextArea in it. And in some cases I need to create another Pane over text area in this StackPane. And I need exact positions (X and Y) of the cursor relatively to text area top left corner. Could anyone say, how to do it?

Have you tried area.getCaretBounds() ?

@Jugen No, I missed this method. I've just tested it:
        var bounds = textArea.getCaretBounds().get();
        System.out.println("X:" + bounds.getCenterX() + ", y:" + bounds.getCenterY());

But as I understand I get X and Y relatively to the top left corner of monitor screen. But if this is possible I would like to get them relatively to text area top left corner. Or I do something wrong?

@Jugen Yes, now what I need. Thank you very much for your help.


builtins: miscellaneous fixes for the to_hex builtin

PR: https://github.com/cockroachdb/cockroach/pull/44016
From release notes:

Added to_hex(string) string functionality. [#44016][#44016] {% comment %}doc{% endcomment %}

Picked up by #6470.


cython bindings

In-progress cython bindings. Current version is 0.0.* while developing. Runs and passes the current h3-py testsuite. As far as I can tell implements the full 3.4.2 H3 API, but would appreciate input and
feedback before cutting the 3.4.2 release.
Mac / Linux wheels available on PyPI for testing:
pip install h3cy

Coverage remained the same at 100.0% when pulling b1acf95eb2836a708d86ebabadacbefa4ee28ebb on kwmsmith:update-bindings into 3cefb928e30553a0e50be69b1eb1008536d5297e on uber:master.

Heh, well, I guess I didn't do enough due-diligence.  I looked around on h3-py's issues for "cython" but didn't find anything -- should have looked at branches.
Yes, I'd be willing to merge my code to h3-py, although it remains to be seen whether that merge would improve things much.  From a quick glance, it looks like your cython bindings are further along than h3-cython at this point.
I do see some possible improvements, all up for discussion.  I'll open an issue on uber/h3-py for discussion there.

I'll close this for now since I understand the discussion is ongoing at uber/h3-py. Feel free to reopen if you'd like to suggest this as an alternate to h3-py.


New version to support @hapi/good

hapi is moving to using scoped packages (https://www.npmjs.com/package/@hapi/hapi) and upgrading breaks the peer dependency check.
I'm not sure if you can conditionally target two packages of different names, so this may require creating a new major version that tracks the @hapi packages in parallel.

I think the peerDependency could be removed and just leave the compatibility note on the README as it is. It's also a good chance to update the other Hapi dependencies to scoped packages as you mentioned. Would you mind making the change?

I'm already working on it. I hope to have it complete by my end of day.

Does that PR look good to you?

Sorry. I've been busy until now. I updated the PR with a few comments.

PR updated


fix: update IAM policy for ALB controller

Summary
This is required for the AWS load balancer
controller v2.4.1 upgrade.
For reference, the AWS load balancer controller pods
are being provided access to this IAM policy through
inheritance via the EKS worker node.
Related

cds-snc/notification-planning#643
cds-snc/notification-planning#555

It's the upgrade that requires these new permissions?

It's the AWS Load Balancer Controller upgrade that needs these permissions, and we need to do this upgrade before going to Kubernetes 1.22.


tf.tuple usage exaple

Its will reviewed  google code in mentors

@CREVIOS thank you, it is failing doctest can you please check here for logs.
Please run the doctest locally as mentioned here in the contributor guidelines.

@CREVIOS Any update on this PR, please. Thanks!

It has been 15 days with no activity and the awaiting response label was assigned. Is this PR still valid? Assigning the stalled label. Please comment to reassure me that this is still being worked on.

I'm going to go ahead and close this PR, because it seems to have stalled. If you're still interested in pursing this (and responding to my comments), please feel free to reopen!


Validation failed when creating a service

Describe the bug

Steps to reproduce

Create a service using kubernetes-containerservice template.

Result

Failed to create. Validation failed.

Checked the ui schema from api response. Profile is not required.

Expected behavior

Environment

Walrus version: main 0bde30233f43610dfcdcdaa3d925982fb461f07b
UI version: dev-784f2b6

Additional context
Add any other context about the problem here.

Environment

Walrus version: main 0ce7516077eac143abadf67373426215f867d593
UI version: dev-90d701d

Test Result: pass


Add collector test

Write expected test values for showlists and query config

cc @SuperQ

Thanks! Would you mind adding a GitHub Actions that will run the tests?

Never mind, it seems we run tests on Circle CI here.

Thanks, this is great!


Exception: Circular link detected

Get this error when try to shift sub. Is there any workaround for this?
Sample:
http://www.datafilehost.com/d/97bfce15

This is a bug but you'll have to provide both audio files and the script. More info here: https://github.com/tp7/Sushi/wiki/Common-errors#how-to-report-a-bug

here another audio with cli script:
http://www.datafilehost.com/d/5d3ab891

The subtitles script, not the cli script... How am I supposed to fix something in subtitles without said subtitles?

sub: http://www.datafilehost.com/d/4026525c

Just updated the Windows build, you can redownload it here. Should fix your issue.

Yeah its working fine. Thanx


Schema metadata should be friendly to automated parsing

Current format for metadata stored in schemas contributed by the "adelphi" tool is a homegrown format designed for ease of reading... but it isn't super-easy to parse in an automated fashion:
//Schema metadata:
//@created_at = 2020-12-10T09:52:39.793838
//@github_user = absurdfarce
//@hashed_ks_name = 9oeoJFuUPUpGOIjokdIIuwsJcmGny03H8MyjkovpV4w=
//@dc-count = 1
//@host-count = 1

This should be converted to something more friendly to programmatic parsing

Another option here would be to decouple schema and metadata.  Create a separate metadata file using some well-known name or in some well-known location containing metadata for each schema.  The schema file can then be pure content and the metadata file could be something very parse-friendly: JSON, TOML, whatever.
Think how Maven or Gradle structure their package repositories, something like that

That approach would definitely solve the formating question.  We could go with some straightforward like json or yaml in a plain file.  I'd think the challenge might be how to preserve the linkage between the two files.
Maybe create a directory for each schema and put the two side by side, the metadata could contain a reference to the schema file path perhaps?
user ->
hashedschemaid ->
hashedschemaid
hashedschemaid.metadata.json
Something like that? What are you thinking?

I haven't formed a really good opinion yet but I was considering something along the lines of what you're describing @jdonenine .  I was thinking a directory per schema; that directory would contain the raw schema file and the metadata file as discrete files.  The schema file would just be a straight text file (containing CQL/Gemini depending on what was selected for export) while the metadata would be... probably JSON to keep it simple.  We can just use well-known names for the files within the schema directory... something like "schema.txt" and "metadata.json" should work.
The big advantage I see to something like that is it provides a clean avenue for future expansion.  By keeping schema-specific files in their own directory you create isolated spaces where you can do interesting things going forward.  So say at some point you want to track versions of an individual schema over time you could do so; you'd need "schema-timestamp.txt" for a resource name, but you see where I'm going with this.


fix: new ca & server certs, bundle in .js file and unpack for testing

New certs, expiry of 9999 days which should give us some breathing room eh? Hopefully node-gyp won't exist by then.
Bundling in certs.js rather than including the raw files should avoid some false positives that low-quality security scanners keep on complaining about .. I hope, but for all I know they're also looking for --- BEGIN .* in any file and might complain about that.
fix https://github.com/nodejs/node-gyp/issues/2645

Not sure why this start to fail
# Subtest: test/test-addon.js
    # Subtest: build simple addon
        1..3
        # test count(0) != plan(3)
        # failed 1 test
    1..0 # no tests found
    1..0 # no tests found
not ok 1 - test/test-addon.js # time=1[20](https://github.com/nodejs/node-gyp/runs/6381965496?check_suite_focus=true#step:6:20)007.527ms

I doubled the timeout and still got ~half of the windows machines failing, so I bumped it up to 10 minutes and now I have all greens
that's pretty garbage, maybe GitHub's runners are slower? But it's green at least so I'm calling this good.


As a user, I want to filter library members by gender so that I can see the gender composition of library members.

testing notes:
designs
desktop / tablet / mobile, with selected choice
notes

this is currently called "sex" in some places; it's likely that it will change to "gender" everywhere very shortly.
note that we haven't done the styles for the tabs ("demographics", "books", etc) that group the different filters on desktop and tablet; that will be tracked on #287 . right now you'll just see the facets in a white box below where the tabs would be.
make sure the style on mobile looks right, since it's unique to this type of filter.
try clicking one or two choices and you should see the results change automatically, without the page reloading.
if you enable a different filter, like "has card", the counts for each of the choices should change. however, selecting more than one choice shouldn't change the counts.
if you enter a keyword search, that should update the counts too.

On desktop/laptop: gender count changed when try "male" or "female," and changes when I click "has card"
adjust itself without reloading when I release the "male" "female" "unknown"

On Mobile: filter DOES NOT work. I am able to click "has card" and the results narrow right away, including gender numbers. But then when I try to press "male," "female," "unknown," nothing changes - I am still getting all results for all genders down below - in spite of the green check

Was able to confirm the problem on an iPad; have tested again after @thatbudakguy's fix and can confirm it's working.


Most project compile on OS X

I had to go through and manually replace all \ to /. That was time consuming, but easy.
I replaced all the nuget stuff with Paket to get control of the packages. There was an out-of-date package, MathNet, that used both 3.5 and 3.6 and both the unsigned and the signed nuget. I fixed that to use the later and signed one. Since then it seems 3.7 is out though, and paket update should be run.
Some lingering errors:

chapter 1 - Visualizer uses Windows Forms, this probably can only be fixed by replacing Windows Forms with something else.
chapter 3 - The type provider does not agree with the schema
chapter 4 - FSharp.Charting is not cross platform, see
https://github.com/fslaborg/FSharp.Charting/issues/29\#issuecomment-55056158
chapter 8 - dependency on a binary Windows-based nuget, added linux
nuget, haven't tested yet

The link for FSharp.Charting leads to a rabbit hole that ends up with XPlot that plots in the browser; however, since @tpetricek wrote in that thread it seems they've made some, but not all, progress to make Gtk bindings work on OS X. However, this code-base still needs to pull in that nuget for it to work, and that hasn't been done in this PR.
For the KML reference, these are the docs and they provide good guidance on how to make it work cross platform. I added the linux package for x64; this will require you to use homebrew on OS X to install the x64 version of mono brew install mono.

Dude - thanks a ton for this, it's awesome. I need to take a detailed look first, but expect to merge that in the next couple of days. Thank you!

Ping?

Hey Henrik,
Sincere apologies for the delayed reaction. Your PR triggered a longer-than-expected train of thoughts, specifically around Paket. In the book, after some debate, I decided to stick with straight nuget, even though I am a Paket fan. Now this re-opened that question, with a secondary one: how should I handle the fact that the repo will diverge from the code in print?
Anyways, merging in - I think the move to Paket is right, especially in the context of scripts; and diverging from the original is the point of having this repo, to fix and improve, so I just tagged the original version.
Big thanks! And sorry again for being slow.

@mathias-brandewinder Thanks for merging; looking forward to when this all runs on mono off the shelf :) – I'm going to go through this at some point and fix it all.


Update roundTripper in sqlitehttpcli.go to support file:// URIs

For example:
> ~/go/bin/go1.17rc2 run sqlitehttpcli/sqlitehttpcli.go -url file:///usr/local/data/sfomuseum-architecture.db -query 'SELECT id FROM geojson LIMIT 10'
row: [1159157037]
row: [1159157039]
row: [1159157041]
row: [1159157045]
row: [1159157047]
row: [1159157049]
row: [1159157051]
row: [1159157053]
row: [1159157055]
row: [1159157057]

I considered moving roundTripper in to its own public-facing package but decided against it for this PR. "One thing at a time" and all that :-)

Thanks!


modified the 'exec' action to allow arguments to be passed

#118

Coverage remained the same at 83.129% when pulling 6859e7b0434275083d7492d846d4cc37b285cd0d on z3t0:develop into cb2ca5afe6e4daae6879b036b668dbeb8c7a2359 on vutran:develop.

Feel free to let me know if you want an example of how this is used. I am currently working on a plugin that allows running terminal commands from within dext and that's where I needed an argument to be passed

@z3t0 let me know if you need help with the requests. Otherwise I can merge what you have in this weekend and we can go from there. ☺

@vutran I think this PR is pretty solid as it does exactly what I intended, which is to pass arguments, and nothing more.
Unless you have any changes you'd recommend I think we could go ahead with the merge

@z3t0 Yeah, there's only 2 things really (here, and here). Hopefully, I'm not being too nitpicky.

Ah this is my fault. The review was in draft mode the entire time! D'oh!

@vutran ah, yes I felt like we might not have been on the same page

Coverage remained the same at 83.129% when pulling 470a2e451f63a608398acd727dae263c68a374e5 on z3t0:develop into cb2ca5afe6e4daae6879b036b668dbeb8c7a2359 on vutran:develop.


Bump to using min version of 0.14.1

This will be needed for @johnynek ijar build and it. Also should avoid having to comment out lines in the tools/bazelrc

Added https://github.com/bazelbuild/rules_scala/issues/542

Current only failure here looks like a download failure on travis, could someone with the perms re-kick that job ?

I’ll re kick in 10 minutes.
On Tue, 26 Jun 2018 at 20:22 ianoc-stripe<EMAIL_ADDRESS>wrote:

Current only failure here looks like a download failure on travis, could
someone with the perms re-kick that job ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/pull/541#issuecomment-400396174,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIF1jsVI2oHID_oewoDWLM8rv7qWWfks5uAm3qgaJpZM4U4KQc
.

Thank you!

I'd like to hold just a bit on the 0.14 migration because our biggest scala repo is not yet there and I'm trying to get the aspect based thrift generation into production (as part of a big migration on our thrift generation).

I'm going to merge this when it goes green. It is blocking pretty much all the changes we want to make, and 0.13 is pretty old at this point.
Thanks @ianoc-stripe


Suggestion: Encounter.class.display will be more useful than code

Epic uses an internal code system for encounter.class that has numbers as codes.
Suggest updating cumulus_library/studies/core/encounter.sql to use display rather than code on line 52

Related to additional Encounter elements #31
https://github.com/smart-on-fhir/cumulus-library/issues/31


⚠ Website Unmer has degraded performance

In 9b706ef, Website Unmer (https://unmer.ac.id/) experienced degraded performance:

HTTP code: 200
Response time: 15925 ms

Resolved: Website Unmer performance has improved in 90c91f2.


Upgrade to go 1.7

Upgrade go within Godeps.
Move all dependencies to vendor.

Travis is failing because there's no .travis.yml file. See #15

Looks good! Thanks for keeping language versions up to date. Merge at will, then go ahead with #15.


Object.<string,*> seems confusing.

In the JSDoc types table I don't understand   having e.g.:
{Object.<string, number>}

All objects in JS are keyed by strings, unless they're Arrays. Is this somehow related to features coming in ES6?

Adding a new type-expression syntax to JSDoc is no guarantee that your IDE vendor of choice will choose to support that syntax.

From my time spent in the PhpStorm issue queue, I am quite convinced that IDE developers look at projects like this one for guidance. Of course not everything gets implemented immediately, but feature requests have a better chance if they can point to an example from the outside world.

One more idea I have is type_expression{}. Not sure if this conflicts with anything..
/**
 * @type string{}
 */
let colors = {
  red: '#ff0000',
  green: '#00ff00'
}

bq. A bigger concern, which I chose to omit from my last comment, is that I don't want JSDoc to end up with a bunch of obscure type-expression syntaxes that have no meaning outside of JSDoc. I'm also not interested in leading the charge to come up with a different type-expression syntax. Even if I was, I don't think that incrementally adding stuff to JSDoc is a good way to make that happen.
Sad :(
I am not familiar enough with the Javascript world to see where such innovation could happen if not here. But it has not happened yet, it seems..


Readme: update importing instructions

expect = require('expect') doesn't work anymore. See #72.

Thanks for the contribution! However, the proper fix is to not use ES6 export in the entry point - it wouldn't be acceptable to force users to deal with babel's choice of ES6/CJS interop.

completely agree. Just put this out there in case @mjackson is adamant to want to use export default expect :)

no worries :-) if that's the case then my fix can be reverted and we can find and add a babel transform plugin (https://www.npmjs.com/package/babel-plugin-add-module-exports won't work because there's named exports also :-/)

Thanks for the suggestion, @rstacruz. I'm not adamant about wanting export default. I just didn't realize that using extra named exports in that file would change anything about the default export. What's odd to me is that people can still import { assert } from 'expect', for example, even without the named exports. Guess I still have some stuff to learn about ES6 modules and interop with Babel.


Issues with Impact Reactor on 16x speed

So i had an issue with the impact reactor whilst playing the game on 16x speed. In detail, on 1x speed i would produce more cryofluid than i needed (like nearly double) but on 16x speed, the reactor would run out of cryofluid really quick and shut down. I made some videos of it, but they are too big to upload here so if you want them just contact me over discord: mateo150
Otherwise the mod worked great and i can only recommend using it

So I figured out what caused this problem and made it a new issue with fixed title


Modify error object to contain a source pointer when "non_field_errors" in DRF response

See discussion in #108
Instead of using meta to store the non field errors key, we will use the source object (to be consistent with validation errors)
{
  detail: "non field error goes here",
  source: { pointer: "data" },
  title: "General error"  // need better phrasing here, Maybe Non-field errors?
}

Now that #114 is merged we can take another look at this.

Yes, sorry long time.  I'll revisit this during the weekend and open a PR


PubSub AWS SNS/SQS - Disable Entity Management

Describe the feature
Similar to PubSub Azure Service Bus component metadata field disableEntityManagement - for users who prefer to provision their cloud resources outside of the Dapr context with tools such as Terraform, CloudFormation or any other infrastructure provisioning/management tool, be able to toggle off the creation of SNS topics, SNS-SQS subscriptions and SQS queues.
Release Note

RELEASE NOTE:

I've finished implementing this but waiting for other PR's to finish

Thanks for this! merged.


mweb-From "chat with concierge" page, when navigates back directed to Workflows page

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

Version Number: 1.4.70-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause internal team
Slack conversation:
Action Performed:

Go to https://staging.new.expensify.com/
Tap profile --- workspaces --- new workspace
Tap more features
Enable Workflows
Tap Workflows -- connect bank account -- update to USD
Tap help question mark on top left
On Get assistance page, tap "chat with concierge" and tap back
Note user directed to workflow page
Tap schedule a set up call and tap back
Note User correctly navigated back to get assistance page
Tap explore help docs and tap back
Note User correctly navigated back to get assistance page

Expected Result:
From "chat with concierge" page, when navigates back must directed to Get assistance page.
Actual Result:
From "chat with concierge" page when navigates back directed to Workflows page instead of Get assistance page.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/43996225/0733fe50-9436-44c9-a0dd-8b4804786377

View all open jobs on GitHub

@twisterdotcom FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors.

This was assigned after I finished work on Friday. I will be OOO all next week.

Proposal
Please re-state the problem that we are trying to solve in this issue.

From "chat with concierge" page when navigates back directed to Workflows page instead of Get assistance page.

What is the root cause of that problem?

In here:
https://github.com/Expensify/App/blob/8383d80013cf61e83fc8bd90eef5f8357f69cf91/src/pages/GetAssistancePage.tsx#L40
we use shouldDismissModal: true when navigating to concierge chat, leads to the Get assistance page is dissmissed, so when going back from concierge page, it redirects to Workflows page

What changes do you think we should make in order to solve the problem?

We can call Report.navigateToConciergeChat(true) in case of desktop device (!DeviceCapabilities.canUseTouchScreen(): true). Otherwise, using Report.navigateToConciergeChat()

What alternative solutions did you explore? (Optional)

NA

I think this might be part of guided setup - adding to wave-collect.

Sorry - I'm still trying to test this.. I think we want to update the "Get Assistance" page off the Bank setup

To match the "Get Assistance" page - but I can't figure out where this page exists... testing

Asking QA for a buddy check on the expected behaviour - https://expensify.slack.com/archives/C9YU7BX5M/p1715151549856419

The issue is about navigating back after clicking different options in Get assistance page.

Tapping "Chat with Concierge" and pressing Back button redirects to "workflow page"
Tapping "Schedule a setup call" and pressing Back button redirects to Get assistance page
Tapping "Explore help docs" and pressing Back button redirects to Get assistance page

Discussing with QA - https://expensify.slack.com/archives/C9YU7BX5M/p1715241694798869?thread_ts=1715151549.856419&cid=C9YU7BX5M

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

Video added and OP updated. Hope it will help.
https://github.com/Expensify/App/assets/43996225/2ab877e5-9572-488f-a9f4-3d3f447c015e

Ah yes, that is helpful, I'll rewrite the OP steps based on this narrowed scope of the Android app.

updated the OP I think this can be external

@eh2077 can you check out the proposal? https://github.com/Expensify/App/issues/41610#issuecomment-2095541277 TY!

Sure, reviewing proposal!

@nkdengineer 's proposal looks good to me. I think it makes senses to only dismiss modal when it's wide screen.
🎀👀🎀 C+ reviewed

Not overdue, waiting for @roryabraham 's review on https://github.com/Expensify/App/issues/41610#issuecomment-2113069509

Reached out to Rory to see if he can take a peek!

looks good, but I agree with @eh2077 that we would dismiss the modal only on wide screens, as opposed to only on devices with touchscreens.

@eh2077 this PR is ready for preview

monitoring PR - https://github.com/Expensify/App/pull/42459

Payouts due:

[ ] Contributor: $250 @nkdengineer (Upwork offer - https://www.upwork.com/nx/wm/offer/102682462)
[ ] Contributor+: $250 @eh2077 (Upwork offer - https://www.upwork.com/nx/wm/offer/102682469)

Upwork job is here.
Do we need a regression test for this?

Checklist

[x] [@eh2077] The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/40708
[x] [@eh2077] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/40708/files#r1634296913
[x] [@eh2077] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/A
[x] [@eh2077] Determine if we should create a regression test for this bug. Yes, I think we can add a regression test for this because it's related to bank account page.

=== Mobile ===

Enable Workflows
Tap Workflows -- tap connect bank account
Tap help question mark on top left
On the Get Assistance page, tap "chat with concierge" and tap device back button
Verify that: user is directed to get assistance page

=== Web/Desktop ===

Enable Workflows
Tap Workflows -- tap connect bank account
Tap help question mark on top left
On the Get Assistance page, tap "chat with concierge"
Verify the composer is focused (only on web/desktop)

Do we agree 👍 or 👎
cc @Christinadobrzyn

LGTM! Regression test - https://github.com/Expensify/Expensify/issues/404152
@nkdengineer feel free to accept this offer and I'll pay you - https://www.upwork.com/nx/wm/offer/102682462

@Christinadobrzyn Thanks a ton, accepted!

Paid you @nkdengineer based on our payment summary
Going to close this


Clarify wieght traits needed to impl in example

Discovered inconsistency with devhub here: https://github.com/substrate-developer-hub/substrate-developer-hub.github.io/pull/1125
Add a required third trait in the docs as evidenced here:
https://github.com/paritytech/substrate/blob/eded99055e32c1b096993b94b38d3f6e04237c18/frame/example/src/lib.rs#L324-L349

bot merge


Write dev test tooling.

Write tooling in top level folder that makes it easier to run, build and test all sub project from one place.

[ ] Top level build. "npm build"
[ ] Run all tests "npm test"
[ ] Add code coverage report to tests.
[ ] "npm starts" starts a devtest sever with back and front end as one simple command. Using minimal configuration.

Obsolete task. Closing


nix build: sandbox script error

Preliminary Checks

[X] This issue is not a duplicate. Before opening a new issue, please search existing issues: https://github.com/MinaProtocol/mina/issues
[X] This issue is not a question, feature request, RFC, or anything other than a bug report. Please post those things in GitHub Discussions: https://github.com/MinaProtocol/mina/discussions

Description
When building using nix, and attempting to run the sandbox node; there is an environment variable error
Steps to Reproduce

Build using the nix pure build
cd mina
touch demoConfig.sh and copy this script (which is an edit of this) into it:

#!/bin/bash

# Demo keys and config file
echo "Running Mina demo..."
MINA_CONFIG_DIR=${MINA_CONFIG_DIR:-/root/.mina-config}
MINA_CONFIG_FILE="${MINA_CONFIG_DIR}/daemon.json"

export PK=${PK:-"B62qiZfzW27eavtPrnF6DeDSAKEjXuGFdkouC3T5STRa6rrYLiDUP2p"}
SNARK_PK=${SNARK_PK:-"B62qjnkjj3zDxhEfxbn1qZhUawVeLsUr2GCzEz8m1MDztiBouNsiMUL"}

CONFIG_TEMPLATE=${CONFIG_TEMPLATE:-daemon.json.template}

rm -rf /root/keys
mkdir /root/keys && chmod go-rwx /root/keys
mkdir -p --mode=700 ${MINA_CONFIG_DIR}/wallets/store/
echo "$PK" >  ${MINA_CONFIG_DIR}/wallets/store/$PK.pub
echo '{"box_primitive":"xsalsa20poly1305","pw_primitive":"argon2i","nonce":"6pcvpWSLkMi393dT5VSLR6ft56AWKkCYRqJoYia","pwsalt":"ASoBkV3NsY7ZRuxztyPJdmJCiz3R","pwdiff":[134217728,6],"ciphertext":"Dmq1Qd8uNbZRT1NT7zVbn3eubpn9Myx9Je9ZQGTKDxUv4BoPNmZAGox18qVfbbEUSuhT4ZGDt"}' > ${MINA_CONFIG_DIR}/wallets/store/${PK}
chmod go-rwx ${MINA_CONFIG_DIR}/wallets/store/${PK}
echo '{"genesis": {"genesis_state_timestamp": "${GENESIS_STATE_TIMESTAMP}"},"ledger":{"name":"mina-demo","accounts":[{"pk":"'${PK}'","balance":"66000","sk":null,"delegate":null}]}}' > ${CONFIG_TEMPLATE}

if [ -z "$GENESIS_STATE_TIMESTAMP" ]; then
    export GENESIS_STATE_TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
fi
echo "Genesis State Timestamp for this run is: ${GENESIS_STATE_TIMESTAMP}"

echo "Rewriting config file from template ${CONFIG_TEMPLATE} to ${MINA_CONFIG_FILE}"
envsubst < ${CONFIG_TEMPLATE} > ${MINA_CONFIG_FILE}

echo "Contents of config file ${MINA_CONFIG_FILE}:"
cat "${MINA_CONFIG_FILE}"

MINA_TIME_OFFSET=${MINA_TIME_OFFSET:-0}
MINA_TIME_OFFSET=${MINA_TIME_OFFSET:-0}

MINA_PRIVKEY_PASS=${MINA_PRIVKEY_PASS:-""}
MINA_PRIVKEY_PASS=${MINA_PRIVKEY_PASS:-""}

cd _build/default/src/app/cli/src
./mina.exe daemon --generate-genesis-proof true --seed --demo-mode --proof-level none --config-dir ${MINA_CONFIG_DIR} --block-producer-pubkey ${PK} --run-snark-worker ${SNARK_PK} -insecure-rest-server $@

rc=$?
echo "Exiting Mina demo." && exit $rc

nix develop mina#with-lsp -c code .
sudo ./demoConfig.sh

Expected Result
A running sandbox node
Actual Result
Error:
Running Mina demo...
Genesis State Timestamp for this run is: 2022-08-17T11:11:20Z
Rewriting config file from template daemon.json.template to /root/.mina-config/daemon.json
Contents of config file /root/.mina-config/daemon.json:
{"genesis": {"genesis_state_timestamp": "2022-08-17T11:11:20Z"},"ledger":{"name":"mina-demo","accounts":[{"pk":"B62qiZfzW27eavtPrnF6DeDSAKEjXuGFdkouC3T5STRa6rrYLiDUP2p","balance":"66000","sk":null,"delegate":null}]}}
2022-08-17 11:11:20 UTC [Info] Mina daemon is booting up; built with commit "__commit_sha1___________________________" on branch "<unknown>"
2022-08-17 11:11:20 UTC [Info] Removing lockfile for terminated process
2022-08-17 11:11:20 UTC [Info] Booting may take several seconds, please wait
2022-08-17 11:11:20 UTC [Info] Reading configuration files [ "/root/.mina-config/daemon.json" ]
2022-08-17 11:11:20 UTC [Info] Initializing with runtime configuration. Ledger name: "mina-demo"
2022-08-17 11:11:20 UTC [Info] Using the compiled constraint constants
2022-08-17 11:11:20 UTC [Info] Loaded genesis ledger from $ledger_file
        ledger_file: "/root/.mina-config/genesis/genesis_ledger_accounts_87be2b07a7b1db5afc39e20de2b7c5578b415f01afdcd11774b673c7c0065d13.tar.gz"

FATAL ERROR

  ☠  Mina Daemon encountered a configuration error loading block producer keypair.

No password was specified in environment variable MINA_PRIVKEY_PASS
Exiting Mina demo.

How frequently do you see this issue?
Always
What is the impact of this issue on your ability to run a node?
Blocker
Status
Error: Unable to connect to Mina daemon.
- The daemon might not be running. See logs (in `~/.mina-config/mina.log`) for details under the host:<IP_ADDRESS>.
  Run `mina daemon -help` to see how to start daemon.
- If you just started the daemon, wait a minute for the RPC server to start.
- Alternatively, the daemon may not be running the RPC server on (<IP_ADDRESS> 8301).
  If so, add flag `---daemon-port` with correct port when running this command.

Additional information
No response

Hey @alienflip this is known state of things. That script I mentioned to you as the reference for example not something you can use right away.
We have plans to updated it though. Meanwhile contributions are welcome.

Ah ok, so to use the script, what custom actions should be taken?

As error message is saying you can start with setting up the MINA_PRIVKEY_PASS envar.
I'll create implementation task and link it with this one.

I tried doing:
MINA_PRIVKEY_PASS=${MINA_PRIVKEY_PASS:-"101"}

In the demoConfig.sh, however, it seems this returns the same error. What exactly do you mean?

I don't remember if exec, which invokes the mina daemon, actually respects the env. variables set previously within the script it is going to replace in the end.
Hence you can try to export this var or if exporting is not an option just add it's definition before the Daemon invocation.
export MINA_PRIVKEY_PASS="<pass>"
exec mina daemon ...

or
exec MINA_PRIVKEY_PASS="<pass>" mina daemon ...

Great :)
Adding:
...
cd _build/default/src/app/cli/src
export MINA_PRIVKEY_PASS=""
./mina.exe daemon --generate-genesis-proof true --seed --demo-mode --proof-level none --config-dir ${MINA_CONFIG_DIR} --block-producer-pubkey ${PK} --run-snark-worker ${SNARK_PK} -insecure-rest-server $@
...

Seems to have worked! There is another odd thing happening with nix; but will mention it in another issue.
Thanks :)


Streaming data?

I think the last major wish list item I have for Extism would be support for streaming data. As far as I can tell this isn't currently supported, right?
My project essentially consists of an HTTP handler. HTTP request/response bodies are usually streamed, but currently I have to fully read the body before passing the request to my Extism plugin, and vice versa for the response. This isn't really a problem for my current project, but I have ideas for other wasm projects that could really benefit from streaming.
I still don't know enough about wasm to know if putting plugins in the hot path of an HTTP server would be a good idea. Maybe the overhead from the copies is too high for a fully generalized system like wasm middleware for example.

We do have some plans around supporting this as an extism primitive. I think sometime soon, we'll have support for this in either extism or xtp-bindgen: https://github.com/dylibso/xtp-bindgen. In the mean time, the primitives we have allow you to implement these higher level ideas yourself.
For HTTP there could be two possible designs:

Call the export with the minimal HTTPRequest metadata (minus the body). Provide a host function to read the body. This host function can read the whole body or read it in chunks.
if you want to stream the data in, where the host has control over when each chunk arrives, you can call an export multiple times that buffers (and or processes) the incoming data in memory and then call some other export when "done".

Both of these would require writing a little bit of wrapper code at the PDK level to hide the details from the user, but are doable.

Makes sense. Those are both good ideas. Thanks!


Add output mimetypes

Fixes #467.
cc @ellisonbg.
Adds the ability to explicitly add mimetypes to the data of an output bundle from a renderer.

I verified this by adding a png to the output from the text renderer on an execute request and making sure the data was in the saved file.

Do we need to have the extra machinery of an injection callback? Why don't we just make the mimebundle passed to the renderer the mutable original object by design? Then a renderer can just change the mimebundle however it wants?

This makes it explicit when a value can be added to the output

And follows along with our use of the sanitizer option.

And it also adds some checks, like not overriding an existing value (which may or may not be what we want...). Okay...

@jasongrout do you have more review on this or can we merge it?

@ellisonbg - still not quite happy with the design, but I'm happy to merge and look at it later/iterate.

I'll let you merge it, though, if you've tested it.

I am happy with the API for now that is in the renderer - that is the most important part. Let's merge and iterate...


Enable revocation when easyrsa version 3.0 is used

Pull Request (PR) description
This change makes it possible to revoke certificates when easyrsa version 3.x is used. There currently is an open PR open for this issue, however this has not had an update since March 2019, therefore I am opening this PR. See: #338
The remote_host parameter is set, because the expected value of
foo.example.com is not evaluated correctly on ArchLinux.
This Pull Request (PR) fixes the following issues
Fixes #331

thanks for the PR!


Usage with NEXTjs new edge middleware

Will decrypting and using the session in edge API routes be supported in the future

This is now available in 6.2.0, thanks!


Trying to checkout main or push origin main results in errors (there is no main branch)

Affected page
Set up freeCodeCamp locally
To reproduce
follow page instructions that include references to the main branch
Recommended fix, suggestions
Change references to the main branch to reference the master branch in the checkout and push lines

There is no master branch, there is a main branch. Are you sure you are cloning the right repository?

There is no master branch, there is a main branch. Are you sure you are cloning the right repository?

For some reason, when I forked it, it forked with master intead of main

It's a GitHub setting that's at fault. Go to Settings->Repositories->Repository Default Branch and change the name. Or not. Just be aware that the main branch will be forked as whatever you put there.

It's a GitHub setting that's at fault. Go to Settings->Repositories->Repository Default Branch and change the name. Or not. Just be aware that the main branch will be forked as whatever you put there.

it was already set to that, I tried reimporting, and it reimported with main


Lazy load posts

Lazy load posts inorder to improve the user experience.

Can you assign it to me


Phase Space Layout

This PR adds the phase space layout interface and a convenient user-faced API for working with coordinate maps for given processes, models, and phase space layouts.
TODO:

[x] clean up (remove the TODOs in the files)
[x] unify the calls of coordinate maps (are the different implementations for in- and out-PSL vital?)
[x] add validity checks to the interface and construction of the coordinate maps
[x] fix the docs
[x] move patch_QEDbase.jl to QEDbase

@AntonReinhard Is there anything to do with this? If not, I would like to proceed 🙆♂


Resolve PRODUCT_BUNDLE_IDENTIFIER and PROVISIONING_PROFILE_SPECIFIER for Xcode 9 export settings

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context
I ran into the issue some users are reporting in https://github.com/fastlane/fastlane/pull/9460#issuecomment-312931119. I think while implementing #9380 in #9460, projects that use xcconfig files to override PRODUCT_BUNDLE_IDENTIFIER and PROVISIONING_PROFILE_SPECIFIER build settings were not considered.
Description
If a user project uses xcconfig files to set up these build settings, XCBuildConfiguration#resolve_build_setting from xcodeproj properly resolves the value in case of variable substitution.
This PR depends on https://github.com/CocoaPods/Xcodeproj/pull/501
Sample project
Get it from: https://github.com/Ruenzuo/fastlane_xcconfig_xcode_9
xcconfig file using variable substitution looks like:
PRODUCT_BUNDLE_IDENTIFIER_Release = com.cocoapods.app
PRODUCT_BUNDLE_IDENTIFIER_Debug = com.cocoapods.app.dev
PRODUCT_BUNDLE_IDENTIFIER = $(PRODUCT_BUNDLE_IDENTIFIER_$(CONFIGURATION))

PROVISIONING_PROFILE_SPECIFIER_Release = Some Provisioning Profile
PROVISIONING_PROFILE_SPECIFIER_Debug = Some Other Provisioning Profile
PROVISIONING_PROFILE_SPECIFIER = $(PROVISIONING_PROFILE_SPECIFIER_$(CONFIGURATION))

Run on master (using latest fastlane), logs show:
Detected provisioning profile mapping: {"$(PRODUCT_BUNDLE_IDENTIFIER_$(CONFIGURATION))"=>"$(PROVISIONING_PROFILE_SPECIFIER_$(CONFIGURATION))"}

Run on fix_xcconfig_files (using this and https://github.com/CocoaPods/Xcodeproj/pull/501), logs show:
Detected provisioning profile mapping: {"com.cocoapods.app.dev"=>"Some Other Provisioning Profile", "com.cocoapods.app"=>"Some Provisioning Profile"}

I signed it!

@mjholgate @igor-makarov could you please verify if the proposed change fix the problems you mentioned on https://github.com/fastlane/fastlane/pull/9460#issuecomment-312931119?

Thanks for the fix. I'm sorry I can't test it right away. Will look at it on Sunday.

If a user does not have the latest version of xcodeproj (i.e., the one that will contain the required change to make this PR work as expected), will this new code work the same as it does now? I.e., does the currently available version of xcodebuild return the same value for resolve_build_setting("foo") as it does for build_settings["foo"]?
If it does not, we will need to either conditionalize this code to work in both cases, or else force everyone to the newest version of xcodebuild in the fastlane.gemspec.
Also, any way you can think to add testing around this code?
Thanks for the submission! 🚀

No, for this to work we need https://github.com/CocoaPods/Xcodeproj/pull/501 merged and a release of xcodeproj, so I think a gemspec bump would be appropriate.
I couldn't find test in the original implementation, so I assumed maybe there's an integration suite that contains the test for this? I'd love to add a case there if someone points me where is it. Maybe @KrauseFx knows.

Mh, I didn't add tests to it back then. If you tested this for your local setup, I can do some testing on my local machine for my projects, and we can merge. If you have ideas on how to best test it, feel free to add this to this PR 👍

Tried my example with the proposed change. It fails with
undefined local variable or method `key' for #<Xcodeproj::Project::Object::XCBuildConfiguration:0x007f9990107cb0>

Travis Build

@igor-makarov thanks for checking this! I'll have a look today.

@igor-makarov I identified the problem: I didn't consider that variable substitution used in an xcconfig file could reference build settings applied in a different level. It should work now if you update xcodeproj from my fork.
@KrauseFx I'll work on adding a more tests on the xcodeproj side, there are many cases for this 😭  so I want to get it as right as I can. I'll see if I can find the right place to add some sort of "integration" test to fastlane to check that this works, but I believe it makes more sense to add the tests on xcodeproj side.

@Ruenzuo Let me know if you need anything from me. I'm in GMT+3 FYI.

@igor-makarov did the new version of my fork worked for you?

I'll check now.

The profile got set correctly this time! 👍

@Ruenzuo apologies for taking so long to get back to you. I tried it yesterday, and I'm seeing one entry in the provisioningProfile dictionary and one unexpanded one. I'll try and dig into it more today and get back to you with what I find.

@mjholgate a sample project where I can reproduce and debug the issue would be really appreciated 😊

Hi @Ruenzuo please see the attached sample project. We have quite a complicated setup due to the fact that our app can be configured in multiple dimensions:

brand (it's a whitelabel app that can be rebranded)
production and development backends
enterprise / app store signed
various configurations for UI testing etc.

I did a little bit of digging and made a couple of observations, but I didn't understand it enough to fix it :)

I think the regex  /\$[\(|{]([^inherited].*)[\)|}]/" in resolve_variable_substitution is wrong:
a) because [^inherited] matches any variable beginning with either i,n,h,e etc. rather than matching the string "inherited"
b) the regex captures too much if there are multiple variable substitutions in a line, e.g. $(FOO).$(BAR). Making the regex non greedy with ? addressed, although I suspect this might break the nested case which I think this code currently supports e.g. $($(BAR))

Our xcconfig files weren't originally working because we had no spaces around the assignment operator, i.e. VAR="value" rather than VAR = "value". In the end I just changed our xcconfigs to be correct, so I don't think is a problem.

As resolve_build_setting recurses, it seems that base_configuration_reference/config become null, so variables defined in the configuration file aren't resolved.

Many thanks for all your help on this, it's really appreciated. Let me know if we can assist in any way.
ExpandingVariables.zip

@mjholgate thank you for the awesome feedback ❤
I've updated my fork with some updates. Some comments on your points:
1.a. I'm not a regex expert, my intention there is just to exclude inherited from the capture block so would love if you could point me how do this better.
1.b. You're right. Variable substitution was not working at all for appending build settings because of this reason. I modified the code in a way that the regex is lazy and nested values are still supported, also added tests for this.

Agree.

Yes, this is the exit condition of the recursion. base_configuration_reference means the attached xcconfig file and config is just the parsed values. If those are null, it means either the target or the project don't have a xcconfig file attached.

Thanks to your feedback I noticed another problem with my approach. The recursion starts from the target build settings and goes up to the project. If the recursion reaches to a point where the lookup happens at the project level, it is not possible to go back to the target level (at least I don't know how, will ask the CocoaPods team for help). In practice, this means that this method will fail if someone attempts to look for a build setting declared at a project level that resolves values at target level, which is the case of the sample project you sent me. If you move the value of PRODUCT_BUNDLE_IDENTIFIER to the target level this works.

@mjholgate I think I got an ugly but working solution this time. Could you check the latest master on my forks?

I have no strong opinion about this, with those kinds of changes, very often it will break some setups. As soon as multiple people can confirm that this works, we can merge it 👍

@KrauseFx thanks for the feedback. I'm waiting for @mjholgate response on the last change, then I'll try to get the Xcodeproj PR merged. We would need a released version first and a gemspec update before merging this PR.

@Ruenzuo sorry for the delay, I'll test this today!

@Ruenzuo that works perfectly, nice one, thanks so much!


Web app design

Current thinking
The current working design for the web app is shown below.

Home screen shows the area of interest with streets color-coded by what has / hasn't been surveyed. The user taps on a blockface to map to begin surveying.
User starts at one end of the street, wheeling along the curb with the direction of traffic. (We discussed and discarded the idea of manually tapping on a start location). When the user reaches a curb asset, they will pause the measurement if necessary (they might have to back up to take a clear photo), tap the start/middle/stop button to enter photo mode
The user snaps one or more photos of the asset. (The LR and other geo info can be added as a custom EXIF header to help tie the photo to the street segment.)
If the measurement is paused, it must be unpaused in order to resume surveying

Issue
This interface design is simple, sticking to one surveying screen with a handful of buttons. However, we're not getting enough info here to capture segments - we would end up with LR'd points that mark the start, middle, or end of a segment... but we don't know which points go together. We can't maintain multiple states. Because curb regulations often overlap, we can't make sense of the output with this app design. This potentially doubles the amount of work for the digitization stage, since each point is handled individually instead of as a segment.
Potential solution
To maintain multiple states, we need the buttons to be activated and deactivated, so that we're capturing a segment (and its associated photo(s)) instead of two individual points. Doing this generically (buttons named "State 1", "State 2", etc) is possible but it puts a burden on users to remember what was what. So it's preferable to do this with words, to capture whether the asset is a parking zone, curb cut, etc. Capturing the asset category also reduces the digitization workload later.
The categories need to be specific enough that users can remember what's what, but generalizable enough that we don't have clutter from overly specific buttons (or try to capture all eventualities, and end up with exceptions that don't fit).
Here's a quick sketch:

Thoughts?

Here's what I translated from Kevin's images. I tried it with a pause button but removed it after our conversations - we can think about diff ways to do that implicitly.
1.Home screen

Zoom to screen selector

Create "zone"

Zone specifier

Add photo / end zone

Capture image

Surveying screen shows zones (as offset lines)

Feedback from @morganherlocker for the above version:

i think for screens with a map, we'll want to be real careful with arrangement to make things accessible. pinch zoom in particular can be tough on narrow maps, so im wondering if a layout that puts buttons below the map could work
also wondering if we need the map on the main rolling screen (need a better name for this). maps generally dont work on a phone unless they are full screen or close to it
idk if this would work or not, but the ideal layout would be to have a progress bar instead of a map [on the rolling screen]. ("ideal" from a layout and performance perspective; not necessarily from a visualization perspective). stuff like [screen 7] could get really messy, since the zoom is not fixed. I'm wondering if a simplified vizualization might be better.
Re: pause button [which we decided to kill]. last note, i'm still kinda wondering what the point of pause and unpause is. if the wheel is getting moved around and not set down in exactly the same spot, this will add unknown levels of error into the measurements. is it reasonable to tell users "use the kickstand when you take a photo; you can walk away from the wheel while doing this."

there should be a '+' button on every screen to enable users to run multiple regulations at the same time.
determining the proper start location is tricky. Could we add a note to start from the edge of the curb ramp or corner?

This design was the basis for our current implementation. Closing so we can focus on targeted implementation and design issues on a feature by feature level.


Update README.md

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[ ] Test A
[ ] Test B

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] Any dependent changes have been merged and published in downstream modules

use this

That Readme change doesn't seem like it is really intended for merging - is there something else I am overlooking?


[Feature Request] New address filter QueryParameter

Description
I would like to have a new AddressInAnyUnlockCondition(bech32address) (happy about a suggestion for a better name) filter which returns all outputs that could potentially be unlocked by the provided bech32 address. Sender and issuer features shouldn't be included, because with them one can't unlock the output.
Basically get the output ids for each of Address, StorageDepositReturnAddress and ExpirationReturnAddress and merge them together.
Motivation
Currently one needs to send 3 requests for each filter to get all outputs that can potentially be unlocked by the provided address. Having a new filter that can do all together would reduce the requests a client needs to send to get these outputs.

We decided to keep it as it is, at least for now if there no real issues arise


Task 3

Task 3

@karavind14
Task -3
Code verified. Provide annotations and comments
Task -4
Code verified. Provide annotations and comments
Task -5
Code verified. Provide annotations and comments
Task -6
Code verified.


CHORE: curve-healthy bot - log profit of bot

Output actual profit of curve healthy bot https://github.com/VolumeFi/curve-healthy-bot/blob/main/curve-leverage.js#L681 in service logs, so we can see how it compares to the profit_taking value

code pushed server updated and restarted


added e:inGodMode() for E2

originally CaptrainPRICE made this commit but to the wrong file so i fixed that

Please close because copy/paste.
Merge the #1449.


try harder to not fail in systests CORE-7134

cc @maxtaco

I'm just going to merge this, I think it is a win.


cob_perception_common: 0.6.14-1 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository cob_perception_common to 0.6.14-1:

upstream repository: https://github.com/ipa320/cob_perception_common.git
release repository: https://github.com/ipa320/cob_perception_common-release.git
distro file: melodic/distribution.yaml
bloom version: 0.8.0
previous version for package: null

cob_3d_mapping_msgs

No changes

cob_cam3d_throttle

No changes

cob_image_flip

No changes

cob_object_detection_msgs

No changes

cob_object_detection_visualizer

No changes

cob_perception_common

No changes

cob_perception_msgs

No changes

cob_vision_utils

No changes

ipa_3d_fov_visualization

No changes

(this currently conflicts because of cob_extern, but it is also going to conflict once we rebase and merge #21923 , so I'd hold off on this for now)

This one is ready to be rebased now.

rebase done


Permissions Issue when creating a new shift

Testing dev version of shifts:
Signed up for a shift under "Testing" location:
Error message: You don't have permission to sign up for a shift there.
Redirects to: http://development.shifts.yale.edu/stcdev/shifts

Permission not set for the role in DB.

Is the third point in #435? :seedling:

@jasonkliu Not sure...This was a long time ago, and I don't know what DB Casey used...It probably just has to do with Casey not giving the "Developer" role the permissions in Testing location.


Add debug information to help understand failures finding schemas

When using -schema-location, it is sometimes difficult to understand why kubeconform fails to find the appropriate resource schema. This PR adds a -debug parameter that prints information on where Kubeconform tries to download schemas and which schema it will use for validation.

cc @eyarz  I've been wanting this option forever to make it easier to use -schema-location...  if there is any additional debug info you think could be useful or any comment on the format now would be a good time :)

Awesome! More debug info is always good :)
To be frank, we don't see our users having a lot of issues with this flag.
We added the CRDs-catalog to run with default, so basically, Datree users are running:
kubeconform -schema-location default -schema-location [CRDs-catalog path].
This solved 99% of all the issues that our users had when they tried to use the -schema-location flag to validate CRDs.
The debug info level and the format LGTM 👍
Just to make sure, if not using the deug flag, the error could not find schema for... will still be raised, right?
I'm asking because we have some logic that relies on the error message.

Yep that won't change, but you won't always see all the different URLs kubeconform tried to download - when writing tests I sometimes have a hard time myself trying to understand the paths computed...
And yes your CRD-catalog is prettty neat I might start to use it soon as well :rocket:


ocamlPackages.dtoa: disable hardening feature based on more accurate condition

Motivation for this change
The strictoverflow hardening feature causes a build failure when using Clang as the compiler, not just on Darwin.
Things done

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

[x] NixOS
[x] macOS
[ ] other Linux distributions

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

How were you able to trigger this outside of darwin?
I've tried to check the failure like so, but it seems to be expecting gcc either way, something we should fix as well probably:
$ nix-build -E 'with import <nixpkgs> {}; ocamlPackages.dtoa.override { stdenv = clangStdenv; buildDunePackage = ocamlPackages.buildDunePackage.override { stdenv = clangStdenv; }; }'
these derivations will be built:
  /nix/store/m71j6247239b891a8rn6mwdpa9cq1ip0-ocaml4.10.2-dtoa-0.3.2.drv
building '/nix/store/m71j6247239b891a8rn6mwdpa9cq1ip0-ocaml4.10.2-dtoa-0.3.2.drv'...
unpacking sources
unpacking source archive /nix/store/18k1yw6sg09f2nvkqmr8sh2mx0ag8zfm-dtoa-v0.3.2.tbz
source root is dtoa-v0.3.2
setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file dtoa-v0.3.2/test/test.ml
patching sources
configuring
no configure script, doing nothing
building
Error: Program gcc not found in the tree or in PATH
 (context: default)

builder for '/nix/store/m71j6247239b891a8rn6mwdpa9cq1ip0-ocaml4.10.2-dtoa-0.3.2.drv' failed with exit code 1
error: build of '/nix/store/m71j6247239b891a8rn6mwdpa9cq1ip0-ocaml4.10.2-dtoa-0.3.2.drv' failed

I was not able to trigger this outside of Darwin for this particular package but I did in kitty, see here: https://github.com/NixOS/nixpkgs/pull/99577/commits/11deddb7c801bbfa89e1e2695194454a36740fb2.
But even if it's not possible to trigger this on Linux yet because of the build failure with Clang, this is still a step in the right direction and also doesn't break anything.

Is strictoverflow a general problem with clang? In that case we should add it to hardening_unsupported_flags for clang?

Yes, this may be a general problem with clang but I'm not sure. Also see #39687.


Permission to use

Firstly thank you for putting together this language definition.
I would like to include a definition based on this in an extension that I maintain (https://github.com/rhyst/vscode-therion-language) but I would like to get your permission first. I will include attribution and a link to this repository in the syntax file and in the README of the extension.
The reason I would like to include it directly (rather than include-ing it like you do with latex) is that I need to make some modifications that are specific to metapost snippets that are used in Therion (which I believe does some preprocessing).
Thanks again 😊

Hi @rhyst -- yeah, that's absolutely no problem! You've made me aware I forgot to add a license to this repository. I'll add MIT, as that should be compatible with anything you (or others) may wish to do.
Thanks for asking for permission! Consider it completely granted :)

Brilliant, thank you very much 🙇


Tokenize selected "item" background colors

[x] I have followed (at least) the PR section of the contributing guide.

Background
Currently, there is a subset of closely related material components that independently implement identical styles for their "selected" states: MenuItem, ListItem, ListItemButton, TableRow and Autocomplete's listbox options.
These styles represent a distinct pattern that differs from how a "selected" state is expressed in components like Chip and PaginationItem using the palette.action.selected token:

palette.action.selected
Selected "Items"

The styles for the selected "items", in each of the aforementioned components, consist of some variation / form of this:
  [`&.${componentNameClasses.selected}`]: {
    backgroundColor: theme.vars
      ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})`
      : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
    [`&.${componentNameClasses.focusVisible}`]: {
      backgroundColor: theme.vars
        ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))`
        : alpha(
            theme.palette.primary.main,
            theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity,
          ),
    },
  },
  [`&.${componentNameClasses.selected}:hover`]: {
    backgroundColor: theme.vars
      ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))`
      : alpha(
          theme.palette.primary.main,
          theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity,
        ),
    // Reset on touch devices, it doesn't add specificity
    '@media (hover: none)': {
      backgroundColor: theme.vars
        ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})`
        : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
    },
  },

Problem

These "item" components don't utilize an easily-customizable token like palette.action.selected.
Other components (like PaginationItem) - that are intentionally visually different from selected "items" - already use palette.action.selected, so we can't re-purpose it to tokenize the "selected item" styles shown above.
Outside of changing the value of the semantic palette.primary.main color, system-wide customization of these background colors are very obtuse and cumbersome for consumers - involving reproduction of the entire block of styling shown above for 5 different components using something like styleOverrides.

Proposed Solution

Add a new token to palette.action called selectedItemBg

Default its value to the existing formula (rgba(palette.primary.mainChannel / palette.action.selectedOpacity))

Use the existing formula for computing the background color of selected "items" when hovered / focused - even if the consumer customizes palette.action.selectedItemBg.

The only time the derived values are not used for hover / focus is when the consumer explicitly sets a value for the palette.action.selectedItemHoverBg and/or palette.action.selectedItemFocusBg tokens when creating a theme.

Customization of these two values is considered an edge case, but I went ahead and added them since it allows the "source of truth" for the system default colors to live in one place (theme creation) instead of deeply nested within the styles of 4 different components.

Consume these new tokens in the styles of the aforementioned components when theme.vars is present.

@siriwatknp @oliviertassinari @eps1lon CI is passing here, I appreciate you taking a look!

Thanks for the PR but I'm still reluctant to add more tokens to the theme.vars at this point. This is because the more tokens, the more bundle size, and calculation.
If you want to tokenize them, you can do it on your side with the extendTheme API.

@siriwatknp you're correct that theme augmentation is a valid way to add the new token - however, it doesn't solve the issue of consumption of that token. Consuming these tokens in 5 different components involves this much customization:
[`&.${componentNameClasses.selected}`]: {
    backgroundColor: theme.vars
      ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})`
      : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
    [`&.${componentNameClasses.focusVisible}`]: {
      backgroundColor: theme.vars
        ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))`
        : alpha(
            theme.palette.primary.main,
            theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity,
          ),
    },
  },
  [`&.${componentNameClasses.selected}:hover`]: {
    backgroundColor: theme.vars
      ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))`
      : alpha(
          theme.palette.primary.main,
          theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity,
        ),
    // Reset on touch devices, it doesn't add specificity
    '@media (hover: none)': {
      backgroundColor: theme.vars
        ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})`
        : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
    },
  },

Also, my changes in this PR produce a reduction in overall bundle size.

@gzrae @siriwatknp should I consider this a firm no? Or is there still a chance that it will be considered down the road?

@gzrae @siriwatknp should I consider this a firm "no"? Or is there still a chance that it will be considered down the road?

Sorry for the delay, I have included other team members for more opinions.

These "item" components don't utilize an easily-customizable token like palette.action.selected.

If you customize the primary main color, the changes will be reflected, so I wouldn't consider this a problem.

Outside of changing the value of the semantic palette.primary.main color, system-wide customization of these background colors are very obtuse and cumbersome for consumers - involving reproduction of the entire block of styling shown above for
5 different components using something like styleOverrides.

It really depends on how many components you want this to be applied. You can easily extract the style overrides and store them in one place. Also, note that in userland if you are using CSS vars, the styles can be simplified a lot (we need these styles at this moment as we want to support both scenarios where people depend on CSS vars and not).

I agree that what you are proposing will simplify things in your scenario, but I haven't seen another issue asking about the same, so it looks to me like this is a one-off situation, where we can't justify the bundle size we would add for all users of the library. My proposal would be to open an issue first to see if this is a common ask. If that's the case, we can consider the changes you are proposing. I hope the explanation helps.

@mnajdova thanks for your thoughtful reply!

It really depends on how many components you want this to be applied.

I think where I'm coming from is that - the number of components where this applies is already determined by the existence of the exact same blocks of styling logic existing in 5 different components. If I were picking arbitrary components to apply these new tokens to - I would agree that this change does not belong in the system code - but I'm not... I'm optimizing both the current implementation, and the end-user's ability to easily customize those values.

I am including @DiegoAndai who leads the effort for the Material You migration. I will close this PR, as I don't think it makes sense to include these changes now, as the theme structure will anyway be changed in v6. @DiegoAndai it will be interesting for v6 to see what kind of tokens we can include to ease up the customization for states, as done with this PR.
@aaronlademann-wf thank you again very much for the effort, we will definitely apply the learnings from this PR for the next major.

Adding the v6 label so we have it in mind


Slight lags using ExitUntilCollapsed ScrollStrategy

Hello!
I just launched your app and noticed that there are lags. It's impossible to collapse the toolbar completely by making one scroll with your finger. Toolbar animation will stop somewhere in the middle (depends on your scroll velocity). You need to repeat one more scroll with your finger and toolbar will be collapsed. Only after these actions you are able to scroll the main content.
So, from this moment you can collapse the toolbar by making one scroll with your finger and the main content will be scrolled as well.
Do you have any idea, how to avoid scrolling lags on the first screen launch?
https://user-images.githubusercontent.com/47034849/135983423-02e4427a-ccaf-4777-8209-80a010009408.mp4

@voprokudin Does this issue bother you until now?

@onebone
Sorry for the delay.
Issue is still reproduces to me. After careful research, I've noticed, that attached code block causes slight lags. So calculation of progress causes problems. If you want your fontSize to be based on toolbar progress you will get this lags.
Note: you should use cold app start, because this issue reproduces only for the first time.

Can you give me some information about your environment?

I'm using Android Studio Arctic Fox | 2020.3.1 Patch 2
Test devices with lags:
Samsung A51, Android version 10
Xiaomi Redmi Note 5, Android version 9
Devices that don't lag:
Xiaomi mi note 10 lite, Android version 11

Thank you, I will test in an environment similar to yours

Thank you, I will test in an environment similar to yours

Same issue with Redmi Note 4, Android 11

For me also same the issue on Pixel 5, Android 12

Hey, I noticed that this lag seems to appear only when using lazy column, using regular column with scroll is smooth

Hi, I'm moving my app (https://github.com/nanihadesuka/NovelDokusha) to compose using this great lib.
I'm also having performance issues when using a LazyColumn for the body. In my case it happens for any type of collapsible strategy. The fling also seems to be spotty and work sometimes, some other times not.
Using version 3.3.0


Optional fields with --experimental_allow_proto3_optional

The default configuration does not support optional parameters e.g. optional string name = 2; it returns an error:
jonathan@jonathan-System-Product-Name:~/Projects/test-grpc-server$ cargo run
   Compiling rustix v0.36.10
   Compiling tempfile v3.4.0
   Compiling prost-build v0.11.8
   Compiling tonic-build v0.8.4
   Compiling test-grpc-server v0.1.0 (/home/jonathan/Projects/test-grpc-server)
error: failed to run custom build command for `test-grpc-server v0.1.0 (/home/jonathan/Projects/test-grpc-server)`

Caused by:
  process didn't exit successfully: `/home/jonathan/Projects/test-grpc-server/target/debug/build/test-grpc-server-9bc16cc567ce68b6/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-changed=proto/helloworld.proto
  cargo:rerun-if-changed=proto

  --- stderr
  Error: Custom { kind: Other, error: "protoc failed: helloworld.proto: This file contains proto3 optional fields, but --experimental_allow_proto3_optional was not set.\n" }

Is there a way to support optional parameters with tonic?

it is supported: https://docs.rs/prost-build/latest/prost_build/struct.Config.html
it works running locally, but when building for release, it doesn't compile


Util folder is empty

The util folder is empty- I think we should just delete it.

Fixed with #69


Updated grammar usage and capitalization in the README.

I made small changes to the README, including fixing capitalization, slightly re-wording some phrases, and fixing the grammar where appropriate. Hope this helps! ✅

Awesome, thanks!


[WIP] Initial attempt at the report generator and test stub

Description
This is a Work in Progress PR to build the explain plan for issue #10.
Affected Dependencies
DPEngine will be responsible for adding the stages into the report.
How has this been tested?

report_generator_test uses a stubbed DPEngine to print out reports
Tested with conda environment under Python 3.8

Checklist

[x] I have followed the Contribution Guidelines and Code of Conduct
[x] I have commented my code following the OpenMined Styleguide
[x] I have labeled this PR with the relevant Type labels
[x] My changes are covered by tests

@jspacek Is this still WIP?

👋 @chinmayshah99 @dvadym Thank you for all the reviews! I made all of the changes requested, but I am worried it is now a bit too big of a PR.
I moved all the changes to two new PRs and closed this WIP:
https://github.com/OpenMined/PipelineDP/pull/23 <-- for ReportGenerator
and one to follow is https://github.com/jspacek/PipelineDP/pull/1/files <-- for DPEngine
I hope it helps the changes to be easier to review. Thank you!


fix: revert enable/disable via SIDEKIQ_CRON_ENABLE flag

We discovered from last Friday's incident that the SIDEKIQ_CRON_
ENABLE flag is in practical usage overshadowed by SIDEKIQ_STARTUP_
CHECKS being set to 0, because disabling Sidekiq's scheduler also
disables sidekiq-cron from launching (thanks to OOP inheritance).
Proposing to undo that addition from https://github.com/OneSignal/sidekiq-cron/pull/1
as we're not using the flag in any meaningful way.

Can we just stop using this fork and remove it from our rails code?

Can we just stop using this fork and remove it from our rails code?

I thought about it, but I'm about to submit another PR (or two) to either lengthen the enqueue window or remove it entirely. If not for that, I wouldn't be working on this fork at all.

ah, I didn't realize we needed a fork for that

Yes, it's hardcoded unfortunately. Show you in the next PR real quick.


ISO 22057 - EPD type: manufacturer representation & product representation

I raise this change request because...

[ ] the ILCD+EPD format lacks compliance with regualtions.
[X] the ILCD+EPD format lacks conformaty with standards.
[ ] the ILCD+EPD format needs to be improved regarding existing format or master data elements.
[ ] there is another problem or use case I´m trying to address.

Problem description
This issue actually tackles two issues:

manufacturer representation --> valid for a single manufacturing site; valid for several manufacturing sites from the same company with variation below 10 %; valid for several manufacturing sites from the same company with variation above 10 %; valid for several companies’ sites with variation below 10 %; valid for several companies’ sites with variation above 10 %.

product representation --> valid for a single product where variability is not described; valid for a single product where variability is described; valid for a range of products where variability is not described; valid for a range of products where variability is not described

Solution description
Check redundancy with existing B1.2 "subtype" in particular for "manufacturer representation" --> maybe extension possible?
"product representation" would be most likely a new element/field of the format --> guess the list from above will be further specified in the context of the CE mark
Relevance or added value
medium

Ready for further processing; all relevant infomation is available

duplicate of #17


Empty Pipe runs One job instead of Zero

Do you want to request a feature or report a bug?
In my opinion this is a bug, cf.
@() | foreach { 1 }

What is the current behavior?
Start-RSJob runs one job.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
@() | Start-RSJob { 1 } | wait-rsjob | Receive-RSJob

... outputs "1" ...
What is the expected behavior?
... instead of nothing.
Which versions of Powershell and which OS are affected by this issue? Did this work in previous versions of our scripts?
Powershell 5.1, Windows Server 2016
Please provide a code example showing the issue, if applicable:
@() | Start-RSJob { 1 } | wait-rsjob | Receive-RSJob

I think this is not a bug, because Foreach-Object can't work without pipeline at all but Start-RSJob can


English Documentation

CNFeffery I saw somewhere you wanted to add English documentation and wanted help. I myself use Dash a bit, and just started learning React, I have a website with a friend built in python dash and he did most of the code in python dash, however, I was searching for antd in python dash. Since I like antd buttons and components with respect to look more than the bootstrap components. I myself don't know the language it is in now.

@Willem770 Current language in my document website is Chinese, In the short term you can use Google Translate to learn how to use, I will deploy English document website when I complete the 0.2.0 stable version.

@Willem770 Current language in my document website is Chinese, In the short term you can use Google Translate to learn how to use, I will deploy English document website when I complete the 0.2.0 stable version.

If you need any help from a non Chinese speaker, I'm also interested in English documentation and would gladly help.

Having documentation in English would be amazing.

@georgiossalon The parameter explanations for the sidebar components on the official website can now be switched to English, based on the translation by ChatGPT🤣.

@CNFeffery Nice. This is a step forward :)

The official website of fac has recently completed a major restructuring and upgrade for the new 0.3.x version, and has recently added international multi-language features. Interested friends can learn about the technical details of contributing component English documentation pages to the fac official website through https://github.com/CNFeffery/feffery-antd-docs/issues/166.

Discuss the related content, please transfer to https://github.com/CNFeffery/feffery-antd-docs/issues/166

@michaelrussell4 You can refer to https://github.com/CNFeffery/feffery-antd-docs/issues/169 website in fac document international contribution.😊


Add: docgen command

Change implemented

Added docgen command to generate a Markdown documentation for all the object included inside Rubiks
Added a new helper (KubeHelper) to generate a describe either markdown and plain text
Added link into the README.md and fixed the Rubiks logo to be centered inside the page
Added some default description to all KubeType and VarEntity objects
Removed some wildcard import and minor fixing
Extended PythonBaseFile object to retrieve KubeType
Updated .gitignore to avoid editor garbage to be committed inside the repo
Added get_description method inside KubeType object to facilitate automatic formatting of documentation
Added md parameter inside the name method in KubeType objects to make the link generation more precise.

NOTE: Is not perfect at the moment but should be a good starting point for the documentation and to collect some implession.

There's another side, which is that I'm tempted to break this into several diffs.
We can certainly do the KubeType name lambdas properly, and something in KubeType to get all the subclasses.
We can do the docstrings even before we have the rendering set
And then we can do the rendering at the end.