Enhance kfserving integration

What this PR does / why we need it:
Enhance kfserving integration, move to new version of kfserving, and the CRD has been changed to Inferenceservice, updated in Fairing accordingly.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Release note:

This change is

May be better to use kfserving SDK for integration. I'm going to take a look. Thanks.

/retest

/cc @abhi-g @ellis-bigelow @yuzisun @animeshsingh
That's ready for reviewing, could you please take a look for the integration? Thanks a lot!

/retest

/cc @pugangxa

/lgtm

Thanks @jinchihe
/lgtm
/approve

/test kubeflow-fairing-presubmit

/retest

/test kubeflow-fairing-presubmit

/retest

@jinchihe looks like there is some issue with xgboost high level API
notebook deploying the model in final step. I'll look into it.
On Fri, Nov 1, 2019 at 1:51 AM Kubernetes Prow Robot <
<EMAIL_ADDRESS>wrote:

@jinchihe https://github.com/jinchihe: The following test failed, say
/retest to rerun them all:
Test name Commit Details Rerun command
kubeflow-fairing-presubmit dfd76ba
https://github.com/kubeflow/fairing/commit/dfd76ba03841b5dacafb501012a4af60d9080693
link
https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/pull/kubeflow_fairing/407/kubeflow-fairing-presubmit/1190173735454248960/ /test
kubeflow-fairing-presubmit
Full PR test history
https://prow.k8s.io/pr-history?org=kubeflow&repo=fairing&pr=407. Your
PR dashboard https://gubernator.k8s.io/pr/jinchihe. Please help us cut
down on flakes by linking to
https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md#filing-issues-for-flaky-tests
an open issue
https://github.com/kubeflow/fairing/issues?q=is:issue+is:open when you
hit one in your PR.
Instructions for interacting with me using PR comments are available here
https://git.k8s.io/community/contributors/guide/pull-requests.md. If
you have questions or suggestions related to my behavior, please file an
issue against the kubernetes/test-infra
https://github.com/kubernetes/test-infra/issues/new?title=Prow issue:
repository. I understand the commands that are listed here
https://go.k8s.io/bot-commands.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/kubeflow/fairing/pull/407?email_source=notifications&email_token=ACZ2UZR5VIQHIOF7ATMW7SLQRPUZBA5CNFSM4JFXUK62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC2LGEA#issuecomment-548713232,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACZ2UZQZMGLNNYAOISTCZTTQRPUZBANCNFSM4JFXUK6Q
.

@jinchihe can you please merge upstream/master to pull in test fixes

/lgtm


wine64Packages: fix mainProgram

Description of changes
This patch fixes the meta.mainProgram of packages in wine64Packages by adding mainProgram as an input parameter of base.nix default to "wine", and specified as "wine64" for packages mentioned above.
This change should be backward compatible and cause no rebuilds.
Backport to 22.05

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

Cc package maintainers: @avnik @raskin @bendlas @jmc-figueira

For wineWow do we still want the 32-bit wine to be default?

I didn't use it often (after the messaging app LINE stopped working in Wine) I'm not sure about the use case, but defaulting to wine64 sounds like a good idea.
BTW, we would need to document it in the release note (as a backward incompatibility) if the we change the mainProgram of a currently working package IMO.

LGTM, please resolve the conflict though.

Rebased on top the master branch.


Tensorflow Lite iOS opengl delegate

Please make sure that this is a feature request. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:feature_template
System information

TensorFlow version (you are using): 2.2.0
Are you willing to contribute it (Yes/No): Yes

Describe the feature and the current behavior/state.
Metal delegate works perfectly. But in some cases, I am forced to use opengles 3.0 as the render pipeline because of essential external libraries. It will then be great to have opengl delegate in iOS so users could bind SSBO to tensors.
Will this change the current api? How?
No
Who will benefit with this feature?
iOS developers who can't use Metal render pipeline and want high inference performance.
Any Other info.

Hi @brucechou1983, sorry for my late response.
To understand your question clearly, are you saying that when you are using OpenGL as the rendering pipeline in your app, you can't use Metal delegate in the same app?

@yyoon Sorry that I didn't explain the question well. Using Metal delegate with OpenGL rendering pipeline works. The problem is we have to copy input and output data back and forth rather than exchanging the ownership of the data.
As you can see in MediaPipe tflite inference calculator, memcpy() is required in every single inference. When I opened this issue, I thought if the kernel is written is OpenGL I can just bind the buffers to tensors.
However, I realized that OpenGL kernels in TFLite are generated as the form of compute shaders, which are not supported in OpenGL ES 3.0. Since iOS devices generally have faster GPU, I could live with current solution.

Thanks for the clarification!


400 error

Hi,
If I call https://api.gitrows.com/@github/gabacode/f8lite:main/dati-comuni/dpc-covid19-ita-pa-82004.csv I have
{
  "code": 400,
  "message": "Bad Request",
  "documentation": [
    {
      "description": "HTTP Status Codes",
      "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400"
    },
    {
      "description": "GitRows API Documentation",
      "url": "https://gitrows.com/docs/api/path"
    }
  ]
}

Thank you

I think you have a missing zero in the url 082004.csv
<EMAIL_ADDRESS>

I think you have a missing zero in the url 082004.csv

No, when I opened the issue it the name was 82004 https://github.com/gabacode/f8lite/tree/e2239f5ad5429cd0ac51e5349aeacd560e0ed6b6/dati-comuni

Also you included the branch name after the repo name f8lite:main remove the branch name :main

You are right there is a problem in the linter. I'm opening a new issue


[question]bind nfs swapfile to /dev/loop0 in each node's /etc/fstab or export ..

i'm trying to set up an nfs share to serve up a swapfile to each node in a cluster , I've been following your advice on (https://dave.cheney.net/2012/09/25/installing-go-on-the-raspberry-pi) but i'm a little confused when it comes to configure the /etc/exports on each node
nfs_swap
/mnt/nfs_shares/data00/swapfile   <IP_ADDRESS>(rw,sync,rsize=8192,wsize=8192)
/mnt/nfs_shares/data01/swapfile   <IP_ADDRESS>(rw,sync,rsize=8192,wsize=8192)
/mnt/nfs_shares/data02/swapfile   <IP_ADDRESS>(rw,sync,rsize=8192,wsize=8192)
etc/fstab
nfs.server:/mnt/nfs_shares/data00/swapfile        /dev/loop0   swap defaults 0 0
nfs.server:/mnt/nfs_shares/data01/swapfile        /dev/loop0   swap defaults 0 0
etc etc
and / or do
sudo losetup /dev/loop0   nfs.server:/mnt/nfs_shares/data00/swapfile   on each node

it's ok i got it set but i couldn't mount the remote:/mnt/swap instead the local mapped /var/nfs/swap directory which is kind of pointless if it's writing locally then syncing on network ..
losetup /dev/loop0  /var/nfs/swap  worked


After upgrading to 0.12.1 the output file doesn't work

I've just upgraded to SystemJS Builder 0.12.1 from 0.10.6 and after running builder.build() the output file doesn't work when I launch the app. No errors neither when I run the build script nor when I open the app. I've noticed one difference with the old version of the output file, the old one has "format register"; statement at the very top of the file, the new one doesn't.
Here is how I invoke build():
let builder = new Builder();
builder.loadConfig('./app/config.js')
  .then(() => {
    builder.config({baseURL: './app'});
    return builder.build('main.js', 'dist/main.js');
  })
  .catch(console.log);

The meaningful part of config.js:
System.config({
  'baseURL': '/',
  'defaultJSExtensions': true,
  'transpiler': 'traceur',
  'paths': {
    'github:*': 'jspm_packages/github/*'
  },
  'map': {
    'html': 'plugins/html.js'
  }
});

This may be an issue with the baseURL. In the latest SystemJS the baseURL needs to be set before any other configurations and it must be set first.

Updated my build script:
let builder = new Builder({baseURL: './app'}); // 1. Init baseURL as part of the constructor call
builder.loadConfig('./app/config.js') // 2. Removed baseURL from config.js
  .then(() => builder.build('main.js', 'dist/main.js'))
  .catch(console.log);

Statement "format register" still isn't there. I'm just getting familiar with SystemJS. Is it the actual issue, should "format register" be a part of the output file? Is there a workaround, e.g. using different module format for the output file?

@antonmoiseev did you try adding "format register" into the bundle manually and did that make it work here?

Right, sorry, forgot to mention. I've added "format register" manually and everything works fine.

@antonmoiseev ok thanks for clarifying. Does your bundle file contain System.register statements? Or are all your modules AMD perhaps?

Yes, there are System.register statements. The app uses ES6 modules, but there is a custom plugin that translates loaded content to a CommonJS module. BTW, here is a sample app that reproduces this behavior - https://github.com/antonmoiseev/polymer-upside-down:

npm run deps to install all dependencies
gulp to build the bundle
gulp serve:dist to start bundled version of the app. After starting the server you can manually add "format register"; to dist/main.js.

Thanks, I've added a fix for this in SystemJS at https://github.com/systemjs/systemjs/commit/4910332ed323d86adb573db52c5aaa2dd1c8050c. Will post a release soon and update here.

This is released in SystemJS 0.18.4.

Confirmed, works fine now. Thank you! :+1:


Node version security issue

My Setup

Windows 10

Rocket.Chat+ 2.7.0

[x] I have tested with the latest application version

[x] I can simulate the issue easily

Description
Windows installer comes with node.dll v7.4.0 which has a security issue with openssl (https://nodejs.org/en/blog/vulnerability/openssl-january-2017/)
Current Behavior
Node version with known security vulnerabilities used.
Expected Behavior
Node version with no known security vulnerabilities used.

Originally reported against version 2.6.0. Not fixed in 2.7.0, not fixed in 2.8.0.
Can we get an estimate on when this can be resolved?

Agree it would be nice to get this insecurity taken care of, but looking at the flaw in the node version it appears that the only vulnerability mentioned in your link that could be exploited is:
CVE-2017-3731
Which requires the devs to enable RC4 explicitly.. i honestly dont know if it's the case with RocketChat.
Were you concerned with one of the other cve's? do you know of an exploit in the wild for this?
Just curious
Jdashn

For me it is simply that certain security software flags the dll as being vulnerable. This generates alerts for all clients Rocket.Chat is installed on and requires me to manually override/acknowledge those warnings.
If there is any reason not to use a newer node version then I'm fine with that too.
I do think that any project shipping 3rd party dependencies has to take responsibility for keeping those up-to-date wherever possible.

The issue has been fixed in the latest version.


cannot revert back from multi-arch: true to multi-arch: false

I set up deploy.yml to use a remote builder:
builder:
  multiarch: true
  args:
    RUBY_VERSION: 3.2.0
#   secrets:
#     - GITHUB_TOKEN
  remote:
    arch: amd64
    host<EMAIL_ADDRESS>
then noticed i could shave some seconds of build time by NOT building the arm64 images.. so did this:
builder:
  multiarch: false
  args:
    RUBY_VERSION: 3.2.0
#   secrets:
#     - GITHUB_TOKEN
  remote:
    arch: amd64
    host<EMAIL_ADDRESS>
Now healthcheck seems to fail when deploying.. reverting back to multi-arch: true works but build times are longer..

I believe if you set multiarch: false in your deploy.yml, it will set the builder to "native".  And if you're developing on Apple Silicon, then it'll fail.
Have you tried removing multiarch: false line?  I believe that will cause you to use remote builder for single-arch (skip building arm64 image locally).
You can also check which builder you're using with mrsk build details cli command.

trying that now but running into new (unrelated) problems of trying to install gems with native extensions on the remote machine.. will post if I find a fix for not creating the ARM images by default.

was having issues due to an older dockerfile vs the one shipped with mrsk for rails.. I can confirm that removing that line entirely (multiarch: false) on apple silicon solved the issue.
Thanks @Jberczel !!


Update data preprocess

please merge three new commits into one commit as "update data preprocess"

In the future, we might want to squash some of the commits to have a cleaner commit history. For now, let's leave it as is.


Update README.md

added some more comments
updated file name "pulldata.py"
suggest change filename "pulldata_requirements.txt" to avoid confusion with requirements.txt in main folder

Closed:

name update done
requirements.txt remains, = standard naming convention


Add configuration file support

The default behaviour is now controlled by a configuration file. One can manipulate this file using cli.

Codecov Report

Merging #2 (d1a840c) into master (03130d8) will increase coverage by 0.19%.
The diff coverage is 98.75%.

@@            Coverage Diff             @@
##           master       #2      +/-   ##
==========================================
+ Coverage   94.82%   95.01%   +0.19%
==========================================
  Files           7        8       +1
  Lines         908      963      +55
==========================================
+ Hits          861      915      +54
- Misses         47       48       +1

Impacted Files
Coverage Δ

bib_lookup/cli.py
97.19% <97.61%> (-0.14%)
:arrow_down:

bib_lookup/_const.py
100.00% <100.00%> (ø)

bib_lookup/bib_lookup.py
94.54% <100.00%> (+0.10%)
:arrow_up:

bib_lookup/citation_mixin.py
88.88% <100.00%> (-0.27%)
:arrow_down:

bib_lookup/utils.py
92.19% <100.00%> (+0.66%)
:arrow_up:


Fail gracefully when there's no internet connection

It'd be nice to do something similar to https://serviceworke.rs/request-deferrer.html, so users would be able to manage their machines/clients also while offline.
As a first step, I'd simply add offline support via the service worker and show a message saying something similar to "You can't receive notifications while offline" in place of the actual content.


Data Entry / Ease of Use Suggestions

Greetings! Here is a list of suggestions I have for ease-of-use and faster data entry:
Is your feature request related to a problem? Please describe.
No, these are strictly feature suggestions.
Describe the solution you'd like

[ ] There should be quick buttons to choose the type of filament for all major filaments, and then an “other” button if it’s an unknown filament. These should include:

[ ] PLA
[ ] PLA Pro
[ ] PETG
[ ] ASA
[ ] ABS
[ ] HIPS
[ ] PVA
[ ] PVB
[ ] TPU
[ ] TPE
[ ] PETG-CF
[ ] ABS-CF
[ ] PA6
[ ] PA12
[ ] PA-CF
[ ] PAHT-CF
[ ] ABS-GF
[ ] PETG-CF
[ ] PET-CF

[ ] Clicking the filament type should automatically populate the density (PLA, ABS, PETG, ASA, etc all have known densities), but still allow it to be overwritten if it has a unique density, for example different brands of PLA Pro
[ ] Allow adding a filament from the spool page - if I add in a spool page, it adds the filament. Why should there be two steps necessary for this flow?
[ ] Conversely, when I add a filament, give me a number field, where I can automatically add 0, 1, 2, 3 etc spools to inventory without an extra step. After all, why would I be adding that filament if I don’t have it already? This will reduce a lot of extra input
[ ] Quick buttons to populate spool weights, possibly with a hover tooltip and pictures of the spool types, since there are known weights published online for most of the manufacturers spools.
[ ] Quick-select buttons for filament diameter, or better yet, a universal setting, for those of us who EXCLUSIVELY stock one diameter… we should be able to disable that field and automatically assume 1.75.
[ ] Quick selection buttons for 250g/500g/850g/1kg/2kg/5kg, so it’s just one click, not a click and typing in
[ ] Save and Add should save, and then go to a blank “add” page so you can add more without having to click “Add” again on the next screen - maybe rename it “Save & Add Another”
[ ] Checkboxes to bulk edit, for example, checkbox 5 filaments, change the location on one and it changes all of them. Or archive a bunch all at once… etc.
[ ] The “Home” screen should show me the current amount of filament in weight, and the current inventory value, as well as the spools and filaments and all that.
[ ] Add the ability to import via spreadsheet with a set format - this will save a TON of time on data entry, at least for the initial setup
[ ] In “Filaments” it should show me how many spools I have of it as one of the columns

There should be quick buttons to choose the type of filament for all major filaments, and then an “other” button if it’s an unknown filament. These should include:...

I appreciate the sentiment of this idea but have a few suggestions on the arrangement and implementation presented.
Let us agree the goals are to:

Quickly add filaments that matter to an end user
Minimize the amount of upkeep needed from the application's contribution (list of filaments)

The list you present has two major challenges in my opinion:

It's far too long a default to force every time uniformly.
Many of the variants are not standardized, with the names being used as sales gimmicks still. The industry will continue to come up with more of them, which will only make the first point worse.

Might this approach, instead, be more adventageous to function but allowing the first goal to be better realized for everyone?

The filament picker is presented as a combination of filaments that are "Active" from two distinct lists:
Filament Bases

PLA, PETG, TPU, etc. - only the base materials that would be identical between vendors.
Each item on this list has a "Filament Variant" sub-list.
Each value has a user-set value of "Active", which is default to True. If set to False, the value does not get included in the primary selection when adding a new Spool.

Filament Variants
Examples: PLA Basic, PLA+, Matte PLA, and PLA Pro would be variants of PLA. PETG-CF and PETG-HS would be variants of PETG.

Each variant must be linked to vendor(s), be treated as unique things regardless if the name is identical, and should show the vendor(s) in parenthesis in displays. This allows for how different brands are using the same names for things but their properties, heats, handling, etc. are sometimes different, like with "PLA Pro".
Otherwise, each value has the same Active boolean option, which is used to determine what is presented in the primary selection.

User Presentation when adding Spools
The primary selection option for materials is a selection of "Active" items from all Filament Base and Variant lists.
At the bottom of that selection list is a collapsed area which says "Other".  When clicked, all of the Active=False items are presented to select from. The top option is a button for "Add new Filament / Variant" which spawns the creation process.
I believe this approach would also allow the logic of your second idea about densities to be easily managed - the Bases are standardized, but the Variants (even when named the same) could be different by vendor.
This would also allow vendor-specific export/import "collections" of materials to be added to Filament Variant lists quite easily without clashing with any custom items.


Optimisation causing incorrect header to encode

encodeHeader in build.go checks if the header is a JWT, and then chooses a pre-encoded header as the result, as an optimization.  However, a Header can also have a cty field or a kid field.  AND, if either of these are set, the optimization will not encode them.
I Suggest the if header.Type check also needs to ensure cty and kid are not set.
This is the function in question.
func encodeHeader(header *Header) []byte {
	if header.Type == "JWT" {
		switch header.Algorithm {
		case NoEncryption:
			return []byte("eyJhbGciOiJub25lIn0")
		case EdDSA:
			return []byte("eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9")

Yep, confirmed. Thanks for sharing, sadly I haven't used header with additional kid and cty and this case was uncovered.
I think about extending if with 2 additional checks:
if header.Type == "JWT" && header.KeyID == "" && header.ContentType == "" {
Is it okay for you if I'll fix it tomorrow and add more test?

Yes, that's exactly what i was thinking needed to be done.

Hi @stevenj if you've any suggestions for v2 please add them here :) https://github.com/cristalhq/jwt/issues/39


Put new proposers at the back of the queue

At the moment, new proposers are added just behind the current proposer.  If the owner of the current proposer registers as a new proposer and then deregisters once the current proposer changes, they can potentially stay proposer forever for the cost of two proposer bonds, or at least until someone else sneeks in first.

This is actually not an issue because proposer selection propagates forwards around the ring of linked addresses and so the new proposer is last to get a go.


Dragging from collections in collectionview cells

HI thanks for the great framework! I'm struggling with a complex setup.
I have a viewcontroller with a collectionview that has 5 collectionview cells (fullscreen) with collectionviews inside of them.
I can drag subcells from the first 3 tableviews in those cells but when I try to drag subcell form the last two last tabeviews the dragCoordinator doesn't correctly identify these collectionviews. I actually thinks its one of the previous collectionviews
Thanks in advance (I'm on iOS9 coding in Swift)

my view controller
    override func viewDidLoad() {
    super.viewDidLoad()
    automaticallyAdjustsScrollViewInsets = false
    self.pipeLineData = ["Lead":["1","2","3","4","5","6","1","2","3","4","5","6"],"Contact":["A","B","C","D","E","F","1","2","3","4","5","6"],"Meeting":["11","22","33","44","55","66"], "Nego":["1","2","3","4","5","6"],"Deal":["A","B","C","D","E","F"]]
    let layout = CenterCellCollectionViewFlowLayout()
    self.view.backgroundColor = UIColor(rgba: "#6BB9F0")
    layout.itemSize = CGSizeMake(self.view.frame.width - 140, self.view.frame.height-150)
    layout.scrollDirection = .Horizontal
    collectionView = UICollectionView(frame: CGRect(x: 0, y: 64, width: self.view.frame.width, height: self.view.frame.height - 108), collectionViewLayout: layout)
    collectionView.dataSource = self
    collectionView.scrollEnabled = true
    collectionView.backgroundColor = UIColor.clearColor()
    collectionView.bounces = true
    self.view.addSubview(collectionView)
    self.collectionView.registerClass(PipelineStageViewCell.self, forCellWithReuseIdentifier:pipelineCellIndentifier)

    for _ in pipeLineData {
        let layout = CenterCellCollectionViewFlowLayout()
        layout.scrollDirection = .Vertical
        layout.itemSize = CGSizeMake(self.view.frame.width - 160, 30)
        let col = UICollectionView(frame: CGRectZero, collectionViewLayout:layout)
        col.backgroundColor = UIColor(rgba: "#F5F5F5")
        col.dataSource = self
        col.delegate = self
        col.registerClass(PipelineDealCell.self, forCellWithReuseIdentifier:pipelineDealIndentifier)
        var insets = col.contentInset
        insets.top = 10
        insets.bottom = 10
        col.contentInset = insets
        self.stepCollection.append(col)
    }

    self.dragArena = I3DragArena(superview: self.view , containingCollections: self.stepCollection)
    self.dragCoordinator = I3GestureCoordinator.basicGestureCoordinatorFromViewController(self, withCollections: self.stepCollection, withRecognizer: UILongPressGestureRecognizer())
    self.dragCoordinator.dragDataSource = self
    let renderDelegate = self.dragCoordinator.renderDelegate as! I3BasicRenderDelegate
    renderDelegate.draggingItemOpacity = 0.3

}

unc collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    if self.isMainCollection(collectionView){
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(pipelineCellIndentifier, forIndexPath: indexPath) as! PipelineStageViewCell
        cell.setCollectionView(self.stepCollection[indexPath.row])
        cell.stepTitle.text = self.dataForCollectionView(collectionView)[indexPath.row] as? String
        return cell
    } else {
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(pipelineDealIndentifier, forIndexPath: indexPath) as! PipelineDealCell
        cell.dealData = self.dataForCollectionView(collectionView)[indexPath.row] as! String
        return cell
    }
}

func dataForCollectionView(collectionView: UIView) -> [AnyObject] {
    var data: [AnyObject]? = nil
    var index = 0
    var isFound = false
    for collection in self.stepCollection {
        if collection == collectionView {
            let key = Array(self.pipeLineData.keys)[index]
            data = self.pipeLineData[key]
            isFound = true
        }
        index++
    }
    if !isFound {
        data = Array(self.pipeLineData.keys)
    }
    return data!
}

func keyForCollectionView(collectionView: UIView) -> String {
    var index = 0
    for collection in self.stepCollection {
        if collection == collectionView {
            return Array(self.pipeLineData.keys)[index]
        }
        index++
    }
    return ""
}

I resolved this by not reusing the main cells in the main collectionview

Hi there.
Thanks for submitting the issue. I'm not sure about your use case but you could use 1 UICollectionView with some sort of custom flow, instead of embedding collection views in collection view cells.
Anyway, I'm glad you were able to work around the problem. I'll close this issue for now - feel free to reopen the issue surfaces again.
Thanks,
Steve.


pass auth token and implement multiple functions

Stack:

#11
#10 ⬅

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.

✓ Commit merged in pull request #11


test: updated PSA folder structure

This PR:

Updates folder structure moved all the addons in tests/e2e and other files
Updated app.conf and app.manifest files for addons that are used in requirement tests
Executes E2E tests with markers
Updates constants.py for fiction_indextime_broken failed testcase

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

v3.0.1
GitHub release

Your semantic-release bot :package::rocket:


Support for MP3 AudioEncoding

Support for beta feature MP3 AudioEncoding

Should be available in version 2.2.0


Unable to open display error in headless rendering mode

Environment

OS Version: Ubuntu 18.04
Source or binary build? Binary 6.3.0

Description

Expected behavior: Server configured for headless rendering should not shout about display creation errors.
Actual behavior: I see this in the log: [Err] [Ogre2RenderEngine.cc:394] Unable to open display: . However, the server rendering works.

Steps to reproduce

DISPLAY= ign gazebo -v4 examples/worlds/sensors_demo.sdf -r --headless-rendering -s
ign gazebo -v4 -g
Watch the GUI correctly display the sensor data, while observing the above-mentioned error in the server log.

Server ogre2.log:

20:06:04: Creating resource group General
20:06:04: Creating resource group Internal
20:06:04: Creating resource group Autodetect
20:06:04: SceneManagerFactory for type 'DefaultSceneManager' registered.
20:06:04: Registering ResourceManager for type Material
20:06:04: Registering ResourceManager for type Mesh
20:06:04: Registering ResourceManager for type Mesh2
20:06:04: Registering ResourceManager for type OldSkeleton
20:06:04: MovableObjectFactory for type 'ParticleSystem' registered.
20:06:04: ArchiveFactory for archive type FileSystem registered.
20:06:04: ArchiveFactory for archive type Zip registered.
20:06:04: ArchiveFactory for archive type EmbeddedZip registered.
20:06:04: DDS codec registering
20:06:04: FreeImage version: 3.17.0
20:06:04: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
20:06:04: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,rgb,rgba,bw,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti,x3f,webp,jxr,wdp,hdp
20:06:04: OITD codec registering
20:06:04: Registering ResourceManager for type HighLevelGpuProgram
20:06:04: MovableObjectFactory for type 'Decal' registered.
20:06:04: MovableObjectFactory for type 'InternalCubemapProbe' registered.
20:06:04: MovableObjectFactory for type 'Entity' registered.
20:06:04: MovableObjectFactory for type 'Item' registered.
20:06:04: MovableObjectFactory for type 'Light' registered.
20:06:04: MovableObjectFactory for type 'Rectangle2Dv2' registered.
20:06:04: MovableObjectFactory for type 'BillboardSet' registered.
20:06:04: MovableObjectFactory for type 'ManualObject2' registered.
20:06:04: MovableObjectFactory for type 'BillboardChain' registered.
20:06:04: MovableObjectFactory for type 'RibbonTrail' registered.
20:06:04: MovableObjectFactory for type 'WireAabb' registered.
20:06:04: *-*-* OGRE Initialising
20:06:04: *-*-* Version 2.2.6 (Cerberus)
20:06:04: OverlayElementFactory for type Panel registered.
20:06:04: OverlayElementFactory for type BorderPanel registered.
20:06:04: OverlayElementFactory for type TextArea registered.
20:06:04: Registering ResourceManager for type Font
20:06:04: Loading library /usr/lib/x86_64-linux-gnu/OGRE-2.2/OGRE/RenderSystem_GL3Plus.so
20:06:04: Installing plugin: GL 3+ RenderSystem
20:06:04: OpenGL 3+ Rendering Subsystem created.
20:06:04: OGRE EXCEPTION(3:RenderingAPIException): Couldn`t open X display  in GLXGLSupport::getGLDisplay at /var/lib/jenkins/workspace/ogre-2.2-debbuilder/repo/RenderSystems/GL3Plus/src/windowing/GLX/OgreGLXGLSupport.cpp (line 796)
20:06:04: GLX raised an exception. Won't be available. Is X11 running?
20:06:04: OGRE EXCEPTION(3:RenderingAPIException): Couldn`t open X display  in GLXGLSupport::getGLDisplay at /var/lib/jenkins/workspace/ogre-2.2-debbuilder/repo/RenderSystems/GL3Plus/src/windowing/GLX/OgreGLXGLSupport.cpp (line 796)
20:06:04: Found Num EGL Devices: 2
20:06:04: EGL Device: EGL_EXT_device_drm EGL_EXT_device_drm_render_node #0 /dev/dri/card0
20:06:04: Trying to init device: EGL_EXT_device_drm EGL_EXT_device_drm_render_node #0 /dev/dri/card0...
20:06:04: Created GL 4.5 context for device EGL_EXT_device_drm EGL_EXT_device_drm_render_node #0 /dev/dri/card0
20:06:04: Destroying device: EGL_EXT_device_drm EGL_EXT_device_drm_render_node #0 /dev/dri/card0...
20:06:04: EGL Device: EGL_MESA_device_software EGL_EXT_device_drm_render_node #1
20:06:04: Trying to init device: EGL_MESA_device_software EGL_EXT_device_drm_render_node #1...
20:06:04: Created GL 4.5 context for device EGL_MESA_device_software EGL_EXT_device_drm_render_node #1
20:06:04: Destroying device: EGL_MESA_device_software EGL_EXT_device_drm_render_node #1...
20:06:04: Plugin successfully installed
20:06:04: Loading library /usr/lib/x86_64-linux-gnu/OGRE-2.2/OGRE/Plugin_ParticleFX.so
20:06:04: Installing plugin: ParticleFX
20:06:04: Particle Emitter Type 'Point' registered
20:06:04: Particle Emitter Type 'Box' registered
20:06:04: Particle Emitter Type 'Ellipsoid' registered
20:06:04: Particle Emitter Type 'Cylinder' registered
20:06:04: Particle Emitter Type 'Ring' registered
20:06:04: Particle Emitter Type 'HollowEllipsoid' registered
20:06:04: Particle Affector Type 'LinearForce' registered
20:06:04: Particle Affector Type 'ColourFader' registered
20:06:04: Particle Affector Type 'ColourFader2' registered
20:06:04: Particle Affector Type 'ColourImage' registered
20:06:04: Particle Affector Type 'ColourInterpolator' registered
20:06:04: Particle Affector Type 'Scaler' registered
20:06:04: Particle Affector Type 'Rotator' registered
20:06:04: Particle Affector Type 'DirectionRandomiser' registered
20:06:04: Particle Affector Type 'DeflectorPlane' registered
20:06:04: Plugin successfully installed
20:06:04: CPU Identifier & Features
20:06:04: -------------------------
20:06:04:  *   CPU ID: AuthenticAMD: AMD Ryzen 7 PRO 4750U with Radeon Graphics
20:06:04:  *   Logical cores: 16
20:06:04:  *      SSE: yes
20:06:04:  *     SSE2: yes
20:06:04:  *     SSE3: yes
20:06:04:  *      MMX: yes
20:06:04:  *   MMXEXT: yes
20:06:04:  *    3DNOW: no
20:06:04:  * 3DNOWEXT: no
20:06:04:  *     CMOV: yes
20:06:04:  *      TSC: yes
20:06:04:  *      FPU: yes
20:06:04:  *      PRO: yes
20:06:04:  *       HT: no
20:06:04: -------------------------
20:06:04: ******************************
*** Starting EGL Subsystem ***
******************************
20:06:04: GL3PlusRenderSystem::_createRenderWindow "OgreWindow(0)_0", 1x1 windowed  miscParams: FSAA=0 border=none contentScalingFactor=1.000000 gamma=Yes parentWindowHandle=0 stereoMode=Frame Sequential
20:06:04: Trying to init device: EGL_EXT_device_drm EGL_EXT_device_drm_render_node #0 /dev/dri/card0...
20:06:04: Created GL 4.5 context for device EGL_EXT_device_drm EGL_EXT_device_drm_render_node #0 /dev/dri/card0
20:06:04: GL Version = <IP_ADDRESS>
20:06:04: GL_VERSION = 4.6 (Core Profile) Mesa 21.3.3 - kisak-mesa PPA
20:06:04: GL_VENDOR = AMD
20:06:04: GL_RENDERER = AMD RENOIR (DRM 3.42.0, 5.15.12-051512-generic, LLVM 13.0.0)
20:06:04: GL_EXTENSIONS =
20:06:04: GL_AMD_conservative_depth
20:06:04: GL_AMD_depth_clamp_separate
20:06:04: GL_AMD_draw_buffers_blend
20:06:04: GL_AMD_framebuffer_multisample_advanced
20:06:04: GL_AMD_gpu_shader_int64
20:06:04: GL_AMD_multi_draw_indirect
20:06:04: GL_AMD_performance_monitor
20:06:04: GL_AMD_pinned_memory
20:06:04: GL_AMD_query_buffer_object
20:06:04: GL_AMD_seamless_cubemap_per_texture
20:06:04: GL_AMD_shader_stencil_export
20:06:04: GL_AMD_shader_trinary_minmax
20:06:04: GL_AMD_texture_texture4
20:06:04: GL_AMD_vertex_shader_layer
20:06:04: GL_AMD_vertex_shader_viewport_index
20:06:04: GL_ANGLE_texture_compression_dxt3
20:06:04: GL_ANGLE_texture_compression_dxt5
20:06:04: GL_ARB_ES2_compatibility
20:06:04: GL_ARB_ES3_1_compatibility
20:06:04: GL_ARB_ES3_2_compatibility
20:06:04: GL_ARB_ES3_compatibility
20:06:04: GL_ARB_arrays_of_arrays
20:06:04: GL_ARB_base_instance
20:06:04: GL_ARB_bindless_texture
20:06:04: GL_ARB_blend_func_extended
20:06:04: GL_ARB_buffer_storage
20:06:04: GL_ARB_clear_buffer_object
20:06:04: GL_ARB_clear_texture
20:06:04: GL_ARB_clip_control
20:06:04: GL_ARB_color_buffer_float
20:06:04: GL_ARB_compressed_texture_pixel_storage
20:06:04: GL_ARB_compute_shader
20:06:04: GL_ARB_compute_variable_group_size
20:06:04: GL_ARB_conditional_render_inverted
20:06:04: GL_ARB_conservative_depth
20:06:04: GL_ARB_copy_buffer
20:06:04: GL_ARB_copy_image
20:06:04: GL_ARB_cull_distance
20:06:04: GL_ARB_debug_output
20:06:04: GL_ARB_depth_buffer_float
20:06:04: GL_ARB_depth_clamp
20:06:04: GL_ARB_derivative_control
20:06:04: GL_ARB_direct_state_access
20:06:04: GL_ARB_draw_buffers
20:06:04: GL_ARB_draw_buffers_blend
20:06:04: GL_ARB_draw_elements_base_vertex
20:06:04: GL_ARB_draw_indirect
20:06:04: GL_ARB_draw_instanced
20:06:04: GL_ARB_enhanced_layouts
20:06:04: GL_ARB_explicit_attrib_location
20:06:04: GL_ARB_explicit_uniform_location
20:06:04: GL_ARB_fragment_coord_conventions
20:06:04: GL_ARB_fragment_layer_viewport
20:06:04: GL_ARB_fragment_shader
20:06:04: GL_ARB_framebuffer_no_attachments
20:06:04: GL_ARB_framebuffer_object
20:06:04: GL_ARB_framebuffer_sRGB
20:06:04: GL_ARB_get_program_binary
20:06:04: GL_ARB_get_texture_sub_image
20:06:04: GL_ARB_gl_spirv
20:06:04: GL_ARB_gpu_shader5
20:06:04: GL_ARB_gpu_shader_fp64
20:06:04: GL_ARB_gpu_shader_int64
20:06:04: GL_ARB_half_float_pixel
20:06:04: GL_ARB_half_float_vertex
20:06:04: GL_ARB_indirect_parameters
20:06:04: GL_ARB_instanced_arrays
20:06:04: GL_ARB_internalformat_query
20:06:04: GL_ARB_internalformat_query2
20:06:04: GL_ARB_invalidate_subdata
20:06:04: GL_ARB_map_buffer_alignment
20:06:04: GL_ARB_map_buffer_range
20:06:04: GL_ARB_multi_bind
20:06:04: GL_ARB_multi_draw_indirect
20:06:04: GL_ARB_occlusion_query2
20:06:04: GL_ARB_parallel_shader_compile
20:06:04: GL_ARB_pipeline_statistics_query
20:06:04: GL_ARB_pixel_buffer_object
20:06:04: GL_ARB_point_sprite
20:06:04: GL_ARB_polygon_offset_clamp
20:06:04: GL_ARB_program_interface_query
20:06:04: GL_ARB_provoking_vertex
20:06:04: GL_ARB_query_buffer_object
20:06:04: GL_ARB_robust_buffer_access_behavior
20:06:04: GL_ARB_robustness
20:06:04: GL_ARB_sample_shading
20:06:04: GL_ARB_sampler_objects
20:06:04: GL_ARB_seamless_cube_map
20:06:04: GL_ARB_seamless_cubemap_per_texture
20:06:04: GL_ARB_separate_shader_objects
20:06:04: GL_ARB_shader_atomic_counter_ops
20:06:04: GL_ARB_shader_atomic_counters
20:06:04: GL_ARB_shader_ballot
20:06:04: GL_ARB_shader_bit_encoding
20:06:04: GL_ARB_shader_clock
20:06:04: GL_ARB_shader_draw_parameters
20:06:04: GL_ARB_shader_group_vote
20:06:04: GL_ARB_shader_image_load_store
20:06:04: GL_ARB_shader_image_size
20:06:04: GL_ARB_shader_objects
20:06:04: GL_ARB_shader_precision
20:06:04: GL_ARB_shader_stencil_export
20:06:04: GL_ARB_shader_storage_buffer_object
20:06:04: GL_ARB_shader_subroutine
20:06:04: GL_ARB_shader_texture_image_samples
20:06:04: GL_ARB_shader_texture_lod
20:06:04: GL_ARB_shader_viewport_layer_array
20:06:04: GL_ARB_shading_language_420pack
20:06:04: GL_ARB_shading_language_include
20:06:04: GL_ARB_shading_language_packing
20:06:04: GL_ARB_sparse_buffer
20:06:04: GL_ARB_spirv_extensions
20:06:04: GL_ARB_stencil_texturing
20:06:04: GL_ARB_sync
20:06:04: GL_ARB_tessellation_shader
20:06:04: GL_ARB_texture_barrier
20:06:04: GL_ARB_texture_buffer_object
20:06:04: GL_ARB_texture_buffer_object_rgb32
20:06:04: GL_ARB_texture_buffer_range
20:06:04: GL_ARB_texture_compression_bptc
20:06:04: GL_ARB_texture_compression_rgtc
20:06:04: GL_ARB_texture_cube_map_array
20:06:04: GL_ARB_texture_filter_anisotropic
20:06:04: GL_ARB_texture_float
20:06:04: GL_ARB_texture_gather
20:06:04: GL_ARB_texture_mirror_clamp_to_edge
20:06:04: GL_ARB_texture_multisample
20:06:04: GL_ARB_texture_non_power_of_two
20:06:04: GL_ARB_texture_query_levels
20:06:04: GL_ARB_texture_query_lod
20:06:04: GL_ARB_texture_rectangle
20:06:04: GL_ARB_texture_rg
20:06:04: GL_ARB_texture_rgb10_a2ui
20:06:04: GL_ARB_texture_stencil8
20:06:04: GL_ARB_texture_storage
20:06:04: GL_ARB_texture_storage_multisample
20:06:04: GL_ARB_texture_swizzle
20:06:04: GL_ARB_texture_view
20:06:04: GL_ARB_timer_query
20:06:04: GL_ARB_transform_feedback2
20:06:04: GL_ARB_transform_feedback3
20:06:04: GL_ARB_transform_feedback_instanced
20:06:04: GL_ARB_transform_feedback_overflow_query
20:06:04: GL_ARB_uniform_buffer_object
20:06:04: GL_ARB_vertex_array_bgra
20:06:04: GL_ARB_vertex_array_object
20:06:04: GL_ARB_vertex_attrib_64bit
20:06:04: GL_ARB_vertex_attrib_binding
20:06:04: GL_ARB_vertex_buffer_object
20:06:04: GL_ARB_vertex_shader
20:06:04: GL_ARB_vertex_type_10f_11f_11f_rev
20:06:04: GL_ARB_vertex_type_2_10_10_10_rev
20:06:04: GL_ARB_viewport_array
20:06:04: GL_ATI_blend_equation_separate
20:06:04: GL_ATI_meminfo
20:06:04: GL_ATI_texture_float
20:06:04: GL_ATI_texture_mirror_once
20:06:04: GL_EXT_EGL_image_storage
20:06:04: GL_EXT_EGL_sync
20:06:04: GL_EXT_abgr
20:06:04: GL_EXT_blend_equation_separate
20:06:04: GL_EXT_demote_to_helper_invocation
20:06:04: GL_EXT_depth_bounds_test
20:06:04: GL_EXT_draw_buffers2
20:06:04: GL_EXT_draw_instanced
20:06:04: GL_EXT_framebuffer_blit
20:06:04: GL_EXT_framebuffer_multisample
20:06:04: GL_EXT_framebuffer_multisample_blit_scaled
20:06:04: GL_EXT_framebuffer_object
20:06:04: GL_EXT_framebuffer_sRGB
20:06:04: GL_EXT_memory_object
20:06:04: GL_EXT_memory_object_fd
20:06:04: GL_EXT_packed_depth_stencil
20:06:04: GL_EXT_packed_float
20:06:04: GL_EXT_pixel_buffer_object
20:06:04: GL_EXT_polygon_offset_clamp
20:06:04: GL_EXT_provoking_vertex
20:06:04: GL_EXT_semaphore
20:06:04: GL_EXT_semaphore_fd
20:06:04: GL_EXT_shader_image_load_formatted
20:06:04: GL_EXT_shader_image_load_store
20:06:04: GL_EXT_shader_integer_mix
20:06:04: GL_EXT_shader_samples_identical
20:06:04: GL_EXT_texture_array
20:06:04: GL_EXT_texture_compression_dxt1
20:06:04: GL_EXT_texture_compression_rgtc
20:06:04: GL_EXT_texture_compression_s3tc
20:06:04: GL_EXT_texture_filter_anisotropic
20:06:04: GL_EXT_texture_integer
20:06:04: GL_EXT_texture_mirror_clamp
20:06:04: GL_EXT_texture_sRGB
20:06:04: GL_EXT_texture_sRGB_R8
20:06:04: GL_EXT_texture_sRGB_decode
20:06:04: GL_EXT_texture_shadow_lod
20:06:04: GL_EXT_texture_shared_exponent
20:06:04: GL_EXT_texture_snorm
20:06:04: GL_EXT_texture_swizzle
20:06:04: GL_EXT_timer_query
20:06:04: GL_EXT_transform_feedback
20:06:04: GL_EXT_vertex_array_bgra
20:06:04: GL_EXT_vertex_attrib_64bit
20:06:04: GL_EXT_window_rectangles
20:06:04: GL_IBM_multimode_draw_arrays
20:06:04: GL_INTEL_blackhole_render
20:06:04: GL_KHR_blend_equation_advanced
20:06:04: GL_KHR_context_flush_control
20:06:04: GL_KHR_debug
20:06:04: GL_KHR_no_error
20:06:04: GL_KHR_parallel_shader_compile
20:06:04: GL_KHR_robust_buffer_access_behavior
20:06:04: GL_KHR_robustness
20:06:04: GL_KHR_texture_compression_astc_ldr
20:06:04: GL_KHR_texture_compression_astc_sliced_3d
20:06:04: GL_MESA_framebuffer_flip_y
20:06:04: GL_MESA_pack_invert
20:06:04: GL_MESA_shader_integer_functions
20:06:04: GL_MESA_texture_signed_rgba
20:06:04: GL_NVX_gpu_memory_info
20:06:04: GL_NV_alpha_to_coverage_dither_control
20:06:04: GL_NV_compute_shader_derivatives
20:06:04: GL_NV_conditional_render
20:06:04: GL_NV_copy_image
20:06:04: GL_NV_depth_clamp
20:06:04: GL_NV_packed_depth_stencil
20:06:04: GL_NV_shader_atomic_int64
20:06:04: GL_NV_texture_barrier
20:06:04: GL_NV_vdpau_interop
20:06:04: GL_OES_EGL_image
20:06:04: GL_S3_s3tc
20:06:04: **************************************
20:06:04: ***   OpenGL 3+ Renderer Started   ***
20:06:04: **************************************
20:06:04: Registering ResourceManager for type GpuProgram
20:06:04: RenderSystem capabilities
20:06:04: -------------------------
20:06:04: RenderSystem Name: OpenGL 3+ Rendering Subsystem
20:06:04: GPU Vendor: amd
20:06:04: Device Name: AMD RENOIR (DRM 3.42.0, 5.15.12-051512-generic, LLVM 13.0.0)
20:06:04: Driver Version: <IP_ADDRESS>
20:06:04:  * Fixed function pipeline: no
20:06:04:  * Hardware generation of mipmaps: no
20:06:04:  * Texture blending: yes
20:06:04:  * Anisotropic texture filtering: yes
20:06:04:  * Dot product texture operation: yes
20:06:04:  * Cube mapping: yes
20:06:04:  * Hardware stencil buffer: yes
20:06:04:    - Stencil depth: 8
20:06:04:    - Two sided stencil support: yes
20:06:04:    - Wrap stencil values: yes
20:06:04:  * Hardware vertex / index buffers: yes
20:06:04:  * 32-bit index buffers: yes
20:06:04:  * Vertex programs: yes
20:06:04:  * Number of floating-point constants for vertex programs: 16384
20:06:04:  * Number of integer constants for vertex programs: 16384
20:06:04:  * Number of boolean constants for vertex programs: 16384
20:06:04:  * Fragment programs: yes
20:06:04:  * Number of floating-point constants for fragment programs: 16384
20:06:04:  * Number of integer constants for fragment programs: 16384
20:06:04:  * Number of boolean constants for fragment programs: 16384
20:06:04:  * Geometry programs: yes
20:06:04:  * Number of floating-point constants for geometry programs: 16384
20:06:04:  * Number of integer constants for geometry programs: 16384
20:06:04:  * Number of boolean constants for geometry programs: 16384
20:06:04:  * Tessellation Hull programs: yes
20:06:04:  * Number of floating-point constants for tessellation hull programs: 16384
20:06:04:  * Number of integer constants for tessellation hull programs: 16384
20:06:04:  * Number of boolean constants for tessellation hull programs: 16384
20:06:04:  * Tessellation Domain programs: yes
20:06:04:  * Number of floating-point constants for tessellation domain programs: 16384
20:06:04:  * Number of integer constants for tessellation domain programs: 16384
20:06:04:  * Number of boolean constants for tessellation domain programs: 16384
20:06:04:  * Compute programs: yes
20:06:04:  * Number of floating-point constants for compute programs: 16384
20:06:04:  * Number of integer constants for compute programs: 16384
20:06:04:  * Number of boolean constants for compute programs: 16384
20:06:04:  * Supported Shader Profiles: glsl glsl130 glsl140 glsl150 glsl330 glsl400 glsl410 glsl420 glsl430 glsl440
20:06:04:  * Texture Compression: yes
20:06:04:    - DXT: yes
20:06:04:    - VTC: no
20:06:04:    - PVRTC: no
20:06:04:    - ATC: no
20:06:04:    - ETC1: no
20:06:04:    - ETC2: yes
20:06:04:    - BC4/BC5: yes
20:06:04:    - BC6H/BC7: yes
20:06:04:    - ASTC: yes
20:06:04:  * Hardware Occlusion Query: yes
20:06:04:  * User clip planes: yes
20:06:04:  * VET_UBYTE4 vertex element type: yes
20:06:04:  * Infinite far plane projection: yes
20:06:04:  * Hardware render-to-texture: yes
20:06:04:  * Floating point textures: yes
20:06:04:  * Non-power-of-two textures: yes
20:06:04:  * 1d textures: yes
20:06:04:  * Volume textures: yes
20:06:04:  * Max Texture resolution (2D) 16384
20:06:04:  * Max Texture resolution (3D) 2048
20:06:04:  * Max Texture resolution (Cubemaps) 16384
20:06:04:  * Multiple Render Targets: 8
20:06:04:    - With different bit depths: yes
20:06:04:  * Point Sprites: yes
20:06:04:  * Extended point parameters: yes
20:06:04:  * Max Point Size: 2048
20:06:04:  * Vertex texture fetch: yes
20:06:04:  * Number of world matrices: 0
20:06:04:  * Number of texture units: 16
20:06:04:  * Stencil buffer depth: 8
20:06:04:  * Number of vertex blend matrices: 0
20:06:04:    - Max vertex textures: 32
20:06:04:    - Vertex textures shared: yes
20:06:04:  * Render to Vertex Buffer : yes
20:06:04:  * Hardware Atomic Counters: yes
20:06:04:  * Compute max threads per threadgroup per axis: 1024, 1024, 64
20:06:04:  * Compute max threads per threadgroup total: 1024
20:06:04:  * GL 1.5 without VBO workaround: no
20:06:04:  * Frame Buffer objects: yes
20:06:04:  * Frame Buffer objects (ARB extension): no
20:06:04:  * Frame Buffer objects (ATI extension): no
20:06:04:  * PBuffer support: no
20:06:04:  * GL 1.5 without HW-occlusion workaround: no
20:06:04:  * Vertex Array Objects: yes
20:06:04:  * Separate shader objects: no
20:06:04:  * Using Reverse Z: yes
20:06:04: DefaultWorkQueue('Root') initialising on thread main.
20:06:04: Particle Renderer Type 'billboard' registered
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/Compositors' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Common' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Common/GLSL' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Common/GLSLES' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Terra' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/2.0/scripts/materials/Terra/GLSL' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/materials/programs' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/materials/programs/GLSL' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/materials/programs/Metal' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/materials/scripts' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/ogre2/media/materials/textures' of type 'FileSystem' to resource group 'General'
20:06:04: Parsing scripts for resource group Autodetect
20:06:04: Finished parsing scripts for resource group Autodetect
20:06:04: Creating resources for group Autodetect
20:06:04: All done
20:06:04: Parsing scripts for resource group General
20:06:04: Parsing script Quad.program
20:06:04: Parsing script DepthUtils.material
20:06:04: Parsing script Copyback.material
20:06:04: Parsing script EsmGaussianBlurLogFilter.material
20:06:04: Parsing script DPSM.material
20:06:04: Parsing script GpuNormalMapper.material
20:06:04: Parsing script point_cloud_point.material
20:06:04: Parsing script depth_camera.material
20:06:04: Parsing script skybox.material
20:06:04: Parsing script thermal.material
20:06:04: Parsing script gpu_rays.material
20:06:04: Parsing script picker.material
20:06:04: Parsing script selection_buffer.material
20:06:04: Parsing script gaussian_noise.material
20:06:04: Parsing script GpuNormalMapper.compositor
20:06:04: Parsing script TerraShadowGenerator.compositor
20:06:04: Parsing script EsmGaussianBlurLogFilter.material.json
20:06:04: Parsing script Mipmaps.material.json
20:06:04: Parsing script TerraShadowGenerator.material.json
20:06:04: Finished parsing scripts for resource group General
20:06:04: Creating resources for group General
20:06:04: All done
20:06:04: Parsing scripts for resource group Internal
20:06:04: Finished parsing scripts for resource group Internal
20:06:04: Creating resources for group Internal
20:06:04: All done
20:06:04: Added resource location '/usr/share/ignition/ignition-rendering6/media/materials/textures/' of type 'FileSystem' to resource group 'General'
20:06:04: Can't assign material scene::Material(65511) because this Material does not exist. Have you forgotten to define it in a .material script?
20:06:04: Can't assign material scene::Material(65511) because this Material does not exist. Have you forgotten to define it in a .material script?
20:06:04: Can't assign material scene::Material(65511) because this Material does not exist. Have you forgotten to define it in a .material script?
20:06:04: Can't assign material scene::Material(65511) because this Material does not exist. Have you forgotten to define it in a .material script?
20:06:04: Can't assign material scene::Material(65511) because this Material does not exist. Have you forgotten to define it in a .material script?
20:06:04: Added resource location '/home/peci1/.ignition/fuel/fuel.ignitionrobotics.org/openrobotics/models/rescue randy/2/meshes' of type 'FileSystem' to resource group 'General' with recursive option
20:06:04: Initialising resource group General
20:06:04: Can't assign material scene::Material(65485) because this Material does not exist. Have you forgotten to define it in a .material script?
20:06:04: Added resource location '/home/peci1/.ignition/fuel/fuel.ignitionrobotics.org/openrobotics/models/rescue randy/2/materials/textures/' of type 'FileSystem' to resource group 'General'
20:06:04: Added resource location '/home/peci1/.ignition/fuel/fuel.ignitionrobotics.org/caguero/models/smoke_generator/2/materials/textures/' of type 'FileSystem' to resource group 'General'
20:06:04: Texture memory budget exceeded. Stalling GPU.
20:06:04: Texture memory budget exceeded. Stalling GPU.
20:06:04: Texture memory budget exceeded. Stalling GPU.
20:06:04: Stalling was not enough. Freeing memory.
20:06:04: Texture memory budget exceeded. Stalling GPU.
20:06:04: Texture memory budget exceeded. Stalling GPU.
20:06:04: Stalling was not enough. Freeing memory.
20:06:04: Vertex Shader: 100000001VertexShader_vs
Fragment Shader: 100000001PixelShader_ps
 GLSL validation result :
active samplers with a different type refer to the same texture image unit
20:06:04: Vertex Shader: 100000002VertexShader_vs
Fragment Shader: 100000002PixelShader_ps
 GLSL validation result :
active samplers with a different type refer to the same texture image unit
20:06:04: Vertex Shader: 100000003VertexShader_vs
Fragment Shader: 100000003PixelShader_ps
 GLSL validation result :
active samplers with a different type refer to the same texture image unit
20:06:04: Vertex Shader: 100000004VertexShader_vs
Fragment Shader: 100000004PixelShader_ps
 GLSL validation result :
active samplers with a different type refer to the same texture image unit
20:06:04: Vertex Shader: 100000008VertexShader_vs
Fragment Shader: 100000008PixelShader_ps
 GLSL validation result :
active samplers with a different type refer to the same texture image unit
20:06:04: Vertex Shader: 100000009VertexShader_vs
Fragment Shader: 100000009PixelShader_ps
 GLSL validation result :
active samplers with a different type refer to the same texture image unit

Yeah, this looks like false alarm. The server seems to work just fine.


[ new ] efficient way to get shortest path between two nodes

The implementation is working properly, but the code eventually could be a bit nicer. Code repetition can surely be avoided.

Thanks!


Can use Apply button for filters (need help)

Description
This is to enable "Apply filters" button so that any filter update will not trigger any query until we click "Apply filters". I'm thinking this is important (at least for me) to work with tables that frequently need multiple filters applied.
https://github.com/filamentphp/filament/assets/26832856/bcaefcbd-98f5-40b4-929c-1a4504888456

Still not sure about the namings, currently it is $table->useApplyFiltersButton().

I need help to make the action closes the modal/dropdown after it is run.

Corrections and suggestions are absolutely welcome.

[x] Visual changes (if any) are shown using screenshots/recordings of before and after.

Code style

[ ] composer cs command has been run.

Testing

[x] Changes have been tested.

Documentation

[x] Documentation is up-to-date.

This has issues since any Livewire request will update the filters without the user asking.
Rewritten in #10531

Alright, thank you...


Could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

Hello All !
I enconter a issue when I launch the .sh :
sudo ./docker_run.bash -c ./config/amazon_rtx_perso.yaml -a discord -w https://discord.com/api/webhooks/blablabla/blablabla
Output :
latest: Pulling from ericjmarti/inventory-hunter
Digest: sha256:bff620c9450adccd00f1120b3f5083e0f5f165ffef815541c8ecdd825c02cca5
Status: Image is up to date for ericjmarti/inventory-hunter:latest
docker.io/ericjmarti/inventory-hunter:latest
Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

Anyone has an idea?
Thank you in advance!

solved.
I had to stop my VPN client before to launch docker_run.bash.


In-progress Relay to Futil compiler

This is an in-progress script that compiles basic Relay programs to Futil components
example:
Relay program
v0.0.4
fn (%x: float32) {
  let %v = add(%x, 1);
  if (%v == 42){
      %x
   }else{
      42
   }
}

Futil program
import "primitives/std.lib";
component main() -> () {
  cells {
    x = prim std_reg(32);
    ret = prim std_reg(32);
    const3 = prim std_const(32, 42);
    eq4 = prim std_eq(32);
    const7 = prim std_const(32, 42);
    res9 = prim std_reg(32);
    const1 = prim std_const(32, 1);
    add2 = prim std_add(32);
    v = prim std_reg(32);
  }
  wires {
    group group10 {
      ret.in = res9.out;
      ret.write_en = group10[go];
      group10[done] = ret[done];
    }
    group cond5 {
      eq4.left = v.out
      eq4.right = const3.out
      cond5[done]= 1'd1
    }
    group branch6 {
      res9.in = x.out
      branch6[done] = res9.done
    }
    group branch8 {
      res9.in = const7.out
      branch8[done] = res9.done
    }
    group group0 {
      v.in = add2.out
      v.write_en = 1'd1
      group0[done] = v.done
      add2.left = x.out
      add2.right = const1.out
    }
  }
  control {
    seq {
      if eq4.out with cond5 {
        branch6
      }else {
        branch8
      }
      group0
      group10
    }
  }
}

todos

fix write_enable and done signal logics
allow tensors as function input types
add more examples and their expected results to tests

(Just merged in master, FWIW, in an effort to make the CI results green for the branch—so you'll want to pull.)

just added all the .expect files!


Allow egui-wgpu on Wasm Atomics

Describe the bug
I have a use case where we use wgpu with wasm atomics and currently egui-wgpu doesn't work with wasm atomics enabled. This is blocking us from bumping wgpu versions. I thought initially that 0.18 would remove lifetimes from renderpasses, causing this issue to magically fix itself too, but that's actually more difficult than it seems and won't happen for the next couple versions.

Totally missed https://github.com/emilk/egui/commit/b896d641c578c04603adf07a9350b8bfc3c7ed9f which fixes the issue

@cwfitzgerald - can you please tell me how that PR fixed the issue? I am having the same problem as you I think.
I tried building the egui_demo_app with target-feature=+atomics and it still failed.


Distinguish between different plant parts in annotations

For bounding box and instance annotations, we might need to distinguish between annotations bounding the whole part of the plant vs an identifiable portion of the plant.
@geezacoleman suggests:

we would need to define on a whole-dataset level the part of the plant that is the target of the annotation, but also on a per class basis e.g.:

Whole plant
Leaves
Stem/tiller
Growing point
Flowers
Seed pods (this could crossover neatly with the wheat ear data that the other groups in the TCG are using)

I suggested that

This kind of subdivision could be a qualifier to the annotation category.

That is, we would distinguish between "weed:  (stem)" and "weed:  (flower)".
I think "any part" might be clearer than "whole plant" btw.

That is, we would distinguish between "weed: (stem)" and "weed: (flower)".

As long as both the 'weed' part and the '' are searchable this would be ok. People should be able to either use all annotations grouped for a weed species (i.e. not care about specificity of the annotation) or potentially filter by plant part? The latter would be a much more niche use case and might not necessarily be worthwhile in the first version of this.
@jnothman mentioned:

Could we make fewer subcategories than the below? Would we ever label the leaves without the stem?

I have done leaf and flower-only annotation before. Annotating leaves is potentially one method for managing whole plant occlusion. In some instances, only one leaf might be visible of the weed. Stem is less so, but is still an interesting area of research for very precise detection. Leaf, flower, stem would be important and wheat head datasets already exist, so it makes sense to include seed/seed pods etc.
E.g. Lottes et al. 2020:

Compared to state-of-the-art approaches, our approach not only substantially improves the stem detection accuracy, i.e., distinguishing crop and weed stems, but also provides an improvement in the semantic segmentation performance.

See #574


Support NPM dependencies that point to VCS hosts (like GitHub)

Please have a look at the individual commit messages for the details.

FYI @neubs-bsi.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/267 is merged into live branch.
Auto archive content to https://github.com/OPS-E2E-PPE/docs-archive-test-target.git

Docs Build status updates of commit 866143c:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Release_Archive_master_2020-01-10-07-07-04 has been deleted or has been force pushed: fatal: couldn't find remote ref refs/heads/Release_Archive_master_2020-01-10-07-07-04

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[Bug]: Inconsistent empty state for kserve in global view

Is there an existing issue for this?

[X] I have searched the existing issues

Deploy type
OpenDataHub core version (eg. v1.6.0)
Version
2.4
Current Behavior
We currently have this empty view for a KServe Project

Expected Behavior
To have the following label:
To get started, deploy a model
Steps To Reproduce

Enable only kserve
Go to Model Serving view
Select an empty project

Workaround (if any)
No response
What browsers are you seeing the problem on?
No response
Anything else
No response

cc @lucferbux


How to prevent jupyter notebook truncating lens.interactive_explore(ls)

How can I prevent jupyter notebook from truncating the output to lens.interactive_explore(ls)?

(Sorry if this is more of a jupyter notebook question - thanks for any help!)

Finally! Clicking on the left hand-side of the cell switches between truncated and not-truncate mode.
Thanks anyway


Remove non-working links

Summary
There was no replacement links after contacting the blog author.
Closes https://github.com/dotnet/docs/issues/11705

There are two other topics linking to that site: https://github.com/dotnet/docs/search?utf8=✓&q=codebetter&type=
Do you wanna tackle them on the same PR?

Done @mairaw!

No worries 😊


Correct single to multi-node scaling example

Fixes #11643

This change is

v20.2/cockroach-start-single-node.md, line 284 at r1 (raw file):

    ~~~

5. Update preconfigured [replication zones](configure-replication-zones.html) to replicate user data 3 times and import internal data 5 times:

Thanks for reporting this, @smcvey. Where did you get these correct commands? I'd like to loop in an engineer to validate them.
Also, the intro sentence refers only to updating the replication factor. Can you summarize what the last for commands are about?

v20.2/cockroach-start-single-node.md, line 284 at r1 (raw file):
Previously, jseldess (Jesse Seldess) wrote…
Thanks for reporting this, @smcvey. Where did you get these correct commands? I'd like to loop in an engineer to validate them.
Also, the intro sentence refers only to updating the replication factor. Can you summarize what the last for commands are about?

Oh, also, I made this change in v20.2, v21.1, and v21.2. Do you know if this is identical across those versions?

@jseldess

Where did you get these correct commands? I'd like to loop in an engineer to validate them.

I didn't get them from anywhere other that my own testing.  I just compared the output of show zone configurations; from a multi-node cluster, and then after turning a single node cluster into a multi-node, compared the outputs of that command.
My assumption is that these commands are meant to make it seem like it was never a single node setup, and should look exactly like a multi-node setup.  The old instructions doesn't quite put the zone configuration settings into the same state - my commands do.

Also, the intro sentence refers only to updating the replication factor. Can you summarize what the last for commands are about?

The old instructions have this:
ALTER TABLE system.public.jobs CONFIGURE ZONE USING num_replicas = 5;

The jobs table does not have its own zone configuration in a multi-node cluster.  I suspect this was probably correct for a much older version.
As for these:
ALTER TABLE system.public.replication_constraint_stats CONFIGURE ZONE USING num_replicas = 5;
ALTER TABLE system.public.replication_stats CONFIGURE ZONE USING num_replicas = 5;

They specifically set the num_replicas value at the level of the tables - this is not like the default zone configurations of a multi-node setup where the num_replicas is set at the DATABASE/RANGE system level.  My commands first discard the override then set things correctly.

Thanks, @smcvey. I appreciate the added detail. Do you know if these commands are correct for the versions I've handled in this PR (20.2, 21.1, 21.2)?

I've tested the same instructions for 20.2 and they are correct.  I've no idea about 21.2.  If you can link me a copy of a binary of that version, I can test -  should only take a few minutes.

Thanks, @smcvey. We don't have any official versions of 21.2 to download yet. I think you'd have to build it from source. I'll check if there are, in fact, binaries available somewhere tomorrow.

@mikeCRL, this is an oldish PR I never got over the finish line. Feel free to take it over, hand to someone else, or close.

Hi @lnhsingh! Closing this old PR. If it's still relevant, please feel to have someone reopen and take it over.


Why oneOf required for select and radio widget?

Just curious as to why oneOf is required?

Hi @leolorenzoluis, using a bare enum wouldn't allow to add a label to different options using the description property.

What are sample use cases that uses description property?

Description property is used by widgets to display a label for your fields :
{
    "type": "object",
    "properties": {

        "name": {
            "type": "string",
            "description": "Enter your name"
        },

        "country": {
            "type": "string",
            "widget": "select",
            "description": "Select your country",

            "oneOf":[{
                "enum": ["UK"], "description": "United Kingdom"
            }, {
                "enum": ["US"], "description": "UnitedStates"
            }]
        }
    }
}

In cases where only an enum is provided, ¿shouldn't it be better to just use the value as the label?. This way it's compatible with both styles.


Array-collecting an empty ES6 Map should result in an empty array

Collecting an empty ES6 Map to an array currently returns an array with one undefined element.
Test case fails with
>> input empty ES6 map
>> Message: null
>> Actual: 1
>> Expected: 0
>> at http://code.jquery.com/qunit/qunit-1.16.0.js:1326
>>   at file:///home/ju/work/streamjs/test/test-constructors-compiled.js:87
>>   at http://code.jquery.com/qunit/qunit-1.16.0.js:903
>>   at http://code.jquery.com/qunit/qunit-1.16.0.js:1032
>>   at process (http://code.jquery.com/qunit/qunit-1.16.0.js:591)
>>   at begin (http://code.jquery.com/qunit/qunit-1.16.0.js:636)
>>   at http://code.jquery.com/qunit/qunit-1.16.0.js:652

This will be addressed in the successor library called Sequency: https://github.com/winterbe/sequency


Enhancement of login page

To create a robust login system for SPROCTOR, you can use Flask, a Python web framework, to build a scalable, browser-accessible login page that securely handles user authentication. User credentials can be stored in a password-protected Excel file (.xlsx), accessed with the openpyxl library, while pandas manages data retrieval. The HTML front end for the login page, created with Flask’s templating, allows users to input credentials, providing feedback on login status through Flask’s messaging. Flask serves as the backend that loads and verifies the credentials upon form submission. After configuring and running the Flask app, this login page will be available on localhost, allowing easy user access and secure authentication. This setup avoids Tkinter, ensuring flexibility for future expansions and browser-based accessibility.
@tanishaness please assign this issue to me thank you

Amazing


Add meta to generated routes

It would be useful to be able to add meta to the generated routes, a little like nuxt allows you to do with https://nuxtjs.org/api/pages-head
An use case for this feature would be autogenerating a menu containing the generated routes, and providing them with a name and description.

@ktsn Sorry I don't think I explained in enough detail. I didn't actually mean html meta info like the vue-meta module can provide, but the meta object that can be added to routes, https://router.vuejs.org/guide/advanced/meta.html
The example on that page is a perfect use case for when this would be useful, so that we can create middleware that is applied to specific pages etc.
I'm proposing that when defining a page component you could add an additional function to it that would be used to generate the routes meta object:
export default {
  data () {
    return {
      greeting: 'Hello'
    }
  },
 routeMeta() {
   return {
      authRequired: true,
      title: 'My page'
   }
 }
}

which would generate the a route like:
export default [
  {
    name: 'name',
    path: '/the-path',
    component: () => import('the-component'),
    meta: {
      authRequired: true,
      title: 'My page'
    }
  },
]

Additionally it would allow you to more easily generate dynamic menus based off the generated routes by using the $router object within components. Something along the lines of this:
<template>

<router-link :to="link.path">{{ link.title }}</router-link>

<template>

Understood. I see the use case and I guess it would be useful. But I don't think we can include meta data in component options because vue-route-generator does not evaluate .vue file.
I think we can define some custom block and write meta data in it as json instead.

@zefman You can declare route meta data in <route-meta> custom block since v0.2.0.
https://github.com/ktsn/vue-route-generator#route-meta

@ktsn nice work thanks! Using a custom block was a great idea!


Dynamic Wagtail blocks for career pages

This PR adds some new Wagtail block types to allow content creators to add current job openings to pages, either in list or table form.
To maintain current (non-Wagtail) behavior, the careers landing page (a Sublanding Page) can be given a new JobListingList element. The current openings page (a Browse Page) can be given a new JobListingTable element.
Additions

New jobmanager.models.JobListingList and jobmanager.models.JobListingTable Wagtail block types for dynamic display of currently open jobs.
New v1.atomic_elements.organisms.ModelBlock, .ModelList, and .ModelTable Wagtail generic block types as supporting elements for the above, and for potential future use in other apps.
New tests around all new components.
Pulled forward the very useful IntegerBlock from Wagtail 1.6, until we upgrade.

Changes

Moved @sebworks cfgov/jinja2/v1/_includes/molecules/jobs-list.html template from #2275 to cfgov/jinja2/v1/_includes/organisms/job-listing-list.html to be more consistent with other files -- please advise if it'd be better to structure otherwise.
Minor change to v1.util.util. get_secondary_nav_items logic that was preventing  BrowsePage preview.

Testing

Testing this code requires that you have some JobListingPage pages in your Wagtail DB. These can be created manually or using the conversion script in #2340.

Review

@cfpb/cfgov-backends @sebworks @schaferjh

Screenshots
Sublanding pages have a new "Job listing list" option

Specifying options for the jobs list

Jobs list with no openings

Jobs list with openings

Browse pages have a new "Job listing table" option

Specifying options for the jobs table

Jobs table with no openings

Jobs table with openings

Notes

This PR is slightly complex mainly because Wagtail does not have a simple way to display dynamic content (e.g. content that gets determined at page view time, not at edit time). Specifically, we want to be able to render jobs lists based on the attributes of the pages in the database. We also want to be able to do this from multiple pages (as opposed to a single parent > filterable children approach).
Hopefully breaking it out into the generic ModelBlock, ModelList, and ModelTable widgets will be useful for other projects in future, as this should make it easy to do something like "create a block that shows all Foo items in the DB". See the tests for various examples of this.

Todos

@sebworks the jobs list table doesn't highlight rows as in the current page, even if I set the new row-links property. Any idea why?
@richaagarwal @sebworks I'm not sure if it would be ideal to try to move to the new TableBlock work you did. Perhaps this should be additional work in future?

Checklist

[X] Changes are limited to a single goal (no scope creep)
[X] Code can be automatically merged (no conflicts)
[ ] Code follows the standards laid out in the front end playbook
[X] Passes all existing automated tests
[X] New functions include new tests
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)

I'm not sure if it would be ideal to try to move to the new TableBlock work you did. Perhaps this should be additional work in future?

Addressed in https://github.com/cfpb/cfgov-refresh/pull/2344

Does this PR require migrations?

@sebworks it shouldn't require migrations because it doesn't alter any existing pages.
Regarding #2344, there will still need additional work to move over to TableBlock because I use Table internally here to render the table dynamically.

Regarding #2344, there will still need additional work to move over to TableBlock because I use Table internally here to render the table dynamically.

Yep, totally dude.

@chosak , would it be possible to add some help text explaining that the data for the block is dynamic. This would help content editors know that there is no data to enter.

should the jobs table automatically link to the job detail page?

@sebworks thanks, the help text is a good suggestion. It's tricky to add help text to the entire block but I can add it to each sub-block. What do you think of these, added in c443605:

As far as the table linking, right now I generate something like this:

I'd like the whole row to link (and highlight) like the current page but I'm not quite sure what I'm missing. I have a checkbox for row-links -- is this not the correct setting?

Sometimes I'm getting a maximum recursion depth exceeded while calling a Python error when previewing a Browse page with a Job listing table. I'm not sure it's related to this PR though.

@sebworks hmm, interesting, I haven't seen that when previewing before. Can you share more of the full stack trace?

👍

@sebworks hmm, interesting, I haven't seen that when previewing before. Can you share more of the full stack trace?

This was a local issue that we resolved in chat.

Added one additional change in eaa4979 that moves the JobListingList into the sidebar of SublandingPage instead of in the content section, to be consistent with how this appears today.

Added one additional change in eaa4979 that moves the JobListingList into the sidebar of SublandingPage instead of in the content section, to be consistent with how this appears today.

@chosak thanks, 💯

@chosak Overall this looks really solid 👍  If you could add some light documentation to a few of the classes and functions that aren't self explanatory, that would be awesome

@richaagarwal thanks for the review. I added docstrings to the new abstract block types in 713a2f5.

Thanks!  👍


Add --actionable-primary-background-readonly

### Tasks
- [x] Add characteristic and palette token to Theme file in Figma
- [x] Add token to Light mode palette in Figma
- [x] Add token to Dark mode palette in Figma
- [x] Publish palette updates to internal Figma users
- [ ] Publish palette updates to Figma community
- [ ] Add tokens in code

Need to add the following:
Characteristic (Actionable)
--actionable-primary-background-readonly
--actionable-cursor-readonly
Palette (Interact)
--palette-interact-primary-background-readonly

Files have been updated. There's an open question with @bhoppers2008 regarding opacity levels and the changes will need to be published to Figma community.

@pseys have replied to the figma comment but not totally sure what you mean. Can you reply :)
Does it need publishing to the community regardless of that answer?

hi all, following up on this issue - can we please address ben's question/comments above? @pseys

Done.

@ZarkoPernar @libertymayc @joshwooding could one of you refresh my memory on this one. We had a task to add 3 tokens, but they're not in code and this issue is closed. Did we decide not to add them in the end? They're in design but this looks like a mistake, so I can remove them if needs be.

I believe this was for selectable Pill which wasn't added in Pill v1? and then the issue was closed as we were going to collect all things needed for dev work in the sheet


sshkey known host lens not found

I'm unable to get sshkey to work.  I see the there is a lens provided within the module's lib directory.. Is this supposed to be used/installed automatically?  There is no known_hosts.aug in /usr/share/augeas/lenses/dist.
Error
Error: /Stage[main]/Profiles::Base/Profiles::Base::Modules::Stage1/Openssh-known-hosts/Sshkey[github.com]: Could not evaluate: Augeas didn't load /etc/ssh/ssh_known_hosts with Known_Hosts.lns:

Example
    sshkey { 'github.com':
        ensure => present,
        host_aliases => ['*.github.com'],
        type => 'ssh-rsa',
        key => '...',
    }

Running
CentOs 6.6 x64
ruby-augeas-0.4.1-3.el6.x86_64
augeas-1.0.0-7.el6_6.1.x86_64
augeas-libs-1.0.0-7.el6_6.1.x86_64
herculesteam-augeasproviders_ssh 2.4.0

I am having the same problem and I am wondering if this module should be using Authorized_Keys.lns based on this:
find /opt/puppet -name *aug | egrep -i "known|author"
/opt/puppet/share/augeas/lenses/dist/tests/test_authorized_keys.aug
/opt/puppet/share/augeas/lenses/dist/authorized_keys.aug

I removed augeasproviders_ssh\lib\puppet\provider\sshkey* to utilize puppet's builtin sshkey type  and was able to get things working again.

@jamesj2 the  Known_Hosts lens is from Augeas 1.3. One option could be to backport it and add it to your profiles module in lib/augeas/lenses.
@nitzerstorm sshkey manages host keys, not authorized keys.


chore: activate snippet-bot

This is an empty configuration file to activate snippet-bot:
https://github.com/googleapis/repo-automation-bots/tree/master/packages/snippet-bot

You need us to merge this or something?

@coryan Thanks, I'll merge.


Draft: Add updatedAt timestamp to page tree

This adds an updatedAt timestamp to pageTreeNodes and a document subscriber that updates this timestamp when the children's content changes. Furthermore, the pageTreeService was extended to receive the pageTreeNodes as a paginated list as well as to filter them by scope and sort them by timestamp. With this, the latest content updates shown in the dashboard are scope dependent.

@nsams would it make sense to target next branch because of your changes to the page tree loading?

@nsams would it make sense to target next branch because of your changes to the page tree loading?

yes, in the current state (next will get soon main, next is quite ahead of main) I would avoid main as target as much as possible.


[BUG] Cannot run sync twice on TW<->CalDAV

Describe the bug
On second restart of synchronization, I get a crash with the following trace: https://gist.github.com/RaitoBezarius/4af81a60c5736dbabc44b71e975b9ebe
To Reproduce
I run the following script:
#!/nix/store/vqvj60h076bhqj6977caz0pfxs6543nb-bash-5.2-p15/bin/bash
set -o errexit
set -o nounset
set -o pipefail

export PATH="/nix/store/iz4dlydb7paz2f8xi0dfk6kfdmhm7d4c-gnupg-2.4.1/bin:$PATH"

export TASKRC=/home/raito/.config/task/taskrc
/nix/store/5kwpflid12cs3gxdc8vzg7sdgdw8826k-syncall-1.5.1/bin/tw_caldav_sync \
  --caldav-calendar TODO \
  --caldav-url https://redacted/remote.php/dav \
  --caldav-user raito \
  --caldav-passwd-pass-path /nix/store/qzy8q7j8ig8086pkbjszh6x0kxg3qzdl-kachpass/bin/kachpass \
  --caldav-passwd Private/nextCloud/twsync \
  --resolution-strategy MostRecentRS \
  --taskwarrior-tags sync-caldav \

twice.
kachpass is just a sophisticated pass interface with caching with kernel keyring.
Expected Behavior
The second time it should also work and continue sync.
📸 Screenshots
If applicable, add screenshots to help explain your problem.
Versions
OS Version (cat /etc/*-release; uname -a)
NixOS 23.11pre526036.3b1f3712a415 (Tapir).
Python version (python --version; python3 --version)
3.10.12
--version of your executable
tw_caldav_sync, version 1.5.1
(I am the packager of syncall in nixpkgs.)
Additional context
Contents of the YAML:
❯ cat ~/.config/syncall/TODO__None__sync-caldav__False__False.yaml
Tw_caldav_ids: !!python/object/apply:bidict._base._from_other
- !!python/name:bidict.bidict ''
- {}
- false

Hi @RaitoBezarius sorry for the delay and thanks for shipping this tool to NixOS :)
This looks like an issue with PyYAML, not with syncall or bubop per se.
Could you dump the list of python packages and their versions ?  e.g., with pip3 freeze

I too encountered this issue here on NixOS, and I tried to install syncall with pyyaml5.3.1 and it didn't help either. (@RaitoBezarius my branch is available here). In my case this wasn't even related to running it twice, it simply failed to run for the first time...

I made another attempt to use all of the dependencies pinned, and I encountered other errors.. so I will no longer put my efforts on this.
https://github.com/NixOS/nixpkgs/pull/319519

I cannot reproduce this issue unfortunately with syncall 1.8.7 + PyYAML 5.3.1, bidict 0.21.4.
If you can provide me with a set of commands I can reproduce it with I'm happy to look at it further.

I too encountered this issue here on NixOS, and I tried to install syncall with pyyaml5.3.1 and it didn't help either. (@RaitoBezarius my branch is available here). In my case this wasn't even related to running it twice, it simply failed to run for the first time...

https://github.com/doronbehar/nixpkgs/pull/new/WIP/syncall

This redirects to a new PR page to the nixpkgs repo. Probably there was a paste error here @doronbehar

Closing this as I cannot repro but can re-open on new information :)

doronbehar/nixpkgs/pull/new/WIP/syncall

This redirects to a new PR page to the nixpkgs repo. Probably there was a paste error here @doronbehar

Not a paste error. If you'd scroll down a bit you can see the dependencies I tried to pin.

syncall 1.8.7 + PyYAML 5.3.1, bidict 0.21.4.

I didn't pin bidict to this version though, so this might be what I missed. I don't have time now to put my efforts into trying again though, sorry. In anycase, it'd be nice if syncall would have been updated to support the new API of all of these libraries...

@RaitoBezarius the package installs fine.
below is the error that i am facing.
󰘧 tw_gtasks_sync
2024-11-19 16:03:05.172 | ERROR    | syncall.app_utils:inform_about_app_extras:242 -
You have to install the google,tw extras for tw_gtasks_sync to work.
With pip, you can do it with something like: "pip3 install syncall[google,tw]"
Exiting.

Remember to remove ~/.config/syncall/ while testing, so it doesn't read corrupted files.


[PE-D][Tester C] Wrong format resulting reset timetable

The first image is before the use of command and the second image is after using this command: 'edit i:1 c/12-1'. It seems it doesn't recognize it as format error but takes it as valid command. The result of the command is reset the timetable. This may cause inconvenience to the user as they might lose the timetable data.

Labels: type.FunctionalityBug severity.Medium
original: GERARDJM018/ped#8

duplicate to #137


Add GBP to Equivalent Values list

It would be nice to know what MEW thinks my wallet is worth in English money.

+1

https://github.com/kvhnuke/etherwallet/issues/431#issuecomment-302709558

merging wtih #435 for sanity


MILESTONE 3: Final touch

Hi Reviewer 👋

Here are the changes I implemented on the project

Added styling that matches the wireframe.
Fixed linter errors.
Applied previous reviewer's comment.

Thank you so much!


Add option to configure custom Image Registry

Align Helm Chart values file with registry override possibility
which is actually a common convention
Close #52
Signed-off-by: Alex Szakaly<EMAIL_ADDRESS>

Can you reference the convention?

Can you reference the convention?

Sure, just visit Bitnami Helm Chart Git Repository and open lets say argo-cd, mongodb, postgresql.
I thought you are thinking the same convention what you wrote in https://github.com/CrunchyData/postgres-operator-examples/pull/45


OOM caused by HorizontalAxis.ItemPlacer.aligned() when an axis has no label

How to reproduce
Reproduced in our internal testing
Observed behavior
OOM
Expected behavior
No OOM.
Vico version(s)
2.0.0-beta.1
Android version(s)
Any
Additional information
No response

Until a fix is released, you can resolve this by setting addExtremeLabelPadding to false in HorizontalAxis.ItemPlacer.aligned. (@papajul, this may be of interest to you.)

Until a fix is released, you can resolve this by setting addExtremeLabelPadding to false in HorizontalAxis.ItemPlacer.aligned. (@papjul, this may be of interest to you.)

Vico 2.0.0 Beta 2 fixes this.


What does color of location mark means?

I'm using locationLayerPlugin  '0.4.0'. After application start location mark is blue, but after 10 seconds it turns gray. Sometimes it can change color back and forward. Meanwhile GPS label in status bar is always solid(not blinking). What does it mean? Is it a bug?

This is the new stale location state see https://github.com/mapbox/mapbox-plugins-android/issues/58, If you prefer to disable this behavior, you can either use the style attributes of LocationLayerOptions class to disable or extend/shorten the delay until the icon becomes stale.

But why user location hasn't been updated? According to system location indicator connection is established.

I call:
private void enableLocationPlugin() {
// some code
     getLifecycle().addObserver(mLocationPlugin);
}

public void onConnected() {
        locationEngine.requestLocationUpdates();
}

@Override
public void onLocationChanged(Location location) {
    // some code
    locationEngine.removeLocationEngineListener(this);
}

but after reopen app from background location mark is always gray

A few things, in onLocationChanged you are removing the location engine listener, any reason for requesting 1 location update and then disabling the listener? The plugin should handle requests for you.
When you reopen the app from the background, can you see location updates in the log, does the location icon still remain gray?

reason: I need to move camera to current location on start


Dynamic selection box horizontal orientation is invalid

When the box is selected, it is valid to cancel the box selection in the vertical direction, but invalid in the horizontal direction.

@ayumni Could you please follow the Bug report template when creating a new issue?

@vdnhi Regular elements are ok, irregular elements are invalid

@ayumni What are irregular elements, can I have an example code sandbox that can reproduce this issue?

As @vdnhi already said, please follow the issue template.


editor:move-to-beginning-of-screen-line moves cursor to the end of the previous line

Steps to Reproduce

Open file with at least one line of text
Turn Soft Wrap on, if it's not already
Indent line at least once
Resize window so line soft wraps
Fire editor:move-to-beginning-of-screen-line with cursor positioned anywhere on any screen line, except for the first screen line or any other screen line's first character

Expected behavior: Cursor moves to beginning of current line
Actual behavior: Cursor moves to the end of the previous line
Versions
OS X 10.11.5
Atom    : 1.8.0
Electron: 0.36.8
Chrome  : 47.0.2526.110
Node    : 5.1.1

The issue appears to be caused by the function DisplayLayer.translateScreenPosition() in the text-buffer package, which handles soft wrapping when calculating the position of the cursor. I've opened a copy of this issue there as #161.


Add full set of Scratch operators; remove some of Blockly's

-All operators in Scratch 2.0
-Remove blocks/logic.js
-Remove all but the "primitive" numbers from math.js
-Update vertical playground

@rachel-fenichel Just making sure this method seems correct - rather than keeping any of the Blockly blocks for these purposes around.


Create a GitHub token for publishing (Docker) packages

One of the ways to solve https://github.com/rust-lang/infra-team/issues/81 would be to use Docker remote cache that uploads the cached layers to ghcr.io. I already have a test branch for that, but I will need access (in the CI workflows, probably through GH secrets) to a GH token with package publishing rights on rust-lang/rust to actually try it.

@Kobzol Can this be closed? It looks like a token was crated as part of https://github.com/rust-lang/rust/pull/119290.

Yes, I think so.


Can you use the same ports as http app?

Or does this "app" work completely separate to the "http" app?

It needs to use a different port, otherwise there's contention: who accepts connections, the HTTP server or the TCP server? I guess both could technically share the listener, but then it'd be random and you'd have undefined behavior.
So you'd probably want to use this app and then proxy to the HTTP app depending on the routes you define.
There's a pull request open in Caddy to make it possible to pipe a connection from one module to another, without needing to do any proxying. That will be cool I think!
What is your use case? Telling me specific details about what you're trying to do will help me design and implement a more useful feature.

I was interested in running a TLS-passthrough proxy for i.e. Signal etc. But it has to run on 443 and I already have caddy there with lots of layer 7 proxies and file servers. I was hoping it could have been a simple addition without affecting the l7, but they have to be integrated for that.
If this caddy app works separately then I might as well use a completely separate program like haproxy in front. I guess this module could be used so http app can get client ip address from haproxy. But haproxy supports l7 so I might as well do all my basic l7 proxying directly from that as well.
So yeah, it sounds like that PR will be important to bring caddy up to par with haproxy and nginx etc, which can handle both l7 and l4 together. Otherwise, I don't see much value in this module 🤷♂

@asdfisdffdg Can you try this branch, which added the ability to configure l4 as a caddy listener wrapper.
You have to write json config and http app must disable https though. If you want any help with configuration, @me and I'm glad to help you.


Make query.Value a type alias of interface{}

This fixes the case where filtering for dictionary keys or arrays fails due to a mismatch of types as described in https://github.com/rs/rest-layer/issues/139 and https://github.com/rs/rest-layer/issues/176.

@torie, was there also some translating methods that can be removed?
Travis tests must be updated to run a later version of Go as type aliases where introduced in Go 1.8. I suggest Go 1.10, and/or plausibly 1.9.

If this is merged, the valuesToInterface() conversion can also be removed from the storage backends where it's used, such as here https://github.com/rs/rest-layer-mongo/blob/4b10584d0513745d36ba07e93d3acc8f92323231/query.go#L90.


Add missing fields in talk and participation form

see commits messages for details.

related to #17

Coverage increased (+0.09%) to 89.738% when pulling c687a129029b5ed88a10ba742ab8350713bb9dc0 on missingfields into 937208338e0f11ccd780759a69f1955d316676fa on master.

Coverage increased (+0.09%) to 89.738% when pulling d9fd765c3aea41c5bb0ce7f794323d3bcd4d7d49 on missingfields into 937208338e0f11ccd780759a69f1955d316676fa on master.


bigquery table.exists is documented to return a boolean, but it returns an Array instead

Environment details

OS: Linux
Node.js version: v6.9.4
npm version: 5.1.0
google-cloud-node version: ^0.9.5

Steps to reproduce

require @google-cloud/bigquery
bigQuery.dataset(this.dataSet).table(tableName).exists().then(exists => {return Array.isArray(exists})
check it returns true

But the doc says the callback value is a Boolean.

For the callback mode, the value is indeed a boolean, however for promisified versions we always return an array (since promises can only resolve with a single argument). Something we need to improve on is highlighting the promise docs, because as it is now we simple show its usage in the last example.
Sorry for any confusion this caused you!

Oh, I understand. Is this documented somewhere?

Well, if you go to the link you provided, the second example shows how to use that method with a promise. I don't think we explicitly state that promises return arrays anywhere.. but that is standard for every method in the library.

This is a similar issue as #2167-- we plan to add docs that explain the basics of how promises work across the library. Sorry for the confusion!