[stable/jenkins] Render agent.volumes in kubernetes pod template JCasC

What this PR does / why we need it:
Render agent.volumes in the kubernetes pod template JCasC as it is currently only rendered in the XML configuration.
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
I placed the following in stable/jenkins/agent-values.yaml
agent:
  volumes:
    - type: ConfigMap
      configMapName: myconfigmap
      mountPath: /var/myapp/myconfigmap
    - type: EmptyDir
      mountPath: /var/myapp/myemptydir
      memory: true
    - type: HostPath
      hostPath: /var/lib/containers
      mountPath: /var/myapp/myhostpath
    - type: Nfs
      mountPath: /var/myapp/mynfs
      readOnly: true
      serverAddress: "<IP_ADDRESS>"
      serverPath: /var/lib/containers
    - type: Secret
      defaultMode: "600"
      mountPath: /var/myapp/mysecret
      secretName: mysecret

helm template stable/jenkins \
--show-only templates/jcasc-config.yaml \
--set master.sidecars.configAutoReload.enabled=true \
--set master.JCasC.enabled=true \
--set master.JCasC.defaultConfig=true \
--values stable/jenkins/agent-values.yaml

rendering of agent.volumes in kubernetes pod template volumes
    jenkins:
      clouds:
      - kubernetes:
          templates:
            - name: "default"
              volumes:
                - configMapVolume:
                    configMapName: "myconfigmap"
                    mountPath: "/var/myapp/myconfigmap"
                - emptyDirVolume:
                    memory: true
                    mountPath: "/var/myapp/myemptydir"
                - hostPathVolume:
                    hostPath: "/var/lib/containers"
                    mountPath: "/var/myapp/myhostpath"
                - nfsVolume:
                    mountPath: "/var/myapp/mynfs"
                    readOnly: true
                    serverAddress: "<IP_ADDRESS>"
                    serverPath: "/var/lib/containers"
                - secretVolume:
                    defaultMode: "600"
                    mountPath: "/var/myapp/mysecret"
                    secretName: "mysecret"

Jenkins screenshots

Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

@torstenwalter Here's the first PR for agent parity between the JCasC and XML configuration. It ended up being more complex than I'd anticipated.

@wmcdona89 Thank you for this. Could you add a volume in ci/other-values.yaml so that we test this in ci? Could be an empty dir volume.

/ok-to-test

@torstenwalter Rebased and incremented the minor version.

/ok-to-test

/lgtm

@wmcdona89 Thank you for your continued contributions. I really appreciate it!


Update template to use soldeer.xyz

Submodules make me sad

this is already the case :woman_facepalming:


Child page setup called without  on parent page

Environment

Operating System: Linux
Node Version:     v16.14.2
Nuxt Version:     3.5.3
Nitro Version:    2.4.1
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      -
Runtime Modules:  -
Build Modules:    -

Reproduction
https://stackblitz.com/edit/nuxt-starter-9hmdww
Describe the bug
During client-side navigation to /page when there are both page.vue and page/index.vue, the setup() function of page/index.vue is:

called when it shouldn't (if page.vue doesn't have <nuxt-page>);
called twice (if page.vue has <nuxt-page>).

The problem does not repeat on hard refresh (SSR), it only happens during client-side navigation.
To trigger the bug, the originating page must also be a nested page (foo.vue + foo/whatever.vue).
To trigger the bug, page.vue should have setup() function, possibly doing nothing.

On the reproduction URL there are two simple demos:

Demo 1 is the simplest minimal reproduction, but it needs you to open devtools console. You will see that setup of the child page (1/index.vue) is called when it should not.
Demo 2 shows the bug even without devtools. It prints how many times the child setup was called, you can see that it is called twice.

Additional context
This is a regression introduced in Nuxt 3.5. The same code works correctly in Nuxt 3.4.3.
UPDATE: This is not entirely true. The reproduction above crashes in Nuxt 3.4, too. See below for the actual regression reproduction.
Logs
No response

Are you sure that the script will not be executed in 3.4.3? I checked all the submissions from 3.4.3 to 3.5.0 and tested it in the 3.4.3 version. The execution result is that the script will be called
https://stackblitz.com/edit/nuxt-starter-fijqtb?file=package.json

I can see the problem in your reproduction with Nuxt 3.4.3 as a single dependency. I've extracted this from a real project with a locked set of dependencies including Nuxt 3.4.3 where I double checked that there weren't a problem with the exact same code. I'll see if I can trace this to a sub-dependency update.

@baiwusanyu-c I came up with a minimum reproduction that works in Nuxt 3.4 but crashes in Nuxt 3.5:

https://stackblitz.com/edit/nuxt-starter-mrri4n (Nuxt 3.4.3)
https://stackblitz.com/edit/nuxt-starter-nscm2i (Nuxt 3.5.3)

This is the exact same set of files with the only difference in package.json.
Run the demo, click "This page will break". In Nuxt 3.4 it will call setup once and not crash, in Nuxt 3.5 it will call setup twice and crash.

this behaviour makes my old code not working anymore... I store some data in store between navigations, and on mount initialize the form with the given data, and clear the data, so that on next visit its not used again. and well... page gets mounted first time, it grabs the data, clears it out, then after useAsyncData() returns the data, it kills the page with all stored data, and creates new page with empty fields, bc they were cleared after first initialization...
As workaround I currently added timeout before I clear the store, but this is really not idea solution at all....
Hope I can dig a little in the code this weekend and try to find the issue


Request to Add "Tomorrow" Prices to Entity Attributes

Could you please add "Tomorrow" prices to the entity's attributes, just like how "prices_today" is currently set up? It would really help with planning ahead for energy usage.

TGE doesn't provide such data on their website

You are wrong. Data for tomorrow is available after 1:30 PM when the stock market closes. Below is the proof. The data is for August 29. Today is August 28.

Ok, I have missed that part. In such case most probably current behavior of the integration is incorrect

Adjusted in v1.0.1


add icon for blog

I added in footer icon for blog

@Pedro-Souza provide me with your ARK address or contact me on Ark slack (boldninja) if you don't want to share it publicly.


nsIPrefBranch2 is removed in Gecko 57

Functionality addObserver has been under nsIPrefBranch for a while now.
I don't use all of nostalgy's functionality, but this small change makes it work for me again in TB57+

Thanks!


Handling schemas

Does bookshelf handle [schema].[table] somehow? Doing the following works fine for plain fetches:
var Session = bookshelf.Model.extend({
  tableName: 'schema.sessions',
  hasTimestamps: true,
  record: function() {
    return this.belongsTo(User);
  }
});

var User = bookshelf.Model.extend({
  tableName: 'schema.users',
  hasTimestamps: true,
  sessions: function() {
    return this.hasMany(Session);
  }
});

new User().fetchAll().then(function(users) {
  console.log(users);
});

But fails when I try to do a relation:
new User().fetchAll({ withRelated: ['sessions']}).then(function(users) {
  console.log(users);
});
////////
Possibly unhandled error: cross-database references are not implemented: schema.sessions.schema.user_id
    at Connection.parseE (.../node_modules/pg/lib/connection.js:526:11)
    at Connection.parseMessage (.../node_modules/pg/lib/connection.js:356:17)
    at Socket.<anonymous> (.../node_modules/pg/lib/connection.js:105:22)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Socket.<anonymous> (_stream_readable.js:745:14)
    at Socket.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:407:10)
    at emitReadable (_stream_readable.js:403:5)
    at readableAddChunk (_stream_readable.js:165:9)
    at Socket.Readable.push (_stream_readable.js:127:10)

I looked all over the knex and bookshelf docs and couldn't find anything. Thanks!

Thanks very much for this, jondlm! Your solution works well for me.

+1
set session is not a solution for me.
I use set search_path with many schemas and some of them have same table names (i can't change that).
some "schemaName" field in model would by great :)

@raaymax The next version of knex will include a withSchema method. Not sure when it's going to be released but you might be able to target knex's master branch if you want to try it out.

Very interested in the withSchema support as well

+1

Knex has released withSchema now, any plans on supporting it? It would be nice to be able to do for example Model.fetchAll().withSchema('schema'), since I'm using schemas for tenant separation, defining it in the models wont' work for me.

+1

@RichardSimko How exactly would you like to see this supported? I think that if you simply set your tablename to "schema.table" then it should work.
The report above is from an older version of Bookshelf. If anyone who is trying to use this feature can provide a list of failing cases I think we can fix it up.

My idea was to use schemas for tenant separation and as such I would had needed a solution where I could supply the schema during a query. Perhaps similarly to how transactional works?

@rhys-vdw , I can confirm that tableName: 'schema.table' works fine with bookshelf version 0.9.1 and knex version 0.9.0

I second @RichardSimko's suggestion. I too have the same use case where I switch schemas based on the tenant sending a request to my API. Hence I would feel having a way to dynamically specify the schema at the time of save, destroy or query would be ideal.
Another idea is to have a method on bookshelf called withSchema(schemaName, fn) which accepts the name of schema and a function that provides a schema isolated instance of bookshelf from where I can access models attached to the specified schema.
bookshelf.withSchema('schema1', (schema1) => {
  const User = schema1.model('User');

  User
    .forge({ id<EMAIL_ADDRESS>})
    .fetch()
    .then((jdoe) => { /* do something with jdoe */ })
    .catch((err) => { /* handle error */ });
});

@RichardSimko @codematix I have the same use case, and am handling this by adding this line in sync.js:
https://github.com/tobymarsden/bookshelf/blob/8db74d0042f8277ae3cc4c9ecf7e2f3b5ec6fa2a/src/sync.js#L18
By then including {withSchema: 'user_schema'} in the options hash passed to any sync functions (save, fetch, etc), it's doing what I need.

@tobymarsden have you encountered any side effects with your update to Sync?

@albertovasquez No... though of course you do have to place it everywhere that you call any function that touches the database, which gets a bit messy. Also, the signature changes between functions (save can be save(null, {withSchema: 'schemaId'}) for example), but that's the same deal as transacting, of course.
It may break down with relationships that cross schemas, though I do have that situation in some of my models and again so far no issues.

Thanks for the quick reply.  Am going to try that approach until something a little more permanent is available.  Thanks!

@tobymarsden unfortunately that solution breaks as you expected, during relationships.   For multi-tenant architectures we do need a proper solution.   Thanks for that .. took me 80% of the way.

@albertovasquez It does get a bit messy. I decided that relationships crossing schemas were always going to be tricky by their nature. Some careful refactoring of calls to functions that touch the database has made it work OK here... and it's easy to drop down to knex where necessary, of course. But agree a more canonical solution would be best!

@rhys-vdw What would be nice is if we could specify per model a schemaName attribute.  That it will use even if we pass a withSchema option with save, insert etc.   The reason this is needed on multi-tenant solutions is we might have schema for each user/tenant but still have a public schema for all users that contains information not specific to each tenant.  Without having the schemaName attribute override we would append the schema passed via options on all tables.  This has caused some issues that I can't see a workaround at the moment.

@tobymarsden's patch actually is allowing me to use bookshelf now, at least with the queries I've tried (regular selects + a select withRelation) and no problems. Would be better than nothing, at least for me.

withSchema support would be greatly appreciated. Same problem with hasMany() and belongsT0()

Thanks to @jondlm for the afterCreate tip.
Here is what I am using. No bluebird required.
const Bookshelf = bookshelf(
  knex({
    client: 'pg',
    debug: 'true',
    connection: config.databaseUrl,
    pool: {
      min: 0,
      max: 10,
      afterCreate: function (conn, cb) {
        conn.query("SET SESSION SCHEMA 'my-schema-name-here';", function (err) {
          cb(err, conn);
        });
      }
    }
  }));

after create won't work for mmsql. Any update on when this becomes a property to set when creating a model.

@mgarf According to this comment it has been supported since version 0.9.1.


Download button doesn't work

download button at page
https://github.com/crate/crate-web/blob/master/crate/pages/install/index.html#L78
doesn't work
from main.js there is an error at line
https://github.com/crate/crate-web/blob/master/crate/static/js/main.js#L42
TypeError: this.email is undefined
which prevent download link to resume, I would contribute a fix to this but I'm not sure what's the email for and there is no email field in the download form

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/24455305-download-button-doesn-t-work?utm_campaign=plugin&utm_content=tracker%2F11598444&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F11598444&utm_medium=issues&utm_source=github).

hi @mamod
thanks for reporting. we had a optional email form on the download page until recently and it seems that removing that broke something.
we'll fix it asap, until then you can download the latest version from https://crate.io/docs/
best, christian

I couldn't wait so I already downloaded latest release from
https://cdn.crate.io/downloads/releases/
Thanks :)

Hi @mamod this should be now fixed, but I would appreciate you double checking for me.

@ChrisChinchilla umm I can see the changes but you may forget to update content on the server :)
using chrome and opera, form doesn't break on email checking error instead it will redirect to https://crate.io/install/? where it says  download stable version  0.49.4 and only then the download will start for the older version, this doesn't happen with firefox ... not important just an extra debugging habit :)

Hmm.
I checked myself and it worked. Have you tried a hard refresh in the
browser?
Chris
On 21 Jul 2015 16:10, "Mamod Mehyar"<EMAIL_ADDRESS>wrote:

@ChrisChinchilla https://github.com/ChrisChinchilla umm I can see the
changes but you may forget to update content on the server :)
using chrome and opera, form doesn't break on email checking error
instead it will redirect to https://crate.io/install/? where it says download
stable version 0.49.4 and only then the download will start for the older
version, this doesn't happen with firefox ... not important just an extra
debugging habit :)
—
Reply to this email directly or view it on GitHub
https://github.com/crate/crate-web/issues/184#issuecomment-123325086.

of course, I also tried with 2 different browsers with no previous cache for crate.io, and I always land on page install where it says stable version 0.49.6 but when using wget it fetches install page which point to stable version 0.96.4 this is weird, I must be doing something wrong :(
I'll investigate and ping you back.

Most strange @mamod I tried again and on my phone and it works. Anything unusual in your setup I should know about?

Man, it's working now :) I don't know what was wrong but I'm sure it wasn't a local caching issue, sorry for the confusion and thank you very much :+1:


The FUNdamentals

[ ] the first few modules
shave the yaks

[x] clone repo
[x] Create branch dev
[x] initial commit
[ ] open PR from dev => master

[ ] definitions with examples - 10
[ ] complete first practice examples

#2 link the things


chore: run os matrix tests (#1026)

Backport
This will backport the following commits from 2.x to 1.x:

chore: run os matrix tests (#1026)

Questions ?
Please refer to the Backport tool documentation

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1164

Questions ?
Please refer to the Backport tool documentation


[Task - Client]await query.run().then type of syntax not working when running the workflow on temporal

It started working when I updated my code to just await query.run() in a try-catch block.

Hey team! Please add your planning poker estimate with Zenhub @ayushpahwa @nsarupr

Bumping this issue up to prod because it should have made it's way there by now if it was not fixed


Bitdefender flagged this as malicious

I was using UABEA until Bitdefender deleted the exe file and flagged it as malicious. What's going on?

My bitdefender also shows that it is a virus, please fix it soon.

The release and nightly binaries are both compiled directly from the code. Feel free to browse around if you have doubts there are no viruses. Also feel free to report a false positive to bitdefender or add a local exclusion. There's not really anything I can do further on this.


How to exclude directories in custom configuration file

Hi @SvanBoxel,
We are using your Organization workflows app. In our project, we want the app to be triggered by any push events only on specific directories inside multiple repos which belong to the same organization.
Following your documentation seems possible, creating a configuration file, to exclude from the trigger repositories but not directories.
Does your app handle this case? If no, do you have any suggestions on how to deal with this issue?
Thank you in advance.
cc @ilaria-carlini

Hi @lauracavaliere, sorry for the late reply. This is currently not something that is supported by the app itself, but you can do this check in the central workflows. There are Actions available that help you to achieve something like this: https://github.com/marketplace/actions/get-all-changed-files


Support documents with localized paths and no base path

The following configuration should be permitted. We should allow documents to specify localized paths without specifying a base path. This will generate localized documents only, and won't generate a base document if both the document and the blueprint don't have base paths specified.
$title: Document
$localization:
  path: /intl/{locale}/foo/
  locales:
  - de
  - fr
  - it

/cc @meizon – We've now added support for generating localized documents without corresponding base documents. The way to do this is to configure a path only under $localization and not at the top-level of a content document or a blueprint file – no need to override or specify a default locale.
Using the following testdata, only a single file at /intl/de/localized/ is generated:
# /content/localized/_blueprint.yaml
title: Localized Collection

# /content/localized/localized.yaml
$title: Localized Document
$localization:
  path: /intl/{locale}/localized/
  locales:
  - de

If you would like to also generate a base page, simply add a $path to the document or path to the blueprint!

Great work Jeremy. This'll allow me to remove some work arounds I've put in place for this!


tredly list availablePorts

If you have a large number of containers, it would be nice to know the tcp ports that available for use for new containers. This is on our list of things to add, as its pretty simple it will probably be added soon.

Moved to tredly-build issues. Closing.


Creating a component that extends MJML Wrapper

Issue
I want to create a component that extends or wraps mjml-wrapper and allows me to still render any children passed to it. I've tried my own implementation, but it failed. Is there any way to accomplish this?
Using MJML v3.3.3.
custom-wrapper.js
import Column from 'mjml-column';
import React, { Component } from 'react';
import Section from 'mjml-section';
import Spacer from 'mjml-spacer';
import Wrapper from 'mjml-wrapper';
import { MJMLElement } from 'mjml-core';

const tagName = 'custom-wrapper';
const parentTag = ['mj-container'];
const endingTag = true;
const defaultMJMLDefinition = {
  content: ''
};

@MJMLElement
class CustomWrapper extends Component {
  render() {
    const { mjContent } = this.props;
    return (
      <Wrapper>

          <Column>
            <Spacer />
          </Column>

        {mjContent()}

          <Column>
            <Spacer />
          </Column>

      </Wrapper
    );
  }
}

CustomWrapper.tagName = tagName;
CustomWrapper.parentTag = parentTag;
CustomWrapper.endingTag = endingTag;
CustomWrapper.defaultMJMLDefinition = defaultMJMLDefinition;

export default CustomWrapper;

my-template.mjml
<mjml>
  <mj-body>
    <mj-container>
      <custom-wrapper>
        <mj-section>
          <mj-column>
            <mj-text>Another section</mj-text>
          </mj-column>
        </mj-section>
      </custom-wrapper>
    </mj-container>
  </mj-body>
</mjml>

Hey @10kc-zack !
Can you explain a bit what's failing ?
I think you probably need to pass current props to your wrapper.

@iRyusa The error I'm receiving is
ERROR - mjml2html:
TypeError: Cannot read property 'mjml' of undefined

I found the stacktrace to point tohttps://github.com/mjmlio/mjml/blob/master/packages/mjml-core/src/decorators/MJMLElement.js#L104. I wasn't sure what the solution to this error would be though.
Thanks for the reply!

Yeah this is exactly the same issue with #489 mjml props isn't build properly so component fails to render.
This is tricky to fix for now, and it is fixed in MJML4. MJML 3's dev is frozen now ( last release should be 3.3.4 with minor fixes ), so I think you'll have to wait for MJML4 sorry about that.
I'm closing because #489 is almost exactly the same issue (same root).


License Mismatch - Apache or Other/Proprietary

Is the license Apache 2.0 or Other/Proprietary?
Noting the license
https://github.com/pinecone-io/pinecone-python-client/blob/2b517be75d6141971728889e29aa57cccf17beef/LICENSE.txt#L1-L3
and the .toml
https://github.com/pinecone-io/pinecone-python-client/blob/2b517be75d6141971728889e29aa57cccf17beef/pyproject.toml#L32
PyPI has the license listed as Other/Proprietary License
The latter leads to difficulties for usage in differing business operating environments

Hi, thanks for flagging. This field on PyPI should be automatically updated when we publish our next release, but we have not released since the license change was made in the main branch. So for now, there's nothing specific needed here.

Thank you @jhamon !


Allow setting name for matrix pipelines

Clear and concise description of the problem
Since #2695 the build status of matrix pipelines gets correctly reported, what is awesome. However, there is still room for improvement. Currently it gets reported as {name}/{number}. It would be better if a name would be used instead of a number.
Suggested solution
Add a new filed matrixname which allows setting the name for a matrix pipeline. With the example from the documentation it could look like this:
matrix:
  GO_VERSION:
    - 1.4
    - 1.3
  DATABASE:
    - mysql:5.5
    - mysql:6.5
    - mariadb:10.1

steps:
  build:
    image: golang:${GO_VERSION}
    commands:
      - go get
      - go build
      - go test

services:
  database:
    image: ${DATABASE}

matrixname: ${GO_VERSION}-${DATABASE}

This would be reported as e.g. {name}/1.4-mysql:5.5.
Alternative
If only one variable is used, we can also use the variable instead of the number.
Additional context
No response
Validations

[X] Checked that the feature isn't part of the next version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

On this I have another use case:
We run a rather large suite of automated ui tests. To do this, we use a matrix workflow that essentially 1 dimensional (Machine-1 - Machine-n) … what would be nice is to be able to roll up all runs into a single status report in GitHub .. currently it reports a large number of jobs and that is causing developers confusion.


llama 2 70B not usable on tinybox green

CUDA=1 python3 examples/llama.py --gen 2 --size 70B --shard 6 --prompt "Hello." --count 10 --temperature 0 --timing
Runs out of host memory at loading 90% of the weights.

Yeah, NV should be a bit better but also OOMs. Wrote a custom allocator to fit it better, but it OOM when creating graphs. Is there any way to remove this reserved memory (like it stops when it has >500ms and requesting ~80mb)?

It's not the GPU memory that's the problem AFAIK, it's the host memory not being freed.

Just got my tinybox green the other day, and running into the same issue. Entire PC freezes at 89% loading and I have to manually restart the machine. Have there been any updates on this?

NV=1 MAX_CONTEXT=256 python3 examples/llama.py --gen 2 --size 70B --shard 6 --prompt "Hello." --count 10 --temperature 0  --timing works now and is added to green tinybox CI #5905 .


yank<EMAIL_ADDRESS>

The version was tagged as breaking but actually isn't. To fix that, it has been released as 0.6.20 afterwards (same exact content).
Meanwhile, 0.7.0 should probably be yanked to avoid further confusion – this PR.

Just for the record, I strongly object to the laissez-faire attitude towards yanking that seems to be developing here. It should only be done in the most extreme emergencies. As I said on Slack:

I’d just point out that SemVer does not require a major release to have breaking changes (only the other way around). On the other hand, yanking versions is extremely disruptive. I don’t think we should ever yank versions, except maybe in a malware situation

Suppose that someone releases a version Foo.jl version 1.1.0,  but they actually made a breaking change (and thus they should have actually released Foo 2.0.0). In that case, if a downstream user (that has Foo = "1" in their [compat] section) installs Foo 1.1.0, there is a real chance that their code might break. Therefore, in the registry we often choose to yank Foo 1.1.0.
This is the opposite situation. Someone released a version Bar.jl version 0.7.0, but they didn't actually have any breaking changes, and thus they could have (and should have) released a Bar 0.6.x. In this case, if a downstream user installs Bar 0.7.0, their code won't actually break (because Bar 0.7.0 didn't have any breaking changes). In this case, because there is no risk of a downstream user having their code break, we do not need to yank Bar 0.7.0 in the registry.

Not sure I see how is yanking suitable for malware situations... Then, best would be to just remove the version so that nobody installs it anymore.

I'm not sure if I fully appreciated the specific way "yanking" is implemented, as opposed to deleting/reverting a package or release. I do agree that actual hypothetical malware should be purged from the registry in a way that makes it impossible to install.

Suppose that someone releases a version […] 1.1.0, but they actually made a breaking change […], in the registry we often choose to yank

That's not really necessary, and arguably violates SemVer. The SemVer specification explicitly discusses this particular situation:

As soon as you realize that you’ve broken the Semantic Versioning spec, fix the problem and release a new minor version that corrects the problem and restores backward compatibility. Even under this circumstance, it is unacceptable to modify versioned releases. If it’s appropriate, document the offending version and inform your users of the problem so that they are aware of the offending version.

Maybe the "yanking" feature in the registry was intended as a way to implement "inform your users"? If so, that would be a good thing, but I've seen situations recently where things got screwed up because of a yanked package. If not, I still think we should almost never yank anything. There might be some situations related to wrong compat bounds where mistakes can't be repaired within SemVer, but I'm not even sure about that.

Just to conclude this: the intended behavior of yanking is described in the General Registry README. The way it is described there, it should generally be okay to yank "broken" releases under the conditions described there.
Note that this PR is not one of those conditions.
Generally speaking, an accidental major release that actually wasn't breaking is certainly unfortunate / confusing (in the sense of "unexpected"), but it's not a violation of SemVer. There's nothing that can be done that wouldn't violate SemVer except to just keep going from the major release.
I would also point out that StructArrays is pre-1.0, so a change from v0.6 to v0.7 is actually not breaking (despite Pkg treating it as such). The SemVer spec is extremely clear about this: Before v1.0, "anything can happen". Pre-1.0 packages simply do not have a "stable" API, and thus you can't "break" it. Of course, it's fine to use v0.x releases as "big change" (a.k.a, probably breaks code depending on this unstable API), and v0.x.y as "small change (a.k.a. probably does not break dependent code). But this is a social convention of top of SemVer, and a bit on the fuzzy side.
It might be worth looking at whether StructArray should tag a 1.0 release: If you’re worrying a lot about backward compatibility, you should probably already be 1.0.0.. Just for good measure, I would point out that going from v0.x to v1.0 is not a breaking change! That is, it's fine to tag a v1.0 simply to indicate "the API is now stable according to SemVer". In fact, I strongly advocate for a v1.0 release not to have any major changes compared to the last v0.x release, up to changes in documentation and maybe removing "deprecated" code (even though "deprecation" doesn't make sense pre-1.0, since, again, there is no such thing as a stable API pre-.1.0)
At this time, it's unclear whether Pkg might have a bug where instantiating an environment that has a yanked version might fail. There seems to be some anecdotal evidence, but @DilumAluthge hasn't been able to confirm it with a reproducible example. So let's assume yanking works as intended. In that case, it seems fine to use yanking as "informing your users" about very broken releases that shouldn't be installed.
This might be a moot point, and I also might be misunderstanding something, but the reasoning for when yanking is necessary seems off to me. Specifically,

reverting the code changes would not be valid in a patch bump.

seems just wrong: it is never invalid to fix a bug in a patch bump. The only way to fix the bug in that example is to revert the feature, but that doesn't make it breaking/not-a-bugfix. The correct way to handle the "compat bounds too wide" example is to make two bugfix releases: one that reverts the previous release (but keeps the compat bound), and then one that re-applies the previous release but also fixes the compat bound. So, it's not necessary to yank anything, although I certainly don't object to yanking the broken release assuming yanking behaves as described.

Not really sure what you mean here?

I'd really want to make a distinction (maybe an overly subtle / hairsplitting one) between what Pkg considers "compatible"/"incompatible" vs "non-breaking"/"breaking". I'm on board with Pkg treating "0.x" version as "incompatible", but that doesn't mean they're "breaking", even if we sometimes might use that word, in a handwaving manner.

there are lots of pre-1.0 packages with stable API

There shouldn't be! SemVer specifically says that a package does not have a stable API if it is pre-1.0. This isn't just something where we can just say "Julia uses a minor variation of SemVer". Pre-1.0 versions are a core part of the SemVer philosophy, with a specific meaning. Disregarding that is completely antithetical to SemVer.

Such a bump can make sense when one feels the need for an extra number in the version, but otherwise it doesn't matter if the versions go 0.1, 0.2, 0.3, ..., 0.23 or 1, 2, 3, ..., 23.

I couldn't disagree more! There is a very fundamental difference between the 0.x (unstable) development life cycle and the post-1.0 (stable) development life cycle of a project: In the former, backwards-compatibility is not a concern, in the latter, it is. If there is no difference between 0.x minor version and major versions, then why even have 0.x versions? Indeed, disallowing pre-1.0 registrations is precisely what people have proposed based on this misunderstanding: https://github.com/JuliaRegistries/General/issues/111019. It just completely disregards a core part of SemVer, as I elaborate on in my comment there. I feel very strongly that pushing people to tag releases that are not stable as v1.0 (or, conversely, not tagging a package that in fact has a stable API as v1.0) hurts the quality of the ecosystem.
It's fine for Julia to have some minor variations on top of SemVer, like making an additional distinction between v0.x and v0.x.y releases as incompatible/compatible, or allowing some additional ordering or semantics for build numbers (which I'm very much in favor of). But we should really not throw something so fundamental as stable vs non-stable releases overboard. Maybe from the perspective of Pkg, it's splitting hairs. From a larger perspective of how we should push people to tag their packages, or how worried they should be about some mild "SemVer-violation" when their package is still pre-1.0 (the situation in the PR), I think it's pretty fundamental.

If the yanking has become as strict as you say

I'm not sure it has "become" strict… I don't think it's changed (but I'm not sure about the history). I'm only reacting to how it is currently described in the README.

Wasn't the motivation for yanking being able to avoid Pkg resolving new envs with an erroneously tagged release?

Not as far as I can tell (how it's currently documented). It's to (optionally) mark a release as "broken" after a patch release to fix the broken release, or to deal with the "special category of bugged releases" described in the README.

Wrong compat bounds? Change them in the registry.

I don't think that's possible. That would break re-instantiating existing environments, and  "reproducibility" is basically the core tenet of General. It would be fine in a LocalRegistry that didn't have such strict rules. Releases are basically immutable.
Quite honestly, I don't think yanking is really ever necessary. Even in the "special category" of compat bound issues. I think these can be fixed entirely within SemVer by making two immediate bugfix releases (I might be wrong). But yanking still seems like a good way to attach a "broken" tag to a particular release. So it's probably helpful to have, as a feature.

If v0.7.0 was just yanked here, no additional changes would be required

Does the CompatHelper bot take into account yanking (i.e., would yanking stop CompatHelper prompting peopel to update their compat bounds to v0.7.0)? If so, and if it's not already too late (CompatHelper has already notified everyone), then I suppose yanking would save people from having to update the compat bounds later.
But you'd still have to make v0.8.0 your next breaking release, and then people will just be even more confused at that point. I don't see any way to avoid people needing to deal with the existence of the v0.7.0 release at some point, and it seems to me the least confusing way is do it now: document it in your changelog ("Upgrade guidelines: v0.7 contained no breaking changes, just set your compat spec to 0.6,0.7"), and move on.

This is not just routinely done

You seem to be right, e.g., https://github.com/JuliaRegistries/General/pull/115069

but even planned to make more straightforward

I don't get how that doesn't break reproducibility. But that's a discussion I'll take over there…

But you'd still have to make v0.8.0 your next breaking release

Don't see any issues with that whatsoever.

Then I guess v0.7.0 really should be yanked. You'll have to deal with the fallout of having apparently skipped a version later on. Not what I would do. I'm pretty sure it will cause confusion down the road, but that's between you and the dependents of StructArrays


Rename licence.txt to license.txt

Thanks!  Will be a part of upcoming v0.2.0 which is currently in develop


trex-traffic generation pod - usage error

Looking to use this benchmark operator to validate DPDK virtual functions in OpenShift cluster v4.6. I can see the application POD is running successfully but in the trex-traffic-gen-pod, I see CrashLoopBackOff error as below
[core@csah dpdk]$ oc get pods
NAME                                     READY   STATUS             RESTARTS   AGE
benchmark-operator-6dbdffccb-glh2v       2/2     Running            0          30m
testpmd-application-pod-2c45ad81-jz9q8   1/1     Running            0          5m11s
trex-traffic-gen-pod-2c45ad81-h6cqn      0/1     CrashLoopBackOff   5          4m49s

Upon checking the logs, noticing a usage error as below
[core@csah dpdk]$ oc logs trex-traffic-gen-pod-2c45ad81-h6cqn
2021-05-19T20:52:46Z - INFO     - MainProcess - run_snafu: logging level is INFO
2021-05-19T20:52:46Z - INFO     - MainProcess - wrapper_factory: identified trex as the benchmark wrapper
usage: run_snafu [-h] [-v] -t TOOL [--run-id [RUN_ID]]
                 [--resourcetype RESOURCETYPE] -u UUID [--user USER]
run_snafu: error: unrecognized arguments:

Any thoughts or recommendations ?

Can you share the CR you passed to benchmark-operator?

apiVersion: ripsaw.cloudbulldozer.io/v1alpha1
kind: Benchmark
metadata:
  name: testpmd-benchmark
  namespace: my-ripsaw
spec:
  clustername: demo
  workload:
    name: testpmd
    args:
      privileged: true
      pin: false
      pin_testpmd: "compute-1.example.lab"
      pin_trex: "compute-1.example.lab"
      networks:
        testpmd:
          - name: mellanox-dpdk-network
            count: 2  # Interface count, Min 2
        trex:
          - name: mellanox-dpdk-network
            count: 2

FYI. I specified the compute node name that has keys "pin_testpmd" and "pin_trex" in the above yaml file. Please let me know if thats not the intention of these keys in the above yaml file.

@usunnapu you are right, but if you want to pin pods to specific compute nodes you have to set pin: true in your CR as well. I am going to test this workload in my lab, I will keep you posted.

FYI. I tested this with Intel cards as well and am seeing the same error as mentioned above. Also, I have started noticing in my testing today that PDM application POD is also going in CrashLoopBackOff status
[core@demo]$ oc get pods
NAME                                     READY   STATUS             RESTARTS   AGE
benchmark-operator-6dbdffccb-8nmqr       2/2     Running            0          8m32s
testpmd-application-pod-941072ea-6j5m8   0/1     CrashLoopBackOff   4          2m34s
trex-traffic-gen-pod-941072ea-zsjpj      0/1     Error              4          2m13s

[core@demo]$ oc logs trex-traffic-gen-pod-941072ea-zsjpj
2021-05-24T20:00:52Z - INFO     - MainProcess - run_snafu: logging level is INFO
2021-05-24T20:00:52Z - INFO     - MainProcess - wrapper_factory: identified trex as the benchmark wrapper
usage: run_snafu [-h] [-v] -t TOOL [--run-id [RUN_ID]]
                 [--resourcetype RESOURCETYPE] -u UUID [--user USER]
run_snafu: error: unrecognized arguments:

Not sure if its related to the same issue or not.

@usunnapu The Trex error is same issue, due to the line break \ in the command and PR got the fix.
The testpmd could be a different problem, could paste the logs you see in the pod ?

all I could see is below for the logs of application pod
[core@demo-pri xFlow]$ oc logs testpmd-application-pod-941072ea-6j5m8
EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Auto-detected process type: PRIMARY
EAL: Multi-process socket /tmp/dpdk/pg/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: PCI device 0000:d8:0a.7 on NUMA socket 1
EAL:   probe driver: 8086:154c net_i40e_vf
EAL:   using IOMMU type 1 (Type 1)
EAL: PCI device 0000:d8:0c.1 on NUMA socket 1
EAL:   probe driver: 8086:154c net_i40e_vf

but also I see that the IP addresses are not being set. Can check this again to see if there is any other typo in the setup as I believe this was working before. But let me know if those above logs from testpmd applications means anything.

I dont see any errors in the testpdm app pod. But I can see that SandboxChanged and eventually POD is getting testpmd pod is getting deleted
  Normal  Scheduled       50s                default-scheduler  Successfully assigned my-ripsaw/testpmd-application-pod-6488fbe6-mdf2t to democ1.demo.lab
  Normal  AddedInterface  48s                multus             Add eth0 [<IP_ADDRESS>/23]
  Normal  AddedInterface  48s                multus             Add net1 [<IP_ADDRESS>/24] from my-ripsaw/mellanox-dpdk-network
  Normal  AddedInterface  48s                multus             Add net2 [<IP_ADDRESS>/24] from my-ripsaw/mellanox-dpdk-network
  Normal  Pulled          46s                kubelet            Successfully pulled image "registry.redhat.io/openshift4/dpdk-base-rhel8:v4.6" in 1.382610927s
  Normal  AddedInterface  27s                multus             Add eth0 [<IP_ADDRESS>/23]
  Normal  AddedInterface  27s                multus             Add net2 [<IP_ADDRESS>/24] from my-ripsaw/mellanox-dpdk-network
  Normal  AddedInterface  27s                multus             Add net1 [<IP_ADDRESS>/24] from my-ripsaw/mellanox-dpdk-network
  Normal  Pulled          25s                kubelet            Successfully pulled image "registry.redhat.io/openshift4/dpdk-base-rhel8:v4.6" in 1.410359231s
  Normal  SandboxChanged  10s (x2 over 32s)  kubelet            Pod sandbox changed, it will be killed and re-created.
  Normal  Killing         10s (x2 over 32s)  kubelet            Stopping container testpmd
  Normal  Pulling         5s (x3 over 48s)   kubelet            Pulling image "registry.redhat.io/openshift4/dpdk-base-rhel8:v4.6"
  Normal  AddedInterface  5s                 multus             Add eth0 [<IP_ADDRESS>/23]
  Normal  AddedInterface  5s                 multus             Add net1 [<IP_ADDRESS>/24] from my-ripsaw/mellanox-dpdk-network
  Normal  AddedInterface  5s                 multus             Add net2 [<IP_ADDRESS>/24] from my-ripsaw/mellanox-dpdk-network
  Normal  Pulled          4s                 kubelet            Successfully pulled image "registry.redhat.io/openshift4/dpdk-base-rhel8:v4.6" in 1.124865621s
  Normal  Created         3s (x3 over 46s)   kubelet            Created container testpmd
  Normal  Started         3s (x3 over 46s)   kubelet            Started container testpmd

above are the messages I see when describe pod is run for testpmd application pod. After 5 attempts, testpmd application pod gets deleted
[core@demo-pri xFlow]$ oc get pods
NAME                                     READY   STATUS             RESTARTS   AGE
benchmark-operator-6dbdffccb-q4sfq       2/2     Running            0          4m50s
testpmd-application-pod-6488fbe6-mdf2t   0/1     CrashLoopBackOff   5          3m10s
trex-traffic-gen-pod-6488fbe6-jvkxh      0/1     CrashLoopBackOff   4          2m55s

@usunnapu from your logs the PCI devices are in NUMA node 1,

So did you create Hugepages on the same NUMA node as well ? This sample YAML definition is to create hugepages on node 0, please make sure you specify the correct node to create hugepages
Then also mention the testpmd memory in your CR file, your CR defaults to use memory from node 0. So  include socket_memory: 0,1024 in your CR workload.args, refer here for additional TestPMD arguments.

@mukrishn Thanks for your inputs. Dont want to mix two different things into this. Will keep this focussed only on the initial issue. I will work in ensuring things are working with respect to application POD. Will raise a different otherwise.


feat!: Remove TOOLCHAIN logic and replace with CMake presets

Description
Before these changes, Barretenberg was forcing specific C and C++ Compilers through the -DTOOLCHAIN variable. This is a flawed design because it doesn't allow consumers to set the CC or CXX environment variables to pick their compilers. Being able to set those values is extremely important for cross-compiling.
This PR removes all of that TOOLCHAIN logic and instead leverages CMake Presets to provide the defaults we expect (such as clang, clang-15, gcc, gcc-10 and clang from Homebrew). Shoutout to @adr1anh for sharing the idea for presets which massively helped with this transition plan.
It also updates the bootstrap.sh file to detect and print which preset should be used. If you use cmake commands directly, you'll need to start using the related preset commands.
I've also updated the dockerfiles and docs to all reference these preset commands.
The cmake/toolchains directory still exists, but the files have been re-done as proper CMake Cross-Compile Toolchain files which are really just supposed to set the target name and architecture, but can include extras like the i386 file.
I've tested this quite extensively on my Arm Mac but I need feedback for Linux, the dockerfiles, and the compare_honk_bench stuff (because it was non-standard).
Checklist:

[x] I have reviewed my diff in github, line by line.
[x] Every change is related to the PR description.
[ ] I have linked this pull request to the issue(s) that it resolves.
[x] There are no unexpected formatting changes, superfluous debug logs, or commented-out code.
[x] There are no circuit changes, OR specifications in /markdown/specs have been updated.
[x] There are no circuit changes, OR a cryptographer has been assigned for review.
[x] I've updated any terraform that needs updating (e.g. environment variables) for deployment.
[x] The branch has been rebased against the head of its merge target.
[x] I'm happy for the PR to be merged at the reviewer's next convenience.
[x] New functions, classes, etc. have been documented according to the doxygen comment format. Classes and structs must have @brief describing the intended functionality.
[x] If existing code has been modified, such documentation has been added or updated.

Looks good to me. Just looking for clarification on a couple of things mentioned in my comments.

To address @codygunton's issue with GCC12, it seems like we can instead set the generator to Ninja in the CMakePresets.json rather than the VSCode workspace settings.
    {
      "name": "default",
      "displayName": "Build with Clang",
      "description": "Build with globally installed Clang",
      "binaryDir": "build",
      "generator": "Ninja",
      "environment": {
        "CC": "clang",
        "CXX": "clang++"
      }
    },

When testing on the mainframe, my build were being parallelized after performing this change.
On another note, switching configure preset requires the CMake cache to be rebuilt. The option is "CMake: Delete cache and reconfigure" in VSCode.

I've added a commit which sets the generator in the default preset to Ninja. The second commit tells CMake to generate a compile_commands.json file that helps the clangd language server understand how the file being edited is compiled. It required an extra argument in the config to suppress a warning from a GCC-specific compile flag.

VS Code integration is still kind of funky, e.g. building with wasm preset using CMake Tools is extremely slow, but it works for most common workflow, so I'm going to merge.


Migrate FormattedDuration from Moment to Luxon and remove moment dependency

Summary
Migrate FormattedDuration from Moment to Luxon and remove moment dependency
Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/18595
JIRA: https://mattermost.atlassian.net/browse/MM-39152
Checklist

[ ] Telemetry updated
[ ] Gated by experimental feature flag
[X] Unit tests updated

Hello @KuSh,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.


Add statuses: write permission to GH token for docdeploy

This is needed to post the GitHub status with preview links, see Documenter.jl documentation.

Oh but this failure is real: https://github.com/JuliaCI/PkgTemplates.jl/actions/runs/3949873044/jobs/6761646319
We just need to update the test/fixtures/ files to what we expect
I think that means changing the two reference tests that have GHA CI and use Documenter i.e.

https://github.com/JuliaCI/PkgTemplates.jl/blob/0de5d855e050d93169f8661a13b3a53a8cb2b283/test/fixtures/DocumenterGitHubActions/.github/workflows/CI.yml#L40
https://github.com/JuliaCI/PkgTemplates.jl/blob/0de5d855e050d93169f8661a13b3a53a8cb2b283/test/fixtures/WackyOptions/.github/workflows/CI.yml#L40

Also, do we need to change this repo's own documenter setup in anyway (i.e. https://github.com/JuliaCI/PkgTemplates.jl/blob/0de5d855e050d93169f8661a13b3a53a8cb2b283/.github/workflows/CI.yml)?

Also, do we need to change this repo's own documenter setup in anyway

Not necessarily. I believe by default the token has all permissions, so since it is not limited to contents: write it also can post statuses.


Changelogs

@PVince81 here is the PR, if you want to push the changelogs on live.
at the top is another community provider, it is supposed to go live for a week already, so just merge it with the other stuff.
then the changelog stuff,
and then, at the bottom, some git trash which is already in live and can (probably) just be merged again. This happened in the past, don't worry.

@jnweiger where do you see "can't merge automatically"? This looks quite fine to me, actually... in my eyes the only barrier to this is that 10.0.4 RC2 is not out yet, and we could maybe just modify the date next to RC2 to something in the future, maybe next week?

Please include https://github.com/owncloud/owncloud.org/pull/1328 in the deploy.
We decided to remove 10.0.4 RC2 changelog and fix the dates.


[WIP] 💬 Notification content changes

Notifications relate to changed shifts. notifications are an ephemeral but changed shifts are permanent

Closing because this is very out of date now..


(GH-1555) Automatically generate changelog from commit notes

This adds a script for generating changelog entries from commit notes.
The script loads all commit notes from the most recent tag to master,
parses the notes for a valid label, and writes the notes as entries to
the changelog under the next Bolt version.
To create a commit note, use the git notes add command. The note
should be formatted similar to other changelog entries and have a valid
label before or after the note content. Valid labels are @feature,
@bug, @deprecation, and @removal.
@feature

* **Automatically generate changelog from commit notes** ([#1555](https://github.com/puppetlabs/bolt/issues/1555))

  Added a `generate_changelog` script to automatically generate
  changelog entries from commit notes.

The script should be run from Bolt's root directory with a single
argument that is the next Bolt tag.
$ ./scripts/generate_changelog.rb 2.2.0

Closes #1555

CLA signed by all contributors.

Should this be a rake task instead of a standalone script?

Added a rake task.


Plain text auto detection error

I'm developing an open source editor where users can type or paste text or code, and they will be able to share that note using decentralized IPFS server.. We are planning to add highlight.js for note read,
when user shares any code then it can detect properly but the problem comes when user shares plain text, it can't detect plain text, it also highlights plain text wrongly. can you please help me about that. (note: we are using only browser, no server language).

Plain text cannot be auto-detected (in the same way as other grammars) since there is no "signal" there to auto-detect. But any snippet that has ZERO keywords (or matches) from ANY grammar will default to plaintext (as there is nothing to highlight in any case).  BUT if you have text with any programming keywords such as "if", "and", etc. then yes it's going to think it's code and choose a language.
This is the correct and expected behavior.  One could perhaps write a plugin to try and "detect" plaintext, but I have no idea what type of strategy one would use to do that - and it would be outside the scope of the core library.   If you have a plaintext block you should simple flag it as language-text in the CSS class and it will not be highlighted.
Also: Auto-detection is only 70-80% reliable in any case and we recommend that in cases where accuracy and reliably matters that people not use it.


bst artifact log fails if project options are invalid

See original issue on GitLab
In GitLab by [Gitlab user @tristanvb] on Jan 6, 2019, 18:00
Summary
When running bst artifact log <artifact name>, BuildStream will try to resolve the project options of the toplevel project (this most probably can only happen if BuildStream is trying to load the project) - if the defaults are invalid options, then bst artifact log <artifact name> will fail.
Steps to reproduce
First, have a project with the following in the project.conf, perhaps adding this to an existing project can help reproduce:
options:
  build_arch:
    type: arch
    description: Build architecture
    values:
      - arm
      - aarch64

Or, use the freedesktop-sdk project which has these options.
Then, try to read a log file from the artifact cache on an intel machine.
Notice that the project option uses an arch option with only arm arches, and the default is left up to BuildStream to guess with uname.
What is the current bug behavior?
BuildStream exits with an error status and prints the following:
Error loading project: Invalid value for arch option 'build_arch': x86-64
Valid values: arm, aarch64

What is the expected correct behavior?
BuildStream should just show the log file of the artifact.
BuildStream does not need to load the project when given an artifact name, it need only load the project when given an element name.
Relevant logs and/or screenshots
Possible fixes
Didn't look at the implementation yet, perhaps the code currently tries loading an element and falls back to trying the artifact cache ?
Other relevant information

BuildStream version affected: /milestone %BuildStream_v1.x

In GitLab by [Gitlab user @cs-shadow] on Aug 4, 2020, 23:22
I was going through some old bugs and came across this one. A couple of thoughts based on a few minutes of poking around:
While this issue seems fairly innocuous on the surface, fixing it may require some significant changes internally. This is tricky because the checkout functionality is handled by Stream.artifact_log(), but we only get the Stream object after App.initialized() has been called. However, that method is also where we load the project.
We may need to untangle these bits very carefully if we want to separate them out, as opposed to being lumped together in the initliazed() context manager.

In GitLab by [Gitlab user @tristanvb] on Nov 17, 2020, 07:03
I think it should be simple enough to have App.initialized() give us a Stream object without loading any Project object for the purposes of calling some Stream methods which don't require a project.
We still need general App initialization in order to operate on artifact names like bst artifact log or bst artifact checkout, like initialized logging and loaded Context, it's only the Project that is unnecessary for a certain class of commands.

In GitLab by [Gitlab user @tristanvb] on Nov 19, 2020, 09:09
While working on this, I discovered the following:

It is not sufficient to operate on artifacts without any Project

This is because ArtifactElement derives from Element, and as such requires a Project

The current setup is dangerous, because ArtifactElement objects are instantiated using whatever random project happens to be in context

This means that loaded ArtifactElements can potentially report information based on whatever random project happens to be in the current directory where an artifact related command was run.

What it looks like to me, is that we should be handling a situation where Stream._project and App._project is None, however the ArtifactElement still needs a Project.
A "dummy" project would be insufficient I think, as it would still constitute a danger that the values it mimics are not the same as the values originally used when creating the original artifact.
Ultimately, we should restructure this code so as to ensure that any values reported by ArtifactElement are unquestionably the values in use at the time the artifact was created; how to do this exactly is unclear, storing the entire project metadata in each artifact would seem inefficient.
A better solution might be to rebase the ArtifactElement to derive on a common base class as Element, one which does not have any Project member. In this way we could at least ensure that any interrogations (API calls) on the ArtifactElement can never use a Project object at all to respond with, and if any Element APIs which are unimplemented by ArtifactElement get invoked, it would at least cause a stack trace, forcing us to implement the API call appropriately and without the use of a Project.

In GitLab by [Gitlab user @tristanvb] on Dec 2, 2020, 13:10
mentioned in merge request !2108


Fix svg icon pack scenario where project dependency is not aligned wi…

…th addon dependency
Overview
Does this PR close an existing issue?
No PR should be opened without opening an issue first.  Any change needs to be discussed before proceeding.
Summary
Provide a general summary of the issue addressed in the title above
Issue Number(s)

Closes #578

Screenshots or recordings
Please provide screenshots or recordings if this PR is modifying the visual UI or UX.
Checklist

[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have evaluated if the README.md documentation needs to be updated
[ ] I have evaluated if the /tests/dummy/ app needs to be modified
[ ] I have evaluated if DocBlock headers needed to be added or updated
[ ] I have verified that lint and tests pass locally with my changes
[ ] If a fork of a dependent package had to be made to address the issue this PR closes:

[ ] I noted in the fork's README.md the reason the fork was created
[ ] I have opened an upstream issue detailing what was deficient about the dependency
[ ] I have opened an upstream PR addressing this deficiency
[ ] I have opened an issue in this repository to track this PR and schedule the removal of the usage of the fork

Semver
This project uses semver, please check the scope of this PR:

[ ] #none#
[x] #patch#
[ ] #minor#
[ ] #major#

Examples:

NONE

README.md changes
test additions
changes to files that are not used by a consuming application (.travis.yml, .gitignore, etc)

PATCH

backwards-compatible bug fix

nothing about how to use the code has changed
nothing about the outcome of the code has changed (though it likely corrected it)

changes to demo app (/tests/dummy/)

MINOR

adding functionality in a backwards-compatible manner

nothing about how used to use the code has changed but using it in a new way will do new things
nothing about the outcome of the code has changed without having to first use it in a new way
addition of new CSS selectors
addition of new ember-hook selectors

MAJOR

incompatible API change

using the code how used to will cease working
using the code how used to will have a different outcome
any changes to CSS selector names
any removal of CSS selectors
any changes to ember-hook selectors
possibly changes to test helpers (depends on the changes made)

any changes to the dependencies entry in the package.json file

CHANGELOG

resolve SVG folder by looking at this.nodeModulePath to resolve dependency alignment issues

Please list in its entirety all of the steps you have taken to test these changes, as when we implemented this logic initially there are many test cases that need to be exercised to account for all edge cases.


Jump to next input field when key is pressed.

This eases out the writing mechanic of the game, so that whenever a letter is pressed it moves the focus to the next sibling of the current input field.
Summary of Changes

Whenever a letter is pressed the next sibling of the current input field will be focused.

Pull Request Test Coverage Report for Build 93

6 of 6 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 89.209%

Totals

Change from base Build 88:
-0.02%

Covered Lines:
92

Relevant Lines:
104

💛  - Coveralls

I'll work this in the weekend, and I'll add some more coverage in tests as you requested! 👍

I went ahead and added toEqual(true) in your tests. Thanks for your changes 🙂


Add abiltity to get status of job by UUID

Might there be situations where I want to get a job status for a previously run job that I happen to have the UUID for? For example I can list all jobs and get the UUID that way.
Likewise, we might consider an version of analyses where we don't wait for the result before returning.

Fixed via https://github.com/ConsenSys/armlet/pull/21


fix: rename files

What's Changed in this PR
Rename all kafka_remote_wal.md to kafka-remote-wal.md.
Checklist

[x] Please ensure that the content in summary.yml matches the current document structure when you changed the document structure.
[ ] This change requires follow-up update in localized docs.

@tisonkun The file names need to be the same as the navigation content in summary.yml (Here is kafka-remote-wal), so that the file can be listed in the navigation titles.
We don't need to change order_by.md... as it is already the same as the nav in the summary.yml.

The file names need to be the same as the navigation content in summary.yml

Got it. Maybe we can try to stick in one style, said kebab-case.


Control a stepper motor in Protofy platform

Problem/Need To Be Solved
We want to be able to control a stepper motor on the platform, specifically a Nema17. It would be beneficial to have a component in the device definition dedicated to controlling it.

Hi @elchanka,
We added this feature on this commit https://github.com/Protofy-xyz/Protofy/commit/146b2e25097cc18d5cc9498386ba71b5752da870 #


[WIP] - Starts implementing multiple selection

@NikKovIos  Not ready for merge yet.
Here we can discuss and refine the api.
At the moment I was thinking something like (name not definitive)
config.maxNumberOfPhotos = 12

Any value over one would enable the multiple selection, default value being 1.

I have some questions:
Is this would be a one delegate/closure with array or two like in Fusuma:
func fusumaImageSelected(image: UIImage, source: FusumaMode) {}
func fusumaMultipleImageSelected(images: [UIImage], source: FusumaMode) {}

We should implement the functional to select multiple images and videos. For example two images and two videos at once. So it should be a way to give them to user in callback. What do you think about it?
Also the var should be called maxNumberOfItems or something like.

@NikKovIos Good catch!
I'm all for selecting photos and videos at the same time.
Maybe we'll have to introduce a MediaItem Model wrapping both photos and videos so that we can return a strongly typed[MediaItem].
This MediaItem abstraction could be a good place to encapsulate things like thumbnails, original/cropped/filtered photo for example.
Concerning the callbacks, having one sounds simpler on paper but it complexifies the usage for the vast majority using simple photo/video, because they would now need to access the media through items.first for instance. Having two would also have the cool benefit of leaving the api unchanged for people upgrading the tool. So I'd lean on the two callbacks side :)
maxNumberOfItems sound more appropriate indeed, I'd missed the fact that videos can be selected as well :)
Another tricky topic is about cropping and filtering,
1 - They disabled entirely in multiple selection.
2 - We push the crop/ filter screens once per item selected
3 - We have a new screen with a scroll, ala instagram, to filter out images one by one afterwards.
Instinctively I'd say number 1 or 2, number 3 adding quite a lot of work if we want to have this feature out in a reasonable timeframe.

Exactly what i thought (about 'MediqItem')!
About crop and filter - u think we should make it like in Instagram now. The reason: library used by a developers. Lot of customers look at the Instagram and say "wow, i need the same".
Otherwise i didn't look at the architecture and code very deep, so can't say how much time it could take. First way looks good, but i prefer the insta'like solution.
About callbacks:
What do you think about make one delegate with one func - array of select. And later deprecate a callback?

Connect me please via Whats'app<PHONE_NUMBER>7), Skype (a_yoguk) or other messenger. In order to sinchronize and not to do the same job.

Ok that a resume:

If user select multiple items and click next, than the delegate method would fire with 2 or more MediaItems.
Selection for single item stays unchanged.
Selection for single item also fires a delegate method.
Right?

@NikKovlos Yes :)

Hows this goin?

I've implemented a raw version. There is a strange bug when selection multiple images and videos.
[Unknown process name] CGImageCreateWithImageProvider: invalid image size: 0 x 0.

I did'n figure out what is it for now.
The next step is to integrate video cropping. The flow would looks like:

Select multiple items
Go to SelectionGalleryVC (can add filters there like in instagramm)
Tap on one of image, there would present filterVC for photo and video. For video it would be additional (except filters) functional to crop the video.
Edit and go back to SelectionGalleryVC
Press next. Finish.

@NikKovIos the work you're doing is nothing short of amazing  💪!  Can't wait for the new version to be out :)

After using this line config.maxNumberOfPhotos = 12.it is showing ->
Value of type 'YPImagePickerConfiguration' has no member 'maxNumberOfPhotos'
How to resolve this?

@goribchat it's renamed to maxNumberOfItems. Check the configuration API before asking please. Respect our time, man)

@NikKovIos I do agree, Actually instagram has no title on those screens. In our case "filter" is not really adapted for videos since we do not support filters yet. Should we choose something like "edit" ?

Wof, such a big merge! 😀


Handling of CODE_OF_CONDUCT.md

The LFDT guideline says that every repository needs a CODE_OF_CONDUCT.md file: https://lf-decentralized-trust.github.io/governance/governing-documents/repository-structure.html
Today, we have CODE_OF_CONDUCT.md in the https://github.com/hiero-ledger/.github repository. By doing so, it is shown in every repo of the organization. I assume that is good enough, but I want to double check if it is valid.

yes


dwio/common/compression/Compression.cpp DWIO_ENSURE_LE check output NOT as expected

Bug description
https://github.com/facebookincubator/velox/blob/f33b40da09441d542f32ee9ed9fb2e340d3c2a75/velox/dwio/common/compression/Compression.cpp#L290-L297
[Expected behavior]
Reason: [Range Constraint Violation : 32>=2227206908] : LZ4 decompression failed, remainingOutputSize is less than decompressedBlockSize, remainingOutputSize: 32, decompressedBlockSize:<PHONE_NUMBER>
[actual behavior]
Reason: [Range Constraint Violation : 32>=2227206908] : {} decompression failed, remainingOutputSize is less than decompressedBlockSize, remainingOutputSize: {}, decompressedBlockSize: {}5322227206908

cc @nmahadevuni


Overlay graphics?

How hard would it be to spruce up the overlays? Soild colors are a bit boring... Slap some images on the overlays or even a slot to put what ever you want! Now we are talking! Great plugin though! Just currently switch to it.

I second that. Custmize options of the overlay would be awesome. As well as being able to change the timings/durations of the animations


non empty defaultStoreCode in multistore mode errors out

Current behavior
These two are the only changes to config/default.json

It results in an error loop

Expected behavior
Should behave like v1.10 - redirect to host/{defaultStoreCode}
Steps to reproduce the issue
clone repo
checkout release/v1.11,
make 2 changes to config
yarn dev
Can you handle fixing this bug by yourself?

[ ] YES
[x] NO

Which Release Cycle state this refers to? Info for developer.
Pick one option.

[ ] This is a bug report for test version on https://test.storefrontcloud.io - In this case Developer should create branch from develop branch and create Pull Request 2. Feature / Improvement back to develop.
[x] This is a bug report for current Release Candidate version on https://next.storefrontcloud.io - In this case Developer should create branch from release branch and create Pull Request 3. Stabilisation fix back to release.
[ ] This is a bug report for current Stable version on https://demo.storefrontcloud.io and should be placed in next stable version hotfix - In this case Developer should create branch from hotfix or master branch and create Pull Request 4. Hotfix back to hotfix.

Environment details

Browser: Chrome 78.0.3904.108
OS: Windows 10 Pro
Node: v10.16.3
Code Version: v1.11.0-rc.2

Additional information
relates to #2731

thanks for reporting, we need to check that 👍

Hi there! Are you sure it was doing the redirect in 1.10? I’m asking because #3643 is still open and not merged yet. Before that we haven’t got the redirect and this parameter was used for switching the elastic search index names and adding this parameter as ?storeView to api calls - in general for switching the store context for the default url
By having this parameter you were able to run the vs on root domain with specific storeView selected without the need of using /de, /it prefixes

Yes you are right, no redirect to host/{defaultStoreCode} as I said previously. Not sure which dream I took it from :D


Update Rust

Game Title
Rust
Status of the Anti-Cheat
😥 Broken
Tinkering Steps
With this update the eac loading launcher has changed and you will get a "Disconnected: EAC: Client integrity violation" however if you change to "proton experimental" then start the game and load into a server you may be able to join an eac protected server. However you will be kicked after a minute or so.
Proof of Mention
https://twitter.com/playrust/status/1575061791280971778

Also to note that while they did change over to the EOS Easy Anti Cheat, Garry Newman, the owner of facepunch posted this on twitter, saying they're basically unsure about if they want to support it at this point.

Also to note that while they did change over to the EOS Easy Anti Cheat, Garry Newman, the owner of facepunch posted this on twitter, saying they're basically unsure about if they want to support it at this point. https://twitter.com/garrynewman/status/1574466250167787520

Thanks for the info!


Change ETHDKG delegateCall method and add history of MPKs

closes #405

bridge/contracts/InvalidTxConsumptionAccusation.sol has a todo. Make sure this is visible to the issue / pr that resolves it.


Closes issue #55

Allows the user to save the sidebar settings in a conf.cfg file inside the <conf_dir>.
Provides a new class Settings that is used as an attribute of the PythonInput class. All the user customisable settings are provided in a dictionary in the constructor of the class Settings. Changing the settings has the same effect as in the current code.
The Settings class provides two utility methods:

update_from: that loads customisable settings from the ~/.ptpython/conf.cfg (or another given path).
save_config: that saves the settings in the ~/.ptpython/conf.cfg file (or another given path).

I added a done parameter to the embed. The idea is to have a way to do something upon client termination. The utility of the done hook in this PR is to be able to save the settings to the file.

Put this on hold @jonathanslenders. I'm getting an unexpected behaviour when I launch ptpython with my changes. I'll let you know.

Don't worry, Daniel. It's not urgent.
See when you have time, I do appreciate the effort.


Should we rename DNS Resource to ResourceSet?

When we started work on DNS, we did not fully understand how the service aggregates traditional zone file resource records (RRs - as defined in RFC 1035 and RFC 1034) by name and type, as rrdatas in ResourceRecordSet resources. Because of this, we named our class Record when it probably should be named RecordSet. I made an attempt to clarify this in the docs:

Represents a set of DNS resource records (RRs) for a given name and type in a Zone.

However, it would probably be best to rename the class and its usages. Users new to Cloud DNS who are familiar with RRs in the flat structure of a zone file are likely to experience some confusion.

@jgeewax I would love to get your opinion on 1) If you think this is actually helpful, and if so, 2) what sort of priority we should give this. In my experience this type of refactoring involves a lot of code changes, but goes quickly and is best done soon.

I'm :-1: on this. I like the name. Simpler is better.

Not sure if we will make this change, but if we do it should be before 1.0.

Gonna keep the names as they are.


Create Model for SavingLog

A SavingLog is used to record an instance where a PurchaseItem is ticked off and the price in the ExpensLog  lower than that of the PurchaseItem or alternatively when the total spent in a section is less than the total of PurchaseItems in the section, it will contain the following fields

name: name of the SavingLog
amount: amount saved
log_category_id: name of the LogCategory this saving is attributed to
money_log _id: id of the MoneyLog this SavingsLog belongs to

a model will be needed to

[ ] Create a savings log
[ ] Update a savings log

I can work on this issue

@WanjikuMac  I think @br4inii  got to this one first so let's let him have it


Unfolded Add Node in Network Graph related to the rounding

I have noticed an issue in the commit (https://github.com/pulp-platform/quantlib/commit/e8cfc0da8ea6e64774cb6f1bbe1de4613140ed4c), specifically in the graph of the network.
There is an Add node for rounding (0.5), which should ideally be folded together with the other Add node before it. This seems to be causing a discrepancy in the network graph.
Could this be checked and corrected?
Thanks for looking into this.

Hi @ahmad-mirsalari!
I believe this is in issue of oversight. For PULP-NN type quantization, the rounding offset (eps/2) is indeed added to the bias of the requantization operator. For CMSIS type quantization, this is not done, since the kernels work differently. I'll look into a fix with @da-gazzi.


Redirect to decoding a secret

In this Document Encrypting Secret data at REST, the example to verify decrypt secret is bit confusing,
on doing $ kubectl describe secret secret1 -n default
"should match mykey: mydata" never match because data is enoded, It creates confusion for a while.
This commit redirects it to decoding the secret

@adisky Yes, what I wrote is a suggested change. But it's your choice.

@adisky Are you ready for me to merge this?

@steveperry-53 it is good to go from my end

/lgtm
/approve


Rotate an array by 90 degree in an anti-clockwise manner.

Description
Code with detailed explanation.
Domain
DSA
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign

/assign


Future: Is there any support for Avalonia 11.1. planned?

It's a awesome project you created. So I hope for a support in the future :)

As soon as the official version of avalonia 11.1 is released, I will update it simultaneously. Generally as long as there are no major changes to Avalonia, you should be able to use the current version directly in 11.1 without issue.


Make near links work on topic / stream change.

Fixes #15290
@timabbott does this approach looks good to you?

I'm not sure; ideally we want to avoid doing an extra round-trip to the server if not required.  I think there's a few ways to do that:

If the client already has the target message ID in its message_store, it can look at the properties of that object, and if so, adjust where it's going.
We could add a follow_moves parameter that we pass to GET /messages, and if that parameter is passed, we'll first fetch the target message ID from the database and check if it matches the requested narrow's stream/topic. And then all near queries would use that parameter.

This should be ready for review.

Rebased!

I did a rebase on this, and made a few cleanups to the API documentation, but then started this conversation about the API design: https://chat.zulip.org/#narrow/stream/378-api-design/topic/GET.20.2Fmessages.2F.7Bmessage_id.7D/near/1336731

Updated the PR as per discussion.

I extracted the first commit, made some changes, and pushed it to https://github.com/zulip/zulip/pull/20576, since I noticed that was still open. I'm going to see if @laurynmm can help get that commit finished on Monday.

OK, we've now merged that; I've rebased this to just be the frontend commit making use of that.

OK, I did a refactoring pass on this PR, and I think it's close to being correct. The main thing it's missing is that the logic should probably be checking whether the edit history contains a state where the message with the target ID was in the topic that was requested.  (We may want both version -- e.g. the current logic may be the best we can do if edit history access is disabled for the current user).
@laurynmm would you be able to help with writing such a function?

Test-deployed this on chat.zulip.org, but I think we've concluded we do in fact need that edit history check before merging this fully.

Closing in favor of https://github.com/zulip/zulip/pull/21426, which should merge shortly. Thanks for all the early work on this @amanagr!


Database related errors in app.

php app.php configure -vv has error:
• keeper:bundle: syntax error, unexpected 'elements' (T_STRING), expecting '[' at line 10 [27 ms]
After creating sqlite file with proper schema, php app.php user:seed command has error:
[App\Service\Exception\PersistException]   Unable to persist entity
And if I run app, i've got:
Spiral\Views\Exception\RenderException: Unable to find Entity role for repository Spiral\Writeaway\Repository\PieceRepository in /var/www/spiral/app-keeper/vendor/spiral/framework/src/Framework/Cycle/RepositoryInjector.php at line 56 • caused by Cycle\ORM\Exception\ORMException: Unable to find Entity role for repository Spiral\Writeaway\Repository\PieceRepository in /var/www/spiral/app-keeper/vendor/spiral/framework/src/Framework/Cycle/RepositoryInjector.php at line 56
Here is full screen:

Error screenshot

+1

Can you run php app.php cycle after finishing migrations? Sounds like cache has stuck.

Can you run php app.php cycle after finishing migrations? Sounds like cache has stuck.

It works ,thanks


How to get the number of objects saved in a certain node?

Hi，
I wonder how can I get the number of objects saved in a certain node, e.g:a LEAF node or POINTER?
If I want to limit the objects in leaf node, for example, if the objects in a node are over 10, then it should split to deeper, and can not be LEAF node. How can I achieve that?
Also, how to know the depth of the tree?
Thanks.

I have this problem too

It's splitting into four sub tress whenever a new node has been added. To modify this behaviour one should use a collection to contain generic data, write their own insert function and determine the threshold.


Moving to my location doesn't work.

Moving to my location doesn't work. No reaction after clicking the button.
I allowed access to the location sharing.
My smartphone: bq Aquaris V Android 8.1.0

It's reproduceble for me. Must be a regression.
Thanks for reporting, I'll keep you posted!

I'm fairly sure v1.0.1 fixes this, at least I can't reproduce it anymore.
Let me know if it's fixed for you.
Google Play release is in review and f-Droid needs to have a PR approved first: https://gitlab.com/fdroid/fdroiddata/-/merge_requests/8738 You can of course just download the APK from the latest release (it's the fdroid version, but eitherway it shouldn't interfere with autoupdates).

For me it works.

The 'go to my location' button was rewritten in v1.2.0 to also follow the current location so this bug was probably fixed through that refactor.


Extended test with option to run Exec command

Using override for Exec command, the test will only measure the service creation latency for large backend size after executing the command.

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

/assign @marseel

/ok-to-test

Closing this due to a latency measuring issue with ServiceCreationLatency measurement when it is used multiple times for the same label selector.
I’m going to do the test separately using modules as @wojtek-t initially suggested.


Completion sometimes returns apparent duplicates

This doesn't always repro, but in Emacs mode:
PS> Get-PSReadlineOp<TAB>

Expected - just one completion, actual:
Get-PSReadlineOption    Get-PSReadlineOption

This might only repro without TabExpansionPlusPlus loaded.

I'm seeing this too. I do not have TabExpansionPlusPlus installed.
Here is my output for get-module:
get-module -all

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     0.0        GitStatusCachePoshClient            {Get-GitStatusCacheStatistics, Get-GitStatusFromCache, Remove-GitStatusCache, Restart-GitStatusCache...}
Binary     <IP_ADDRESS>    Microsoft.PowerShell.Commands.Ma... {Add-Content, Clear-Content, Clear-ItemProperty, Join-Path...}
Binary     <IP_ADDRESS>    Microsoft.PowerShell.Commands.Ut... {New-Object, Measure-Object, Select-Object, Sort-Object...}
Manifest   <IP_ADDRESS>    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Binary     <IP_ADDRESS>    Microsoft.PowerShell.PSReadLine     {Get-PSReadlineOption, Set-PSReadlineOption, Set-PSReadlineKeyHandler, Get-PSReadlineKeyHandler...}
Script     0.0        Microsoft.PowerShell.Utility        {ConvertFrom-SddlString, Format-Hex, Get-FileHash, Import-PowerShellDataFile...}
Manifest   <IP_ADDRESS>    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Script     <IP_ADDRESS>... posh-git                            {Add-SshKey, Enable-GitColors, Get-AliasPattern, Get-GitDirectory...}
Script     <IP_ADDRESS>    PSColor
Script     1.2        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlineKeyHandler, Set-PSReadlineKeyHandler...}
Script     2.0.0      PSSudo                              {Invoke-ElevatedCommand, Start-Elevated, sudo}

and
get-module

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     0.0        GitStatusCachePoshClient            {Get-GitStatusCacheStatistics, Get-GitStatusFromCache, Remove-GitStatusCache, Restart-GitStatusCache...}
Manifest   <IP_ADDRESS>    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest   <IP_ADDRESS>    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Script     <IP_ADDRESS>... posh-git                            {Add-SshKey, Enable-GitColors, Get-AliasPattern, Get-GitDirectory...}
Script     <IP_ADDRESS>    PSColor
Script     1.2        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlineKeyHandler, Set-PSReadlineKeyHandler...}
Script     2.0.0      PSSudo                              {Invoke-ElevatedCommand, Start-Elevated, sudo}

Upon tab:
get-psreadline<tab>
Get-PSReadlineKeyHandler  Get-PSReadlineOption      Get-PSReadlineKeyHandler  Get-PSReadlineOption

Updated as admin with:
powershell -noprofile -command "Install-Module PSReadline -Force -SkipPublisherCheck"

Here's what I get:
29Mar 19:41:57 $HOME> powershell -noprofile
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS C:\Users\slumos> Import-Module PSReadline
PS C:\Users\slumos> Get-Module

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   <IP_ADDRESS>    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest   <IP_ADDRESS>    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Script     1.2        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlineKeyHandler, Set-PSReadlin...

PS C:\Users\slumos> Set-PSReadlineOption -EditMode Emacs
PS C:\Users\slumos> get-psread
Get-PSReadlineKeyHandler  Get-PSReadlineOption      Get-PSReadlineKeyHandler  Get-PSReadlineOption
PS C:\Users\slumos> get-psread

Tried debugging this some more. Again, this is on 3 machines all win10x64, but running quite different versions. One is insiders ring. One is Creators Edition. One is last years release (Win10 Enterprise).
If this output helps any:
$( Foreach ($m in Get-Module) { "module=$m" ; Foreach ($c in $m.NestedModules) { echo $c }} ) | grep "Get-PSReadlineKeyHandler" -n -A 10 -B 5
11-Script     0.0        Agnoster                            Write-Theme

12-Script     0.0        omega                               Write-Theme

13-module=posh-git
14-module=PSColor
15-module=PSReadline
16:Binary     <IP_ADDRESS>    Microsoft.PowerShell.PSReadLine     {Get-PSReadlineOption, Set-PSReadlineOption, Set-PSReadlineKeyHandler, Get-PSReadlineKeyHandler...}

17-module=PSSudo
18-
19-

$( Foreach ($m in Get-Module) { $m ; Foreach ($c in $m.NestedModules) { echo $c }} ) | grep "Get-PSReadlineKeyHandler" -n
15:Script     1.2        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlineKeyHandler, Set-PSReadlineKeyHandler...}

16:Binary     <IP_ADDRESS>    Microsoft.PowerShell.PSReadLine     {Get-PSReadlineOption, Set-PSReadlineOption, Set-PSReadlineKeyHandler, Get-PSReadlineKeyHandler...}

$( Foreach ($m in Get-Module) { $m ; Foreach ($c in $m.ExportedFunctions) { echo $c }} ) | grep "Get-PSReadlineKeyHandler" -n
162:Script     1.2        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlineKeyHandler, Set-PSReadlineKeyHandler...}

$( Foreach ($m in Get-Module) { $m ; Foreach ($c in $m.ExportedCommands) { echo $c }} ) | grep "Get-PSReadlineKeyHandler" -n
954:Script     1.2        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlineKeyHandler, Set-PSReadlineKeyHandler...}

956:Key   : Get-PSReadlineKeyHandler
957:Value : Get-PSReadlineKeyHandler

If it helps any; this occurs on 3 machines, running 3 versions of windows 10.
If I open plain powershell, no profile. and tab through, I still get them, just cycles through
Get-PSReadlineKeyHandler
Get-PSReadlineOption
PSReadline\Get-PSReadlineKeyHandler
PSReadline\Get-PSReadlineOption

I think we concluded this was a somewhat obscure problem with PowerShell where a nested module name did not match the main module. I'm not sure how many modules this affects, but I think I've seen it with modules other than PSReadline.
When I finally get around to doing something about this, I'll probably just do some filtering on the duplicates. The original design to include module qualified names isn't that useful (even when it's pointing out two commands from different modules), so removing those when there are apparent duplicates seems like the best user experience.

The original design to include module qualified names isn't that useful

Why?  Seems like it would be useful for the scenario you mention (multiple commands with the same name).   It would let me know there are duplicates and I wouldn't have to go lookup the module name to invoke the command I want.

I didn't say it wasn't useful, just not useful enough to put a lot of effort into keeping it working perfectly when this sort of problem comes up. I think I can keep it mostly working, just not perfectly working.

To give you an example, where this happens apart from the PSReadLine module:
> powershell -noprofile
> Set-PSReadlineKeyHandler -Key Tab -Function Complete
> Connect-M<TAB><TAB>
Connect-MsolService  Connect-MsolService
> Get-Command Connect-M*
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Connect-MsolService                                1.0        MSOnline
Cmdlet          Connect-MsolService                                1.0        MSOnlineExtended

I'd appreciate a solution for this bug, as it makes tab completion entirely useless for the MSOnline module, as all Commands are included in MSOnlineExtended as well.

I've lived with this longer than anyone so I should be thoroughly annoyed with it, and I guess I am, so if somebody doesn't beat me to it, it will get fixed some day.
My workaround that makes it not so bad - hit Ctrl+Space - the one I want is usually the first, so space or enter after that is usually all it takes.

We'll try out this fix - ignoring any item where the menu item text is duplicate. Hopefully it doesn't hide other useful completion results, if it does, there might be other options like changing the menu item text to match the completion text, but I think that will get ugly.


wip(web-app): log message api and call from middleware

Closes #245
Sample Log Message (I believe IP is undefined because of running locally):

Testing / reviewing
Run with changes and see console when navigating through the app, page requests should be logged

Merging this in with just one review to get it in the nightly. Francine and I have both tested this pretty extensively in our local environments. I'll give it additional validation on the test env once we deploy it there.


FIX Comments ignored by classmanifest

Fixes #6615
TokenizedRegularExpression now takes an optional list of tokens to ignore when searching for matches.
This means that an unexpected comment or whitespace sprinkled between the expected structure of the TRE is ignored rather than causing silen failures or breakages.

There is something weird going on - I was testing this locally and all fine. then it seems to break when I checkout again and re-test.
Maybe the tests are caching the manifests?!


Try using explicit modulemap in CocoaPods build

We already have explicit module.modulemap for SwiftPM. We should look at the behavior of using that in CocoaPods instead of its own, generated using a separate cocoapods DSL.

This doesn't work well because modulemaps don't support globs, and our headers are structured in such a way (right now) where XCode needs to see them as private modular headers to resolve them.


build: Repair the build on WASI

Timezone support is generally not available on WASI, so disable it. Additionally, the signal and mman needs explicit emulation options.
This is a preparation for upcoming SCF packaging.

We don’t have CI setup for this package (yet!) but this looks good to me.

Thanks!

We should have a discussion about what it means for FoundationInternationalization support on WASI in general, when we move up the stack to making changes there.


[WIP] Fix for #92

Work in progress just leaving it as a placeholder, this potentially fixes #92 - again WIP still investigating.

Nevermind. The change is correct. It's just a bit over-complicated.
https://github.com/FidelLimited/serverless-plugin-warmup/pull/95 does the same but I think that's a bit cleaner.
Let me know what you think!
And thanks for the help!!

@juanjoDiaz Yeah 'tis why I marked it at WIP, your PR is the correct fix, it was literally a 5 minute debug session, I'll close this one and leave yours! You're welcome, it'll likely take me a few of these to bring my brain into line in terms of coding with you guys.