It will cause status bar appearance problem on MacOS

My df works under terminal, but nothing show when add plugin to status-right.

Hi! Sorry about your issue. I'll try to address it, but first I have some questions.

Did you do Ctrl+B followed by I (the letter i) to fetch and install the plugin?
Are you using tmux plugin manager (TPM) or manual install?
Are you using other tmux plugins, and do they work fine?

Unfortunately I don't have a Mac to test for myself.

Thanks for your reply! And yes, I have other plugins installed by TPM, and they basically work fine. I also have tmux-df installed this way. By the way I am using zsh instead of MacOS default bash, not sure it matters or not.

I did as much research as I could, given that I don't have a Mac myself. The only clue I found is that macOS has an old version of Bash, which probably doesn't support the type of array I used in my script. I tried replacing that array with a different one which might be more compatible with older Bash versions.
Could you try this branch and see if it fixes the problem?
I was able to switch my tmux to this branch by doing the following:

Exit tmux (tmux kill-server if necessary)
Delete ~/.tmux/plugins/tmux-df (default location)
Edit .tmux.conf and delete the line set -g @plugin 'tassaron/tmux-df'
Add branch as a plugin: set -g @plugin 'tassaron/tmux-df#without-associative-array'
Start tmux and do prefix + I to install the new version of the plugin

If you don't delete the plugin before changing branches, TPM will silently ignore the change of branch.
I'm also curious what the output of bash --version is for you?

bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin20)
Copyright (C) 2007 Free Software Foundation, Inc.

Okay, I believe associative arrays were added in version 4+ so that new branch I made should fix it for you 🤞

I tried the branch still didn't show the  value on statusbar, but It didn't crash all the status bar this time which better than the main branch. Maybe still got anoher compatible issuses some where else.
Anyway it's kind of you to check this tiny issue for me, thx!😺

Yes, you're right!
echo "$(df -h | awk '{if ($6 == "/") {print $4}}')" returns blank
while
echo "$(df -h / | awk '{print $4}' | tail -n 1)" return the df result
So that is where the problem is

Yay! Thanks for trying that 👍
I'm away from my computer at the moment but I'll merge a fix into the main branch tonight (8 hours from now)

Wow! Looking forward to it!


feat: add explicit readonly prop to TextInput and TextArea

Added readOnly prop to TextInput and TextArea controls
UXRFC-469

We have decided that we should not changed background color

fixed


hidpp20: fix reading onboard profiles (8100)

when we read the memory from the device we already align the offset so
that it matches the end of the sector. for ex, for a 255 sector size the
offset will be set to 255-16.
when we copy the memory (using memcpy) we just copy the bytes that will
finish filling the buffer, ignoring that the offset was aligned. we need
to copy the full 16 bytes, otherwise it will fail when sector_size does
not align with 16.
Signed-off-by: Filipe Laíns<EMAIL_ADDRESS>

Fixes #729.

punting to @bentiss because he wrote that bit and the comments are fairly specific about how we may get invalid arguments here.

Sure. But basically the 8100 feature doesn't allow us to read past the end of the sector, so we position the offset so that it doesn't go past it (we read 16 bytes at a time so we position it at sector_size - 16).
We are then are are using min(count, 16) to calculate the size which would be valid if we didn't align the offset. But as we align the offset we need to copy the full 16 bytes to the memory.
Example (to also use as documentation):
Given a sector_size of 64
Read 16 bytes at 0x00 (total 16 bytes read)
Read 16 bytes at 0x10 (total 32 bytes read)
Read 16 bytes at 0x20 (total 48 bytes read)
Read 16 bytes at 0x30 (total 64 bytes read)

Given a sector_size of 70
Read 16 bytes at 0x00 (total 16 bytes read)
Read 16 bytes at 0x10 (total 32 bytes read)
Read 16 bytes at 0x20 (total 48 bytes read)
Read 16 bytes at 0x30 (total 64 bytes read)
Read 16 bytes at 0x36 (total 70 bytes read)

0x36 = 0x46 (70 dec) - 0x10 (26 dec)


Feature: Create symlink for repository-s3 plugin to read ServiceAccount token

I am running an Opensearch cluster using Opensearch Operator in AWS EKS. I have created a ServiceAccount in order to access an AWS S3 bucket to use for my snapshot but i get the following error:
"reason" : "amazon_client_exception: java.security.AccessControlException: access denied ("java.io.FilePermission" "/var/run/secrets/eks.amazonaws.com/serviceaccount/token" "read")",
"caused_by" : {
"type" : "security_exception",
"reason" : "access denied ("java.io.FilePermission" "/var/run/secrets/eks.amazonaws.com/serviceaccount/token" "read")"
The token has the following permissions:
lrwxrwxrwx 1 root root 12 Feb 13 18:21 /var/run/secrets/eks.amazonaws.com/serviceaccount/token -> ..data/token
If i copy this token under the plugin's directory it works normally:
/usr/share/opensearch/plugins/repository-s3/token
To Reproduce
Steps to reproduce the behavior:
Deploy an Opensearch cluster (image version 2.4.1) with repository-s3 plugin installed
Configure a Kubernetes service account to assume an IAM role
Configure s3.client.default.identity_token_file: /var/run/secrets/eks.amazonaws.com/serviceaccount/token
Expected behavior
Be able to instruct Opensearch Operator to create a symlink as described here
Plugins
repository-s3 plugin
Host/Environment (please complete the following information):
AWS EKS version 1.21
Opensearch cluster (image version 2.5.0) deployed with Opensearch Operator (version 2.2.0)

Just to clarify the feature request, when running in k8s on AWS, there is a possibility to use the IRSA (IAM roles for service accounts) for repository-s3 plugin but it needs access to a web identity token file located at /var/run/secrets/eks.amazonaws.com/serviceaccount/token. Then OpenSearch plugins have no access to FS outside its own location or config folder (configured by OPENSEARCH_PATH_CONF), but creating of the symlink is sufficient:
ln -s $AWS_WEB_IDENTITY_TOKEN_FILE "${OPENSEARCH_PATH_CONFIG}/aws-web-identity-token-file"

The feature request (or clarification if that is feasible) is to have a way to create a symlink once the OpenSearch is deployed.

Hi @DimitrisChristinakis. This is a very specific issue so I don't think we can provide a specific fix for this.
We might be able to add support for some sort of init scripts, but I have a bad feeling about this as it would likely add complexity and make the startup process more unstable.
As a workaround: Could you mount the serviceaccount secret using the additionalVolumes feature (https://github.com/Opster/opensearch-k8s-operator/blob/main/docs/userguide/main.md#additional-volumes) into a reachable path?

Hi
So I don't think this is a specific usecase per say, but I understand the logic in the statement. I am having the same issue, around the use of IAM roles as service accounts. I have done a basic hack , needs more thorough testing and cleanup, but what I have is below (and yes the idea was shamelessly stolen from somewhere else).
Some fields need to be configure to what your infra looks like, IE namespace, cluster
you also need to set the additionalConfig
s3.client.default.identity_token_file: /usr/share/opensearch/plugins/repository-s3/token

cat <<EOF | kubectl apply -f -
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: opensearch
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["list", "get"]
- apiGroups: [""]
  resources: ["pods/exec"]
  verbs: ["create"]
EOF

cat <<EOF | kubectl apply -f -
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: opensearch
subjects:
- kind: ServiceAccount
  name: default
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
EOF

cat <<"EOF" | kubectl apply -f -
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: cm-backupscript
  namespace: opensearch
data:
  backupscript.sh: |
    #!/bin/bash
    echo 'getting pod name'
    podNames=$(kubectl -n opensearch get pods --selector='opster.io/opensearch-cluster=cluster' --field-selector=status.phase=Running --output=jsonpath={.items..metadata.name})
    echo $podNames
    for podName in $podNames
    do
      kubectl -n opensearch exec -i $podName -c opensearch -- ln -sf /var/run/secrets/eks.amazonaws.com/serviceaccount/token /usr/share/opensearch/plugins/repository-s3/token
    done
    echo 'done'
EOF

cat <<'EOF' | kubectl apply -f -
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: backup-cron
  namespace: opensearch
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                - matchExpressions:
                  - key: kubernetes.io/arch
                    operator: In
                    values:
                    - amd64
          volumes:
          - name: backup-script
            configMap:
              name: cm-backupscript
              defaultMode: 0777
          containers:
          - name: kubectl
            image: bitnami/kubectl:latest
            command:
            - /bin/sh
            - -c
            - /mnt/scripts/backupscript.sh
            volumeMounts:
            - name: backup-script
              mountPath: "/mnt/scripts"
          restartPolicy: Never
EOF

Your mileage may vary, hopefully a more longer term solution can be found
Thanks

@rhysxevans Thanks a lot for sharing this workaround. It actually works very well!

2 @swoehrl-mw :
No, it is not a "specific case". AWS EKS is a popular managed kubernetes solution. And it is highly likely that if you are using AWS S3 for snapshots, then you are using AWS EKS for kubernetes. And IRSA is the standard way to provide AWS API access to workloads in EKS.
Yes, you are right that the correct way is to mount that token to some other place. But the problem is that currently opensaerch-k8s-operator supports creating volumes from configMaps and secrets only. And does not support creating projected volumes (which is required to mount such AWS IAM token).
2 @DimitrisChristinakis and @rhysxevans :
There is more correct solution (still "hacky", but more correct):
apiVersion: opensearch.opster.io/v1
kind: OpenSearchCluster
metadata:
  ...
spec:
  ...
  general:
    ...
    serviceAccount: ...
    pluginsList: ["repository-s3"]
    ...
    additionalVolumes:
    - name: aws-iam-token
      path: /usr/share/opensearch/config/aws-iam-token
  ...
  nodePools:
    - component: ...
      ...
      additionalConfig:
        s3.client.default.identity_token_file: /usr/share/opensearch/config/aws-iam-token/token
  ...

In such a way you can override aws-iam-token volumeMount injected by EKS and place it under OPENSEARCH_PATH_CONF path, which is accessible by plugin.
But pay attention that in such case the AWS_WEB_IDENTITY_TOKEN_FILE environment variable injected by EKS is still pointing to default token location (which does not exist anymore). So any code, that is using this variable, should be reconfigured properly.

@rinrailin To clarify (as I'm not very familiar with IAM on EKS): If the operator would allow configuring projected volumes then it should work?
Because that is something that I think we can support without problem.
What I want to avoid is adding very specific logic (like configuring symlinks) or provider-specific logic to the operator as it should be agnostic. But if we can support some simple kubernetes mechanisms like projected volumes to help in provider-specific configuration (and I have nothing against provider-specific recipes in the userguide) then I'm game.

@swoehrl-mw , yes. If you add support of projected volumes to you operator, then it will allow to solve this issue with IRSA in more correct way (to make additional mount of required token).

@rinrailin Thanks for the confirmation. I've opened a feature request to properly track this (#459).

Hello everyone,
I am with the same problem.
I can't find aws-iam-token volume but I have the /var/run/secrets/eks.amazonaws.com/serviceaccount/token volume but openseach can't read this file

HI,I am with the same problem. Unable to load credentials from any of the providers in the chain AwsCredentialsProviderChain
{   "error": {     "root_cause": [       {         "type": "repository_verification_exception",         "reason": "[opensearch-snapshots] path [point-in-time/elasticsearch] is not accessible on cluster-manager node"       }     ],     "type": "repository_verification_exception",     "reason": "[opensearch-snapshots] path [point-in-time/elasticsearch] is not accessible on cluster-manager node",     "caused_by": {       "type": "i_o_exception",       "reason": "Unable to upload object [point-in-time/elasticsearch/tests-YWgThopjRAasILe9SFmgcg/master.dat] using a single upload",       "caused_by": {         "type": "sdk_client_exception",         "reason": "sdk_client_exception: Unable to load credentials from any of the providers in the chain AwsCredentialsProviderChain(credentialsProviders=[SystemPropertyCredentialsProvider(), EnvironmentVariableCredentialsProvider(), WebIdentityTokenCredentialsProvider(), ProfileCredentialsProvider(profileName=default, profileFile=ProfileFile(profilesAndSectionsMap=[])), ContainerCredentialsProvider(), InstanceProfileCredentialsProvider()]) : [SystemPropertyCredentialsProvider(): Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId)., EnvironmentVariableCredentialsProvider(): Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId)., WebIdentityTokenCredentialsProvider(): access denied (\"java.io.FilePermission\" \"/var/run/secrets/eks.amazonaws.com/serviceaccount/token\" \"read\"), ProfileCredentialsProvider(profileName=default, profileFile=ProfileFile(profilesAndSectionsMap=[])): Profile file contained no credentials for profile 'default': ProfileFile(profilesAndSectionsMap=[]), ContainerCredentialsProvider(): Cannot fetch credentials from container - neither AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variables are set., InstanceProfileCredentialsProvider(): Failed to load credentials from IMDS.]"       }     }   },   "status": 500 }


document multistage dvcfile

iterative/dvc#3584 implemented multistage dvcfile. Need to document about it (let's see how it solidifies).

Wow this is huge. Do you gus know when the release is? If it's as big as I think, we should probably hold on releasing the version until we have at least corrected the existing docs that show DVC-file examples including get started and dvc run cmd ref.
Cc @shcheklein @efiop

p.s. unless the change is backwards compatible but I understand that's not the case.

@jorgeorpinel, it is backwards compatible at this point, but it's not yet clear if it will remain for 1.0 release.

If you're not already working on this, I'd like to take a crack. Can you give me some pointers where I can find what the new file layout should look like? I've noticed that the options like cached or persist have moved...

Hi @dsuess. Thank you for taking interest in this, but we are still iterating on this and is not complete yet. You can find more discussions on iterative/dvc#3584.

Closing it, as this issue has become a bit redundant.


gps/pkgtree: replace with x/tools/analysis code

The new x/tools/analysis library is a lot faster and a lot more flexible about which data you need to get and which you can skip and we should probably switch to it.

Dep was officially deprecated earlier this year, and the proposal to archive this repository was accepted. As such, I'm closing outstanding issues before archiving the repository. For any further comments, please use the proposal thread on the Go issue tracker. Thanks!


Add rel="nofollow" on Versions links

Part of #1438. This avoids having search engines was time fetching versioned links which are just going to be canonical'ed away.

personally I would be fine with this, before I dig into testing & review I would like to have a last approval by @jyn514 and @Nemo157 , though I remember at least @jyn514 was already fine with this once.

This seems fine, yeah, not sure of any downsides here other than the old versions not showing up in Google. People can always use our version selector if they want a specific version.

@jsha

will this be enough for google or should we also set meta/no-index on these pages?
this will still be incomplete, right? I'm thinking about the links to the crate dependencies in the dropdown that can point to old versions, or the recently extended release-lists (#1835)

will this be enough for google or should we also set meta/no-index on these pages?

I don't want to noindex the explicitly-versioned pages because it's possible there's some item name that only exists in old versions. In that case, the old pages won't be canonicalized away (because their <link rel="canonical"> points to a 404), and may still be findable via search engines.
Of course, those search engines would still have to find that old page, which this PR would make harder since we are encouraging them not to crawl explicitly versioned URLs, by removing some links to those URLs. However, other links may still exist on the web, and search engines may still discover old URLs that way. I realize this is a bit hand-wavy but it seems like the right balance to me at the moment. :-)

this will still be incomplete, right?

I think it's complete. This is a macro (macro releases_list) that is used (in my local checkout) in the topbar and in the crate details page.

will this be enough for google or should we also set meta/no-index on these pages?

I don't want to noindex the explicitly-versioned pages because it's possible there's some item name that only exists in old versions. In that case, the old pages won't be canonicalized away (because their <link rel="canonical"> points to a 404), and may still be findable via search engines.
Of course, those search engines would still have to find that old page, which this PR would make harder since we are encouraging them not to crawl explicitly versioned URLs, by removing some links to those URLs. However, other links may still exist on the web, and search engines may still discover old URLs that way. I realize this is a bit hand-wavy but it seems like the right balance to me at the moment. :-)

kk, understood.

this will still be incomplete, right?

I think it's complete. This is a macro (macro releases_list) that is used (in my local checkout) in the topbar and in the crate details page.

I won't include the list of dependencies, which also can (indirectly) point to old versions of crates.
But assuming we don't want to block everything for google, but only some old versions, I'm fine with this.


Fix rerun failed tests in Grinder link

Fix: https://github.com/adoptium/aqa-tests/issues/3449
Co-authored-by: Yee Lin
Co-authored-by: lanxia<EMAIL_ADDRESS>

Grinder/23625/


Tutorial for Migration of Existing Applications

Description
Another tutorial should be added, which discusses migration from an existing application. Presumably the tutorial will use piral-core directly, instead of piral.
Background
There are many applications out there that want to have plugin capabilities or the ability to include microfrontends.
Discussion
Are there any aspects we should go into for sure (e.g., startup, React Router, ...)?

I am pre-researching this one.

Migrated from other technology stack projects, such as react-redux-saga and redux-react-hook. I may want to develop corresponding piral plugins for this, such as piral-redux-saga and piral-redux-hook. And try to use these two plugins at the same time, whether using multiple providers at the same time will affect.
The communication between the state of the app shell application and the pilets state container. For example, when the language status of the app shell is monitored, the pilet update is triggered. It is currently preparing to listen to the store-data event in the piral-redux-saga and piral-redux-hook plugins to update the pilet state container, thus triggering the pilet update.
Plug-in development of other vue technology stack migration
Is there any other faster or better way?

If I migrate the pilets of different technology stacks in this way, the bundle size of the app shell will increase with the increase of plug-ins of different technology stacks? Is my migration method wrong?

Cool!

Sure - all these things work. You can either just include them in your pilet or share them across pilets. For the latter providing a plugin as described could be a great way.

Sure you can use events, but if you use Redux anyway then you could also just connect to the container and listen for state changes.

Not sure what "vue technology stack" refers to. Can you clarify?

If I migrate the pilets of different technology stacks in this way, the bundle size of the app shell will increase with the increase of plug-ins of different technology stacks?

No by default converters integrate the respective technology. This enables just using the technology. Since these technologies (e.g., angular, vue, ...) come with their own runtime etc. these are bundled in. Of course, the bundle size therefore increases.
Consequently, we would not advise including all technologies you may encounter. Sharing dependencies should be avoided if possible. If only a single pilet uses a specific technology (e.g., only one pilet uses vue) the app shell should not provide vue support. Instead, only this one pilet should ship with vue (instead of the app shell).

Not sure what "vue technology stack" refers to. Can you clarify?
"vue technology stack" refers to a collection like vue + vuex ...

If you do not sharing dependencies(providing a plugin), and where to connect (initialize) the store between pages in a pilet ? Is there any sample(vuex and redux), thank you !

I see thanks for the clarification.
For redux you'll find some information in the README of the piral-redux NPM package (https://docs.piral.io/reference/plugins/piral-redux). vuex or similar (i.e., anything more specific to Vue) is at the moment a total green field.

Hi,
Well, at present, it seems to be a better way to put the vue and vuex libraries in the plugin and register the global module on the page.
The vuex global module mentioned here will be a module common to multiple pages in the pilet. It cannot be placed in the pilet index file or plug-in. This will cause it to be loaded during app shell initialization, resulting in an increase in requested resources.
There is currently no specific implementation of a lazy loading module, such as registering in the pilet index file, but only to load module resources when the global module is called.
Perhaps other frameworks also have this kind of requirement, which is to provide some function code common to multiple pages, but it cannot be placed in the app shell.

I think you look for import maps (https://docs.piral.io/tutorials/15-share-dependencies#sharing-from-pilets).

Yes, you are right, for general modules. But for similar vuex modules, there is a little bit difference, this needs to be registered in the store before the page is rendered.

Sure. In general you are free to provide an API for lazy loading dependencies, too.
Maybe we should even add this to Piral via a plugin, potentially in the piral-lazy plugin or a new piral-lazy-deps plugin.
The mechanism would be to extend the list of sharedDependencies dynamically, together with the capability of checking / waiting for it.
Imagine a set of APIs to be used like
export function setup(app) {
  app.registerDependency('redux', () => import('redux'));
  app.registerPage('/foo', app.lazy(() => import('./Foo'), ['redux']);
}

So its like importmaps, but API-wise nicer and allows dependent resolutions not when the pilet(s) load, but rather when dependent components load. Furthermore, the syntax in registerDependency could allow doing some steps after the dependency is loaded (and before the dependency is used in the components such as pages).

Sounds powerful. Does this seem to require routing lifecycle events to ensure that the page loads before loading dependencies?

Does this seem to require routing lifecycle events to ensure that the dependencies are loaded before the page is rendered?

No, because it does not directly depend on routing. It detects when a component is mounted (which can be due to routing or something else) and then checks if all dependencies are available. If not, the dependencies are loaded and a loading spinner is mounted instead.
The principle behind this is similar to things like the feed connector (https://docs.piral.io/reference/plugins/piral-feeds), just for dependencies instead of data fetching.

It's a good solution to the same scene in different frameworks, thanks !


correct description of front channel SLO

There should be emphasized state of implementation on various cas clients.

Changed to proposed wording - anyway, is there way to check implementation?

Other than downloading the client and trying it out, I don't know of a different way to check for support.


getApplications(path) does not include Terminal for directory paths

Description
The getApplications(path) function from @raycast/api does not include Terminal.app in its output when the path provided is to a directory. Terminal is able to open directories via Raycast's own open() function as well as via the command line (e.g. open -a "Terminal" ~/Desktop), so I believe this is a bug.
For example, consider the following no-view command:
import { getApplications, open } from "@raycast/api";
import path from "path";
import os from "os";

export default async function Command() {
  const dirPath = path.join(os.homedir(), "Downloads");
  const apps = await getApplications(dirPath);
  const terminal = apps.find((app) => app.name === "Terminal")
  // => undefined

  // this opens Finder
  open(dirPath, terminal)

  // this opens a Terminal at the Downloads dir
  open(dirPath, "Terminal")
}

Since getApplications() aims to reflect which apps can open the given path, the behavior seen above is inconsistent.
Also of note: iTerm, if installed, is properly recognized as being able to open directories.
Steps To Reproduce

Use getApplications(dirPath) to get applications that can open a directory.
Attempt to find Terminal in the returned list of applications (fails).
Use open(dirPath, "Terminal") to open the directory in the Terminal (succeeds).

Current Behaviour
Terminal is not included in list of apps that can open directories.
Expected Behaviour
Terminal should be included in the list of apps that can open directories.

That's a good point, will be fixed in the next release


No output file after compiling

No output file is produced after compiling my Rails project using rubyc bin/rails. Found this log in the end:
-> cd bin
Cannot find entrance /path/to/myproject/bin/rails, available entrances are _guard-core, aws.rb,
bootstrap, bundle, byebug, coderay, commander, db_drop, db_migrate, erubis, fluent-post, git-
version-bump, god, guard, htmldiff, httparty, iap, ipip, ldiff, listen, mojibake, mongrel_rpm, newrelic,
newrelic_cmd, nokogiri, nrdebug, protoc-gen-ruby, pry, puma, pumactl, rackup, rails, rake,
restclient, rotp, rpc_server, rspec, rubocop, ruby-parse, ruby-prof, ruby-prof-check-trace, ruby-
rewrite, safe_yaml, setup, sidekiq, sidekiqctl, slimrb, spork, sprockets, stackprof, stackprof-
flamegraph.pl, stackprof-gprof2dot.py, thin, thor, tilt, unicorn, unicorn_rails, uuid.

OS: macOS 10.12.5
ruby version: 2.4.0
rubyc version: Ruby Compiler (rubyc) v0.1.0 (runtime 2.4.0)
rails version: 4.2.8

v0.1.0 is pretty old. Let me release v0.2.0 now. Just a sec

http://enclose.io/rubyc

@pmq20 Got another error
-> Running [{"CI"=>"true", "ENCLOSE_IO_USE_ORIGINAL_RUBY"=>"1", "CFLAGS"=>" -fPIC -O3 -fno-fast-math -ggdb3 -Os -fdata-sections -ffunction-sections -pipe ", "LDFLAGS"=>""}, "make -j4"]
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /private/var/folders/8v/r_z7qgls0hzcc22yc8zmpdl40000gn/T/rubyc/gdbm/build-aux/missing aclocal-1.14 -I m4
/private/var/folders/8v/r_z7qgls0hzcc22yc8zmpdl40000gn/T/rubyc/gdbm/build-aux/missing: line 81: aclocal-1.14: command not found
WARNING: 'aclocal-1.14' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
make: *** [aclocal.m4] Error 127
Failed running [{"CI"=>"true", "ENCLOSE_IO_USE_ORIGINAL_RUBY"=>"1", "CFLAGS"=>" -fPIC -O3 -fno-fast-math -ggdb3 -Os -fdata-sections -ffunction-sections -pipe ", "LDFLAGS"=>""}, "make -j4"]

I found I have aclocal(1.15)
aclocal --version
aclocal (GNU automake) 1.15
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Tom Tromey<EMAIL_ADDRESS>       and Alexandre Duret-Lutz<EMAIL_ADDRESS>

Yup needed to brew install automake in order to get the aclocal dependency dealt with. But still failing.
configure: error: something wrong with LDFLAGS=" -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/zlib /var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/zlib/libz.a  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/openssl  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/gdbm/build/lib  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/yaml/build/lib  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/libffi/build/lib  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/ncurses/build/lib  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/readline/build/lib "
Failed running [{"CI"=>"true", "ENCLOSE_IO_USE_ORIGINAL_RUBY"=>"1", "CFLAGS"=>" -fPIC -O3 -fno-fast-math -ggdb3 -Os -fdata-sections -ffunction-sections -pipe  -I/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/zlib  -I/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/openssl/include  -I/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/gdbm/build/include  -I/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/yaml/build/include  -I/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/libffi/build/lib/libffi-3.2.1/include  -I/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/ncurses/build/include  -I/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/readline/build/include ", "LDFLAGS"=>" -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/zlib /var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/zlib/libz.a  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/openssl  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/gdbm/build/lib  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/yaml/build/lib  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/libffi/build/lib  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/ncurses/build/lib  -L/var/folders/z9/38cxxvz94y7_zf2m4_4rc7r40000gn/T/rubyc/readline/build/lib ", "ENCLOSE_IO_RUBYC_1ST_PASS"=>"1", "ENCLOSE_IO_RUBYC_2ND_PASS"=>nil}, "./configure

@pelted  @pelted  auto tools should not be needed. This is indeed a bug. Thanks for reporting.
Git lost track of modification time of some source code, resulting in make thinking that auto-configure is needed to be re-run. Fixed in fa8db11

@pmq20 Great! I'll try when the new release is out.

@pmq20 Could you release the new version so that I can verify if it's fixed?

@tony612 You could just clone the repo and try the master branch. Just use ruby bin/rubyc instead of plain rubyc.

@pmq20 I tried to use the master branch, but got this error:
Fetching source index from https://gems.ruby-china.org/

Retrying fetcher due to error (2/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://gems.ruby-china.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying fetcher due to error (3/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://gems.ruby-china.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying fetcher due to error (4/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://gems.ruby-china.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Could not verify the SSL certificate for https://gems.ruby-china.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Failed running [{"CI"=>"true", "PATH"=>"/var/folders/8v/r_z7qgls0hzcc22yc8zmpdl40000gn/T/rubyc/ruby/build/bin:/Users/tony/.rbenv/versions/2.4.1/bin:/usr/local/Cellar/rbenv/1.1.0/libexec:/Users/tony/.rbenv/plugins/rbenv-binstubs/bin:/Users/tony/scripts:/Users/tony/.rbenv/shims:/usr/local/heroku/bin:/usr/local/share/npm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin", "GEM_HOME"=>nil, "GEM_PATH"=>nil, "ENCLOSE_IO_USE_ORIGINAL_RUBY"=>"1", "ENCLOSE_IO_RUBYC_1ST_PASS"=>"1", "ENCLOSE_IO_RUBYC_2ND_PASS"=>nil}, "sh", "-c", "bundle install --deployment"]

I tried three times and got this error every time. When I run bundle install without rubyc, it works.
Then I change ruby-china gems to http, it works. But I'm not sure if it's the problem of ruby-compiler or gems.ruby-china.org.

@tony612 Thanks for reporting. This is probably due to a problem with ruby-compiler since it is using a freshly-built local toolchain to do the bundle install process. Let me see if I could reproduce this locally.

My problem should be fixed on master. Closing this. Thank you!


Handle renamed invoke

Codecov Report

Merging #190 (3f783b4) into master (5178703) will decrease coverage by 3.82%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #190      +/-   ##
==========================================
- Coverage   81.35%   77.52%   -3.83%
==========================================
  Files          13       13
  Lines        2708     2683      -25
==========================================
- Hits         2203     2080     -123
- Misses        505      603      +98

Impacted Files
Coverage Δ

src/compiler.jl
82.86% <ø> (-1.17%)
:arrow_down:

src/compiler/orcv2.jl
0.00% <0.00%> (-71.43%)
:arrow_down:

src/compiler/interpreter.jl
38.88% <0.00%> (-50.59%)
:arrow_down:

src/logic.jl
75.00% <0.00%> (-5.00%)
:arrow_down:

src/api.jl
45.37% <0.00%> (-1.06%)
:arrow_down:

src/typetree.jl
85.71% <0.00%> (-0.75%)
:arrow_down:

src/Enzyme.jl
84.13% <0.00%> (-0.33%)
:arrow_down:

src/compiler/optimize.jl
97.69% <0.00%> (-0.06%)
:arrow_down:

src/compiler/orcv1.jl
85.10% <0.00%> (+4.33%)
:arrow_up:

Continue to review full report at Codecov.

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


[BUG] Weird glyphs/symbols on EWW boxes

Checklist before submitting an issue

[X] I have searched through the existing closed and open issues for eww and made sure this is not a duplicate
[X] I have specifically verified that this bug is not a common user error
[X] I am providing as much relevant information as I am able to in this bug report (Minimal config to reproduce the issue for example, if applicable)

Description of the bug
I'm trying to use archnews to parse and display news about arch linux with the following command:
archnews -b -n 5 | cat - | sed -n '2,3p; 6,7p; 10,11p; 14,15p; 18,19p' (using sed -n to skip lines that present https)
My terminal is showing the following info (kitty with FiraCode fonts)

However, when i try to use the same code with box function, i obtain the following:

As you see...the terminal is not reproducing the same and i still do not know how to fix. Using the same font on both environments.
Reproducing the issue
Inside eww.yuck, my codes are:
(defpoll checknews    :interval "24h" `archnews -b -n 5 | cat - | sed -n '2,3p; 6,7p; 10,11p; 14,15p; 18,19p'`)

(defwidget news [?first]
 (box :orientation "vertical"
 	  :class "news"
 first
 )
)

(defwindow newsfeed
		   :monitor 0
		   :geometry (geometry :x "1100px"
		   				      :y "350px"
		   				      :width "5px"
		   				      :height "5px"
		   				      :anchor "top left")
		   	:stacking "bg"
		   	:class "feed"
		   	:wm-ignore false
		 (news :first checknews)
)

inside eww.scss
*{
	all: unset;
	font-family: "FiraCode Nerd Font Mono";
	font-size: 15;
	color: #02F2E4;
}
.newsfeed{
	background-color: #2A2020;
	border: 1.5px ridge #0CE3DB;
	border-radius: 1px;
	font-weight: bold;
	min-height: 15px;
	min-width: 100px;
}

Expected behaviour
I expect the same or similar output on the EWW box.
Additional context
I'm trying to create a dashboard-like structure where i have some essential information about my system to decide how i will start my day. Infos like: archnews, number of pacman/yay updates pending, free disk size, ram memory statistics, top 10 process by CPU, whoami and date. I still need to improve my aesthetics but this is what i achieved so far.

Thank you for your time.

Looks like the color escape codes are included, has archlinuxnew a option to print uncolored?
Or maybe there is another utility you can pipe it to, to remove those escape codes.

Ye, this is just archnews printing colored output unconditionally, resulting in your code keeping the escape sequences that the terminal uses for colors -- which eww obviously doesn't parse, and just prints verbatim.

Thank you!
It is "fixed" now. Sorry, i never thought about colors. Was not Eww fault.

@VuiMuich Archnews has a option to omit colors, it is represented by the "c" flag.
-c, --color           do not print in color, default is colorized output
new version
(defpoll checknews    :interval "24h" archnews -b -cn 5 | cat - | sed -n '2,3p; 6,7p; 10,11p; 14,15p; 18,19p')


The links to json schemas for the artifacts seem to all point to the run_results json schema

Contributions

[X] I have read the contribution docs, and understand what's expected of me.

Link to the page on docs.getdbt.com requiring updates
https://docs.getdbt.com/reference/artifacts/dbt-artifacts#notes
What part(s) of the page would you like to see updated?
In the linked section, we find links to the json schemas. They have the correct names, but the fields are all from the run_results artifact.
Additional information
No response

I looked for other issues relating to this but while there are issues with the absence of schemas, i could not find mentions of the wrong links. If this is known and I missed I apologize in advance.

Hello! Thank you for bringing this issue to our attention! It looks like all the links are correct now! Please let us know if you're seeing something different and re-open this issue, or open a new issue if you see another problem.


tests: Update libvirt because of internal error: unknown feature amd-…

…sev-es
Related: rhbz#1961562
This pull request includes:

[ ] adequate testing for the new functionality or fixed issue
[ ] adequate documentation informing people about the change such as

[ ] create a file in news/unreleased directory if this change should be mentioned in the release news
[ ] submit a PR for the guides repository if this PR changed any behavior described there: https://www.osbuild.org/guides/

Does this change actually solve any issue in our CI? We should already have the latest libvirt version installed...

Does this change actually solve any issue in our CI? We should already have the latest libvirt version installed...

Indeed it doesn't. We've got the latest libvirt and there doesn't seem to be any updates ATM.  At this time I'm not sure if we want to take this patch in or just live with the fact that some jobs will be failing and we'll have to restart them until we move to newer OS releases in the future.
Feel free to close if you don't want to take this in.

Yeah, I don't think this brings in additional value. The latest libvirt should be already installed by dnf install several lines above the addition unless it's already preinstalled in the image which it isn't.


Use pyk classes (KRun and KProve) in kavm

This PR will:

[x] Use pyk.ktool.krun._krun to call krun in a more idiomatic way
[x] Inherit the KAVM class from KProve and uses its methods to call kprove

Some of the commits are cherry-picked from #197 which was closed without merging. Note that we intentionally don't use run_kore_term to avoid constructing the complete initial configuration with pyk --- it's very expensive and unnecessary.

@nwatson22 please review when you have time. Specifically, have a look at kavm kore-repl, which is the new command that replicates the functionality of the old kavm prove, i.e. allows passing --debug-script. The new kavm prove is non-interactive.


fix some shellcheck warnings

Contributes to #6498
Following this attempt https://github.com/microsoft/LightGBM/pull/6548 at contributing to LightGBM and @jameslamb guidance I am now trying to help with fixing the shellcheck warnings for all the bash scripts inside the package (at least I think so).
Screenshot to show that the warnings are gone in my local environment:

Fixing https://www.shellcheck.net/wiki/SC1091 errors (source activate $SOME_CONDA_ENV) by pointing at at /dev/null is quite unsatisfactory but I did not manage to come up with something better.
Welcoming any feedback!

@microsoft-github-policy-service agree

I had to revert some of the changes due to breaking commands. Now we have 3 SC2086 (info): Double quote to prevent globbing and word splitting.  in build-python.sh. Pipelines seem to be passing (except the mac one, let me know if it's a regression please).

@jameslamb Thanks for the extensive review. I have noted all of your points. Apologies for pushing from master, I did not notice I had forgotten to branch out beforehand. I have reversed the files you have asked me too, let's keep the changes for another PR. It think I have adressed all of your points so far.

Thanks for the approval @jameslamb
Yeah I had started pushing from a git config not tied to my github email. One of the reasons I squashed all these commits together. Shouldn't happen again.


ERROR: ILE ATOM ['CB', 'CD', 'CG1', 'CG2'] IS MISSING ON MOLECULE

cg_spica map2cg -verbose 1 2q3z.pdb 2q3z.cg.pdb

ERROR: ILE ATOM ['CB', 'CD', 'CG1', 'CG2'] IS MISSING ON MOLECULE  112
https://files.rcsb.org/download/2Q3Z.pdb

@alphataubio
The mapping list for ILE in 2q3z.pdb does not include "CD1" (src/map_to_cg.py , line 135).
Both atomic names "CD1" and "CD" can be used on PDB.
For the error

Rename the carbon atom name "CD1" to "CD" in the ILE.
OR
Change the mapping definition of the ILE in the source code.

We intend to update the code to allow for this slight difference in atomic names.
However, there is a residue in 2q3z.pdb called "ONL" (5-oxo-L-norleucine) that has not ever been parameterized in SPICA.
Therefore, to complete the mapping, you need to add a mapping for "ONL" in the code ( and assign a parameter for simulations).

thanks i ran the pdb file thru charmmgui to clean it up, then spica-tools to generate LAMMPS inputs.
https://youtu.be/rZ1wmy-RDpw?si=YISY95F23bbCf8Zv


[$500]  Incorrect LHN subtitle when last message is flagged as assault

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

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by:  @rojiphil
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1698055337881839
Action Performed:
User A’s App

Add a task to a Chat Report with User B.
Add a task message to the Task Report.
Cancel the task using 3dots menu in Task Report.
Navigate back to Chat Report. The canceled task will be shown as [Deleted task] in report screen.
Add a new message to the chat report (say Message to be flagged as assault)
User B’s App
Now, move to the app where User B is signed-in and navigate to chat report with User A.
Flag the message (i.e. Message to be flagged as assault) with User A as assault.

Expected Result:
LHN subtitle for Chat Report should show ’[Deleted task]’
Actual Result:
LHN subtitle for Chat Report shows ’This is the beginning…’
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/93399543/a1bd31e7-3a6c-43eb-9ce2-bc0e1c5032ab

Android: mWeb Chrome

https://github.com/Expensify/App/assets/93399543/d0d3d88f-fe52-4a52-821d-a296418dc2c4

iOS: Native

https://github.com/Expensify/App/assets/93399543/aca82a94-e50f-4980-b741-c78aa49f71e7

iOS: mWeb Safari

https://github.com/Expensify/App/assets/93399543/2686094c-d92d-4206-88e7-2ad532766290

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/93399543/0ccc76f8-aedc-477e-a04d-9e63f7a2f2e9
https://github.com/Expensify/App/assets/93399543/8d563568-7787-47bd-92e9-a6ca1c566d7f

MacOS: Desktop

https://github.com/Expensify/App/assets/93399543/2a8892ef-e748-4393-868d-08e5eac47d98

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0161986a581b3f1b65
Upwork Job ID:<PHONE_NUMBER>355294720
Last Price Increase: 2023-10-30

Proposal by: @rojiphil
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1698055337881839
Proposal
Please re-state the problem that we are trying to solve in this issue.
When the last visible action is a message that has been moderated as pending removal and the immediate previous message is a canceled task with visible comments, the LHN subtitle does not show as [Deleted task]. This is the problem we are trying to solve.
What is the root cause of that problem?
When the last visible action is a message that has been moderated as pending removal, we set the last message text here within getLastMessageTextForReport. Here, we check if the one before this action is pending for removal (i.e. moderated). If so, we retrieve and use the message text from the one before the moderated message. However, none of the special cases are applied as shown here when compared to the ones handled within getLastMessageTextForReport  function here. In our case here, the special case of canceled task with visible actions was not handled as shown here. This is the root cause of the problem.
What changes do you think we should make in order to solve the problem?
To solve the problem,

We can check if the current action is a whisper action. If so, we can retrieve the previous action and check if it is moderated for the purpose of removal. If it is pending for removal, we can update the lastReportAction here with the one before the moderated message. Now, since the lastReportAction is updated correctly, any special cases will be smoothly applied here.
The changes can be like this here:

  if(ReportActionUtils.isWhisperAction(lastReportAction))
  {
    // If this is a whisper action, let us check if the one before this action is pending for removal (i.e. moderated)
    // If it is so, let us display the message text from the visible action previous to the moderated one.
    const lastNonWhisper = _.find(allSortedReportActions[report.reportID], (action) => !ReportActionUtils.isWhisperAction(action)) || {};
    if (ReportActionUtils.isPendingRemove(lastNonWhisper)) {
      lastReportAction =
        _.find(
          allSortedReportActions[report.reportID],
          (action) => ReportActionUtils.shouldReportActionBeVisibleAsLastAction(action) && !ReportActionUtils.isCreatedAction(action),
        ) || {};
    }
  }

Since we have moved the functionality to proactively update the lastReportAction, we can remove this code here

What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
When the last visible action is a message that has been moderated as pending removal and the immediate previous message is a canceled task with visible comments, the LHN subtitle does not show as [Deleted task]. This is the problem we are trying to solve.
What is the root cause of that problem?
When the last visible action is a message that has been moderated as pending removal, we set the last message text here within getLastMessageTextForReport. Here, we check if the one before this action is pending for removal (i.e. moderated). If so, we retrieve and use the message text from the one before the moderated message. However, none of the special cases are applied as shown here when compared to the ones handled within getLastMessageTextForReport  function here. In our case here, the special case of canceled task with visible actions was not handled as shown here. This is the root cause of the problem.
What changes do you think we should make in order to solve the problem?
To solve the problem,

We can check if the current action is a whisper action. If so, we can retrieve the previous action and check if it is moderated for the purpose of removal. If it is pending for removal, we can update the lastReportAction here with the one before the moderated message. Now, since the lastReportAction is updated correctly, any special cases will be smoothly applied here.
The changes can be like this here:

  if(ReportActionUtils.isWhisperAction(lastReportAction))
  {
    // If this is a whisper action, let us check if the one before this action is pending for removal (i.e. moderated)
    // If it is so, let us display the message text from the visible action previous to the moderated one.
    const lastNonWhisper = _.find(allSortedReportActions[report.reportID], (action) => !ReportActionUtils.isWhisperAction(action)) || {};
    if (ReportActionUtils.isPendingRemove(lastNonWhisper)) {
      lastReportAction =
        _.find(
          allSortedReportActions[report.reportID],
          (action) => ReportActionUtils.shouldReportActionBeVisibleAsLastAction(action) && !ReportActionUtils.isCreatedAction(action),
        ) || {};
    }
  }

Since we have moved the functionality to proactively update the lastReportAction, we can remove this code here

What alternative solutions did you explore? (Optional)

Reviewing tomorrow!

@dukenv0307's proposal LGTM! The RCA looks correct (the use of shouldReportActionBeVisible was introduced in https://github.com/Expensify/App/pull/23778, so this seems like a regression from there) and the solutions is nice and simple! It's also nice that it handles an extra case that @rojiphil's proposal doesn't handle.
:ribbon::eyes::ribbon: C+ reviewed

The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/23778
The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/23778/files#r1402998886
A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/A - pretty hard one to catch by testing as it's quite an edge case!
Determine if we should create a regression test for this bug. Yes
If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Regression Test Proposal

Log in as User A.
Add a task to any chat with User B.
Add a message to the Task Report.
Cancel the task.
Navigate back to the chat report and send any message.
Log in as User B.
Open the chat report with User A.
Flag the message from User A as assault.
Verify that the LHN shows [Deleted task]

Do we agree 👍 or 👎

@anmurali Checklist complete, friendly bump for payment! :bow:

Paid and added regression test.


Update managing-external-guest-in-SharePoint-vs-Teams.md

Removed nb-no in link
Please use this template to ensure easier processing of your pull request
Category

[ ] Content fix
[ ] New article
[x] Example checked item (delete this line)

For the above list, an empty checkbox is [ ] as in [SPACE]. A checked checkbox is [x] with no space between the brackets. Use the PREVIEW tab at the top right to preview the rendering before submitting your issue.
(DELETE THIS PARAGRAPH AFTER READING)

Related issues:

fixes #issuenumber
partially #issuenumber
mentioned in #issuenumber

If this fixes (aka: closes) or references an issue, please reference it here. This helps maintaining the issue list as it will (1) link the PR to the issue & (2) automatically close the issue when this PR is merged in.
(DELETE THIS PARAGRAPH AFTER READING)

What's in this Pull Request?

Please describe the changes in this PR. Sample description or details around bugs which are being fixed.
(DELETE THIS PARAGRAPH AFTER READING)

Guidance

Please update this PR information accordingly. We'll use this as part of our release notes in monthly communications.
Please target your PR to 'master' branch. Released documents are in live branch.
(DELETE THIS PARAGRAPH AFTER READING)

Docs Build status updates of commit 6e15cb9:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Community/managing-external-guest-in-SharePoint-vs-Teams.md
:white_check_mark:Succeeded
View

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


Append data to model JSON

I'm looking for the Laravel append functionality in lucid. I mean I want to add a parameter to fetched JSON like what append did in the Laravel.
I tried the Mutators but there was not the solution!
Another way is loops, like "for" or "map" on the fetched data but it's not best practice! Also, the result is different when I work with ORM and when fetch data by Query Builder.
The Query Builder return a valid array of data but ORM return rows! what is that "rows" ?! Does it mean the rows of my model in DB? If so, how should I loop on it?!

@behnamazimi
Please don't expect me to read the Laravel docs and understand what append does and then code the solution for you.
I understand that AdonisJs is inspired by Laravel, but you guys have to also do some hard work and create actionable issues.
It will be nice, if you can share the current shape of your object and what is the desired shape.

I believe, you can get it working (unless is value is computed asynchronously) using computed properties.
class User extends Model {
  static get computed () {
     return ['fake_param']
  }

  getFakeParam () {
     return 'whatever'
  }
}

and then fetching users will append this property.
const users = await User.all()
users.toJSON()

Closing since no answer from issue reporter.

@thetutlage Hi, Can I use get computed conditionally? (For example, append isOwner property if request's userId is equal to object's userId?


Support for Ubuntu

Hello again!
I present the Linux-compatible package! I've documented the source, but let me know if there is anything that seems off.
Closes #7

Here are some "fun" things I learned on the way (hopefully putting it here will also make it more Google-able for others):
Unicode order is not consistent between platforms
"\u{2000}"..."\u{200D}" // creates a Range on macOS, crashes on Ubuntu
"\u{200D}"..."\u{2000}" // creates a Range on Ubuntu, crashes on macOS

Protocol / implementation variable names can cause linker crashes
https://bugs.swift.org/browse/SR-2598
This is actually the problem that previously forced me to use -whole-module-optimization. To fix it, I moved the DefaultTokenParser stuff into the same file as the protocol definition. Unfortunately, this puts the TokenParser file at > 1000 lines.

All of the test configurations are now passing on my fork: https://travis-ci.org/hkgumbs/SwiftParsec
I am not sure, why they some fail on your PR check though. Do you have additional settings in your Travis setup? Have you seen this behavior before?
I am going to look more into Foundation.Bundle today and see if I can't adjust the benchmarking test to work cross-platform.

Thanks for this, @hkgumbs  Successfully using it on Ubuntu right now.

@davedufresne updated based on your feedback
https://travis-ci.org/hkgumbs/SwiftParsec/builds/194068763

Thanks @davedufresne. One last thing, would you be able to release this as 2.1.0 as well? I believe SwiftPM requires the patch number to be present.

@hkgumbs I just pushed a new tag: 2.1.0


NY Times Best sellers for each week

This WDC provides files/steps needed to use NYTimes best sellers API to get the weekly best sellers list across various genres/categories.

Coverage remained the same at 98.913% when pulling b3e265914d0ba9cb683702369ac7eb6eab3143cb on muthukumarsm:patch-2 into<PHONE_NUMBER>c1030d640366a505cbf51d50fb94ae on tableau:master.


Upgraded baseline of chaostoolkit lib

Closes #1
Signed-off-by: Russ Miles<EMAIL_ADDRESS>

Thanks for the contribution Russ :+1:


Update wrapper to latest nightly with Kotlin API level 1.7

This is a follow up for

https://github.com/gradle/gradle/pull/21910

@bot-gradle test and merge

Your PR is queued. See the queue page for details.


Adding Vectara integration

Adding Vectara integration to LangChainJS, mirroring the Python integration

Is there any plan to merge this? We'd love to incorporate it into our development.

Hey @ofermend looked great overall - I opened #1785 with some updates (wasn't able to push to the vectara repo directly). LMK if that looks good and I'll get it out with tomorrow's release!

Merged in #1785, thanks again!


Fix "math domain error" bug

#20

thank you!  Friendly suggestions:
if the description contains fixes #20 or closes #20 rather than #20, the issue gets closed on merge
about the implementation, it seems odd to let the invalid value reach the instance attribute:  clamp it at the source?  Otherwise if other things access _sslm in the future, the bug may reoccur.
add a unit test to cover the bug


iv pixel view window improvements

Dan Wexler suggests that pixel view should be in a separate window.  LG doesn't necessarily agree.  Should we discuss on oiio-dev?
In either case, Dan says the text in the pixel view should be monospace and the layout can be improved.

Closing.


Getting error "Dependabot can't resolve your Go dependency files" on a

Hi, please let me know if this is the wrong place to report this...
I got an issue from @dependabot-preview in a private repo right after I enabled support for Go (modules) updates:

Dependabot can't resolve your Go dependency files.
As a result, Dependabot couldn't update your dependencies.
The error Dependabot encountered was:

go<EMAIL_ADDRESS>reading github.com/aws/aws-sdk-go/go.mod at revision v1.29.2: unknown revision v1.29.2

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

Of note in the logs:
...
  proxy | 2020/02/21 15:38:14 GET https://github.com:443/aws/aws-sdk-go/info/refs?service=git-upload-pack
  proxy | 2020/02/21 15:38:14 * authenticating git server request (host: github.com)
...
  proxy | 2020/02/21 15:38:14 401 https://github.com:443/aws/aws-sdk-go/info/refs?service=git-upload-pack
...

Let me know if you need more information!

I'm also getting this error on a different private repo - I'm assuming it's related, but perhaps it's not:
go<EMAIL_ADDRESS>invalid version: git fetch -f https://github.com/codahale/hdrhistogram refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /opt/go/gopath/pkg/mod/cache/vcs/194f8b017adc0a3d5808115b30a8bad0960312f6cf4eaea96e829f6d8b3c5ecf: exit status 128:
	fatal: could not read Username for 'https://github.com': terminal prompts disabled

I wonder if my dependabot configuration is messing things up here? I have a custom config variable specified with a personal access token for github.com.

I've figured this out! The personal access token I had configured was incorrect. The error message could certainly stand to be a little more obvious 😉
Closing!


AOT compilation: can't resolve module ./src/toast.component

I'm submitting a ...
[x ] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Do you want to request a feature or report a bug?
Not sure if it is a bug but I have an error when executing AOT compilation.

What is the current behavior?
When I try to AOT compile my project where we included ng2-toasty, I obtain the following error:

[07:05:01]  ngc started ...
can't resolve module ./src/toast.component from /var/lib/jenkins/jobs/project/workspace/src/node_modules/ng2-toasty/index.d.ts
[07:05:03]  build prod failed: Cannot read property 'ToastComponent' of undefined, resolving symbol ToastyModule in
            /var/lib/jenkins/jobs/project/workspace/src/node_modules/ng2-toasty/index.d.ts, resolving
            symbol ToastyModule in
            /var/lib/jenkins/jobs/project/workspace/src/node_modules/ng2-toasty/index.d.ts
[07:05:03]  ionic-app-script task: "build"
[07:05:03]  Error: Cannot read property 'ToastComponent' of undefined, resolving symbol ToastyModule in
            /var/lib/jenkins/jobs/project/workspace/src/node_modules/ng2-toasty/index.d.ts, resolving
            symbol ToastyModule in
            /var/lib/jenkins/jobs/project/workspace/src/node_modules/ng2-toasty/index.d.ts
Error: Cannot read property 'ToastComponent' of undefined, resolving symbol ToastyModule in /var/lib/jenkins/jobs/project/workspace/src/node_modules/ng2-toasty/index.d.ts, resolving symbol ToastyModule in /var/lib/jenkins/jobs/project/workspace/src/node_modules/ng2-toasty/index.d.ts
    at simplifyInContext (/var/lib/jenkins/jobs/project/workspace/src/node_modules/@angular/compiler-cli/src/static_reflector.js:475:23)
    at StaticReflector.simplify (/var/lib/jenkins/jobs/project/workspace/src/node_modules/@angular/compiler-cli/src/static_reflector.js:478:22)
    at StaticReflector.annotations (/var/lib/jenkins/jobs/project/workspace/src/node_modules/@angular/compiler-cli/src/static_reflector.js:60:36)
    at NgModuleResolver.resolve (/var/lib/jenkins/jobs/project/workspace/src/node_modules/@angular/compiler/bundles/compiler.umd.js:14261:46)
    at CompileMetadataResolver._loadNgModuleMetadata (/var/lib/jenkins/jobs/project/workspace/src/node_modules/@angular/compiler/bundles/compiler.umd.js:14646:45)
    at CompileMetadataResolver.getUnloadedNgModuleMetadata (/var/lib/jenkins/jobs/project/workspace/src/node_modules/@angular/compiler/bundles/compiler.umd.js:14636:23)
    at addNgModule (/var/lib/jenkins/jobs/project/workspace/src/node_modules/@angular/compiler/bundles/compiler.umd.js:12944:43)
    at /var/lib/jenkins/jobs/project/src/node_modules/@angular/compiler/bundles/compiler.umd.js:12957:16
    at Array.forEach (native)
    at _createNgModules (/var/lib/jenkins/jobs/project/workspace/src/node_modules/@angular/compiler/bundles/compiler.umd.js:12956:28)

npm ERR! Linux 3.14.32-xxxx-grs-ipv6-64
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "ionic:build" "--prod"
npm ERR! node v7.4.0
npm ERR! npm  v4.0.5

Please tell us about your environment:

Ionic 2
Angular version: 2.2.1
node v7.4.0
npm  v4.0.5

Other information
In index.ts, we have 2 exports:

export * from './src/toasty.service';
export * from './src/toasty.component';

Adding to those exports an export for toast.component seems to fix the compilation error.

Hi @jbarbede
To be honest -  I didn't test the module in Ionic 2, but you could do that with the following steps:

You should add the ToastyModule into the include property of AppModule class like that:

import { ToastyModule } from 'ng2-toasty';

@NgModule({
  declarations: [
    MyApp,
    // Yor components here
  ],
  imports: [
    IonicModule.forRoot(MyApp),
    ToastyModule.forRoot()
  ],
  // Other initialization properties
})
export class AppModule { }

Add the ng2-toasty tag into app.html:

<ion-nav [root]="rootPage" #content></ion-nav>
<ng2-toasty [position]="'center-center'"></ng2-toasty>

Copy and past the content of one of style files into app.scss.

Inject the ToastyService into any page:

import { Component } from '@angular/core';
import { ToastyService } from 'ng2-toasty';

@Component({
  selector: 'page-feed',
  templateUrl: 'feed.html',
})
export class FeedPage {

  constructor(private toastyService: ToastyService) {}

  showToast() {
    // Just add default Toast with title only
    this.toastyService.default('Hi there');
  }
}

Call the showToast method on your page:

<ion-header>
  <ion-navbar>
    <button ion-button icon-only menuToggle><ion-icon name="menu"></ion-icon></button>
    <ion-title>Feed</ion-title>
    <ion-buttons end>
      <button ion-button icon-only (click)="showToast()" ><ion-icon name="walk"></ion-icon></button>
    </ion-buttons>
  </ion-navbar>
</ion-header>

<ion-content padding>
</ion-content padding>

I need some time to check what is wrong with styles and update the README with how to use ng2-toasty in Ionic 2.

hey @akserg,
Actually I integrated your plugin into our Ionic 2 app easily, without any problem. On my development machine, it works perfectly.
But we are using AOT compilation when we build the production version of our app. This is when we have a compilation error related to ng2-toasty.

Hi @jbarbede
Did you manage your problem?

Hi,
Adding that line https://github.com/cadulis/ng2-toasty/blob/master/index.ts#L10 to your index.ts makes the AOT compilation works.

Hi,
Thank you for pointing me to the issue.
Can you, please share how you integrated the ng2-toasty into Ionic 2 app? Was is similar to what I suggested above? Can you update the README and create PR to share your knowledge with other developers?

The integration like you described it in your current README is enough I guess. I followed it when I started to integrate ng2-toasty in Ionic 2 and it worked out of the box.


[Api] Auto fix on save and fix all

Problem
ES Lint, TS Lint, and other extensions have the concept of auto fix on save. On save, this goes through the errors file and fixes all simple ones, such as removing tailing whitespace or converting { x: string } to Array<{ x: string }>. This functionality is quite useful but is currently implemented per extension. It would be nice if we could:

Control auto fix on save with a single setting.
Indicate auto fixes in the code action context menu (since these are usually the preferred fixes)
Bind auto fix to a keyboard shortcut

Related
Many extensions implement a fix all of this type code action / quick fix. This can be viewed as a special case of auto fix on save where the candidate fixes are only of a single type.
Sketches
(Note that the sketch below record some of the options being considered for this API. They are not yet concrete proposals)

Do nothing
Keep things as is. Let extensions handle this all individually
Benefits

No work! (unless we maybe try to establish some sort of convention for extensions to follow)

Drawbacks

Many different ways of implementing the same thing
Cannot bring auto fix or fix all into UI in a consistent way
Cannot support things that require standardization, such as keybindings or commands

CodeAction.autoFixable
Add an autoFixable flag to CodeAction
class CodeAction {
    ...

   autoFixable?: boolean;
}

Use this flag to determine which code actions should be applied on save.
Introduce a  editor.autoFixOnSave setting to enable or disable auto fix on save
Implementing auto fix on save

For every diagnostic in a file
Request all code actions for that diagnostic.
If there are is only one code action marked autoFixable in the set, then apply that code action

Implementing auto fix all errors of type X

Assuming we have UI that shows a auto fix all errors of type X suggestion .
For each diagnostic of type X in the file, request code actions.
Filter to only those that CodeAction.diagnostics set to include the diagnostic of type X.
Then, if we only have one code action left for that diagnostic, apply it.

Maybe autoFixable here should actually be an array of diagnostics? Would that help with filtering.
Benefits

Theoretically this lets us address all requirements (perhaps with a few api tweaks)

Drawbacks / Open questions

Supper chatty api
Not easy to handle recursive or overlapping  fixes

CodeActionKind.SourceAutoFix
Add a new code action kind called source.autoFix. Update extensions to return a source code action that fixes all auto fixable errors in the file.
Use "editor.sourceActionsOnSave": ["source.autoFix"] to apply code actions on save
Implementing auto fix on save
Basically no work on VS Code side. Get extensions to adopt this new API.
Implementing auto fix all errors of type X
We could do something like have multiple source code actions for autofix, such as:

source.autoFix.123
source.autoFix.456

This may gets confusing though since requesting the code actions for source.autoFix would end up including the source code actions of source.autoFix.123 and source.autoFix.456 unless the extension is smart. Maybe we'd have to have a source.autoFix.all to prevent this for the autofix on save case? Or perhaps it doesn't matter? If editor.sourceActionsOnSave applies all actions of source.autoFix, presumably applying source.autoFix.123 and source.autoFix.456  should work?
Benefits

Easy to implement
Allows extensions to compute a batch of edits
"editor.sourceActionsOnSave": ["source.autoFix"]

Drawbacks / Open questions

What happens if multiple extensions contribute fix all actions? With current proposal, the source code menu would just show an fix all action for each extension. Would be nice if we just have one entry (autofix on save may still work though, at least as long as the fixes don't overlap)
Can we actually implement auto fix all errors of type X?
Is there any standard way to surface autofix in the UI with this proposal?

I'm in favor of the CodeActionKind.SourceAutoFix approach as it slots in nicely with existing apis. Still some open questions, specifically around how to present the fix all action in the UI

Not sure that I understood all the implications outlined above but making auto-fix a property and not a kind sound more correct, e.g. I can have all kinds of code actions that can be auto-fixed/applied.

Reading through it I prefer CodeActionKind.SourceAutoFix however I don't fully understand all implications either.


Moving dashboard to ES6

Who is this PR for?
Developers who want to contribute to the codebase by adding or improving client-side features.
What problem does this PR fix?
Not all our JS files use ES6 modules, which can be confusing for new JS devs coming on to the project.
What does this PR do?
Converts all dashboard components to ES6 module
Checklists
Javascript QA

[x] Author checked latest in IE - School Administrator Dashboard links
[x] Author checked latest in IE - School Absences Dashboard
[x] Author checked latest in IE - School tardies Dashboard
[ ] Reviewer checked latest in IE - School Administrator Dashboard links
[ ] Reviewer checked latest in IE - School Absences Dashboard
[ ] Reviewer checked latest in IE - School tardies Dashboard

@alexsoble this turned out to be pretty straightforward so I did it all in one fell swoop. Should be ready for a check when there's time.

@edavidsonsawyer Hey, awesome! Will do a quick QA on my end today.
One small thing I noticed reviewing the changed files — some of the refactored files have a .js extension, and some have a .jsx extension. Let's move them all to .js for consistency since that's what we're doing in our other ES6 refactor PRs.
I like how you're importing PropTypes as its own library to make the migration to future versions of React less work when the time comes!

@alexsoble all set! I'd been avoiding .js for anything that wasn't pure javascript.

@edavidsonsawyer Yeah, I hear what you're saying about .jsx!
We're aiming to match create-react-app style with our Javascript. I did some quick searching on why create-react-app uses .js and found this thread about their thought process: https://github.com/facebook/create-react-app/issues/87.
I checked out this branch, yarn start fails because of a file name mismatch error when I try to get it started:
[1] ERROR in ./ui/route.js
[1] Module not found: Error: Can't resolve '../app/assets/javascripts/school_administrator_dashboard/main.jsx' in '/Users/alexsoble/studentinsights/ui'
[1]  @ ./ui/route.js 7:0-111
[1]  @ ./ui/index.js
[1]  @ multi ./ui/polyfills.js ./ui/index.js

One good option could be to drop the file extension entirely when importing, that's what I see Kevin doing, e.g. here: https://github.com/studentinsights/studentinsights/pull/1482/files#diff-4ec7c94fc4b2658aa1b77cd800771107

@alexsoble whoops! I must have tested that last commit on the wrong branch!
I like omitting the extensions, and had done that originally, but for some reason I got yarn errors unless I kept the extensions for sort_helpers.jsx and mixpanel_utils.jsx. I don't know why that is, so to be on the safe side I left all the extensions in.
This new commit removes the extensions for all imports except those two above. But I'm a little concerned that I can't seem to do it across the board, so if you know why I might be running into trouble with those two I'd appreciate any light you can shed on the issue.

Hey there @edavidsonsawyer! That's weird about sort_helpers.jsx and mixpanel_utils.jsx . . . I looked at it but couldn't figure out why those two are exceptions.
I'm not too worried about it though. Overall this PR is great and it moves the dashboard components to the same style as the rest of our JS, which is what we set out to do. I double checked that this branch compiles fine and looks good locally. Let's 🚢!


Testing testinfra

Hi, how do we run the tests in test? When i tried to run them using py.test, I got errors such as:
 fixture 'Command' not found

I understand the issue. Shouldn't we be importing these classes?

Hi, testinfra use testinfra for testing :)
We have two classes of tests: Normal tests can be run with the command testinfra testinfra and integration tests that use vagrant and docker images in ./images.
See https://github.com/philpep/testinfra/blob/master/CONTRIBUTING.rst for running the complete test suite.


Test documentation: issues

@juanjemdIos
In https://oeg-upm.github.io/fair_ontologies/doc/catalog.html

Content negotiation for metrics does not work (404)
Benchmarks are not described with metadata, nor linked to metrics yet
Keyword search does not allow for searching two keywords
Tests have a written link on top of them
Backlink does not work
Some keywords are repeated
FOOPS should be capitalized in page

Also, metrics have no license. And I cannot add a link to the reference catalog directly, although I want to link people to it

Additional small things:

I would want a way to have a way to access the rdf (ttl) from the html in tests, metrics. A link to the file with an icon should be good enough

CN for metrics and benchmarks is now enabled

This issue is not fixed yet. I cannot search with 2 keywords

Ah no, it works but only with spaces. Closing


'Up arrow' should only scroll up after reaching the top of the view

When scrolling through the dropdown list using the arrow keys, if I press the up arrow, I expect the dropdown to not scroll until I reach the top of the view. This appears to be the desired and expected behaviour of dropdown elements on the Internet. Here's an example. Instead, here's what happens using autoComplete.js
I can override this functionality myself using the keydown event, however, what I have described above may be desired behaviour for users of your system.

Videos, images, and other documents can be attached directly to a github issue comment. Just drag and drop the file into the text area.


Fix yaf stubs

This PR contain fixes for YAF stubs against https://github.com/laruence/yaf/ repo

@isfedorov thank you for your comments! I've fixed them all

@isfedorov may I ask your review please?

@isfedorov I have removed all @implements phpdoc comments


Use of (...) removes meaningful (sic) whitespace

TypeScript Version:  2.0.3
Code
function setFile(button, file) {
  let currentFile = file
  (<any>button).attr('disabled', false)
}

Expected behavior:
I'd expect it to keep the meaningful whitespace:
function setFile(button, file) {
    var currentFile = file
    (button).attr('disabled', false);
}

Actual behavior:
Instead, file is called with button:
function setFile(button, file) {
    var currentFile = file(button).attr('disabled', false);
}

In my real life code, this causes it to fail silently. It can be made to work with a ';'. but this wasn't immediately obvious.

https://github.com/Microsoft/TypeScript/issues/11669

There is no such thing as meaningful whitespace. Your expected and actual behavior is functionally identical.
https://github.com/Microsoft/TypeScript/issues/11669

@wallverb,
Thanks for the explanation. 😊 This reinforces my preference for explicitly ending lines with ';'!
I'm be interested to know how you would go about overriding a missing method signature in a code base that doesn't end lines with ';'?
For example, to convert the following JavaScript (where attr(string, boolean) isn't defined in the TypeScript .d.ts file):
function setFile(button, file) {
  let currentFile = file
  button1.attr('disabled', true)
  button2.attr('disabled', false)
}

What would the TypeScript look like? I'm guessing this is one possibility:
function setFile(button, file) {
  let currentFile = file
  ;(<any>button1).attr('disabled', true)
  ;(<any>button2).attr('disabled', false)
}

But neither this, nor ending lines with ';' for a single method seem ideal. Is there a cleaner way?
Thanks for any suggestions. I'll be sure to close this issue...

Is there a cleaner way?

Never depend upon ASI, for the handful of times it is required, like the above. :-)

TypeScript's ASI behavior is the same as JavaScript's ASI behavior.
Attempting to forego semicolons in a language that only barely works without them is a terrible plan. Not much we can do about it.

Just in case anyone stumbles across this issue. To fix it, I simply created a 'jquery-extended.d.ts' file in my work space with the following contents:
interface JQuery {
    attr(attributeName: string, value: boolean): JQuery;
}

This fixed the compilation error without any casting ugliness. I don't know if this is the recommended approach, but it seems to work. 😄


Failing tests don't exit with 0 anymore

Fix #43 — many thanks @cotsog!

BTW if we were having failing tests this PR actually should be red… let's see…

Coverage remained the same at 96.577% when pulling 116b4f9eea590eeb85124194ea5f550e17df4a7e on cuducos-fix-issue-43 into 2d6a5cecf2547db57b9b4e70deb0613817b579ab on master.

Ok. We don't have failures. I'm explicitly add sys.exit(1) to be sure we don't end up with 0.

Coverage remained the same at 96.577% when pulling 5e38b367047f291a7fd571c2d1f0014b42775553 on cuducos-fix-issue-43 into 2d6a5cecf2547db57b9b4e70deb0613817b579ab on master.

Shouldn't we close this in favor of https://github.com/datasciencebr/rosie/pull/47?

#47 is merged here already.

Coverage remained the same at 96.577% when pulling<PHONE_NUMBER>c992789ed66770c2bc15136bcfb037 on cuducos-fix-issue-43 into c3a40b57b237328251fe85c09e25060e23d0a888 on master.

Hi @cuducos, I think that this PR is good to merge, no?
Can we make it in favor of #43 ?

As I said before #47 is already merged into this branch. We merge this and both branches get merged into master. I'm just waiting a good soul to do the merge ; )


chore: made Opposite a structure

The opposite category is no longer a type synonym, but a structure.

Currently, the following compiles:
import Mathlib.CategoryTheory.Opposites

namespace CategoryTheory

variable {C : Type _} [Category C] {X Y : C} (f : X ⟶ Y)

open Opposite

example (X : C) : Cᵒᵖ  := X
example : op Y ⟶ op X := f.op
example : op Y ⟶ op X := f
example : op Y ⟶ op X := f.unop

end CategoryTheory

Making Opposite a structure solves this problem, but we do not lose good definitional equalities like unop_op.
When doing definitions of morphisms in the opposite category (i.e. when constructing functors), the simps tag would create lemmas _unop (like _hom_app_unop if we define a natural transformation). I had to occasionally require only simps lemmas like hom_app, inv_app, etc, instead of hom_app_unop, inv_app_unop). I do not know if it is possible to make this automatic by using a suitable initalize_simps_projection command [doing initalize_simps_projection Opposite (-unop) would just create no simp lemma at all].

@joelriou, thanks for doing this, I agree it is very necessary! I've asked a question on zulip about the _unop issue, and pushed a commit which adds some breadcrumbs explaining these changes. (I just worry that mysterious undocumented modifiers to simps become a maintenance issue eventually.)
I would be happy to merge as is, but I'll just delegate in case you think it's worthwhile waiting longer on the zulip question (or it has had an answer before you get here!)
bors d+

Floris gave a very helpful answer, so I've pushed a cleanup PR. Again, I'll leave to you to merge in case you don't like my commit!

bors merge


Implement Game-Start

Implement functionality of the game-Start and distribution of player-numbers

Player-management is done, game-management is done in #15


Why different devices may share some training samples?

I use accelerator to allocate my data to 8 GPUs for training,
I found that different GPUs may share some samples --- a sample may be trained on multiple GPUs.
Here's the core part of my training script (a modified version of https://github.com/huggingface/transformers/tree/main/examples/pytorch/text-classification):
    # ============================ Training Loop ============================
    for epoch in range(starting_epoch, args.num_train_epochs):
        if accelerator.is_main_process:
            if not os.path.exists(f'dy_log/{args.task_name}/'):
                os.mkdir(f'dy_log/{args.task_name}/')
                if not os.path.exists(f'dy_log/{args.task_name}/{args.model_name_or_path}'):
                    os.mkdir(f'dy_log/{args.task_name}/{args.model_name_or_path}')
            log_path = f'dy_log/{args.task_name}/{args.model_name_or_path}/training_dynamics/'
            if not os.path.exists(log_path):
                os.mkdir(log_path)

        accelerator.wait_for_everyone() #
        log_path = f'dy_log/{args.task_name}/{args.model_name_or_path}/training_dynamics/'
        print('-*-*-*- ',log_path, os.path.exists(log_path),accelerator.device)

        model.train()
        if args.with_tracking:
            total_loss = 0
        for step, batch in enumerate(train_dataloader):
            # print('- - - - - - - - - -  ',len(batch['idx']), accelerator.device)
            # We need to skip steps until we reach the resumed step
            if args.resume_from_checkpoint and epoch == starting_epoch:
                if resume_step is not None and step < resume_step:
                    completed_steps += 1
                    continue
            batch = {k:v for k,v in batch.items() if k != 'idx'}
            outputs = model(**batch)
            loss = outputs.loss
            # We keep track of the loss at each epoch
            if args.with_tracking:
                total_loss += loss.detach().float()
            loss = loss / args.gradient_accumulation_steps
            accelerator.backward(loss)
            if step % args.gradient_accumulation_steps == 0 or step == len(train_dataloader) - 1:
                optimizer.step()
                lr_scheduler.step()
                optimizer.zero_grad()
                progress_bar.update(1)
                completed_steps += 1

            if isinstance(checkpointing_steps, int):
                if completed_steps % checkpointing_steps == 0:
                    output_dir = f"step_{completed_steps }"
                    if args.output_dir is not None:
                        output_dir = os.path.join(args.output_dir, output_dir)
                    accelerator.save_state(output_dir)

            if completed_steps >= args.max_train_steps:
                break
        # ------------------ Recording Training Dynamics --------------------
        logger.info('---------- Recording Training Dynamics (Epoch %s) -----------'%epoch)
        training_dynamics = []
        all_ids = []
        for step, batch in enumerate(tqdm(train_dataloader)):
            print('- - - - - - - - - -  ',len(batch['idx']), accelerator.device)
            idx_list = batch['idx'].tolist()
            print(len(idx_list),accelerator.device)
            label_list = batch['labels'].tolist()
            batch = {k:v for k,v in batch.items() if k != 'idx'}
            logits_list = model(**batch).logits.tolist() # [[],[],[],...] batch_size个[]
            for idx, label, logits in zip(idx_list, label_list, logits_list):
                if idx in all_ids:
                    continue
                all_ids.append(idx)
                record = {'guid': idx, 'logits_epoch_%s'%epoch: logits, 'gold': label, 'device':str(accelerator.device)}
                training_dynamics.append(record)

Then I check my log file, I found several samples (see guid) occur in multiple GPUs in one epoch:
{"guid": 1350, "logits_epoch_0": [-2.256878614425659, 2.602064847946167], "gold": 1, "device": "cuda:4"}
{"guid": 1350, "logits_epoch_0": [-2.186147928237915, 2.604341983795166], "gold": 1, "device": "cuda:5"}
{"guid": 18853, "logits_epoch_0": [1.3392291069030762, -1.6561620235443115], "gold": 0, "device": "cuda:4"}
{"guid": 18853, "logits_epoch_0": [1.5278207063674927, -1.7986263036727905], "gold": 0, "device": "cuda:5"}
...

That is wired. Is that how the allocating mechanism is designed to give every device an equal number of training samples?
In my view, every device shouldn't overlap in training samples.

We can't help you if you do not share a clear reproducible example. How was your script launched? How did you create your train_dataloader/model etc. ?


[StyleCI] Enable no_useless_else

Laravel Version: 5.5.x

As suggested by @sisve in #22425, we should have a Coding Guidelines, and StyleCI has a no_useless_else fixer to help us. I couldn't find the .styleci.yml file to edit, so, how can we enable it?

ping @GrahamCampbell

👎 for adding this to the laravel preset. There are cases we don't want thi.

So, how would the public know when to have the extra else-clauses, and when they should be removed? We can't have an endless stream of pull requests that are merged on the whim of The Merger.

If there are cases you don't want it, I'd imagine it's an exception. Can you not ignore specific cases in styleci?

While most devs I know believe that "useless elses" ARE the exception to the rule... Even "The Merger" seemed to have adhered to that standard...

This is starting to annoy me tremendously ...
Where we at now ? L5.5 (soon 5.6) , PHP7 & PHP7.1 ? And we are just now discussing a style guideline for else statements ?
Are we going to be so petty to not leave this one up to the developer ?
I can't understand in this very specific case as to why this should even be a rule ? It should remain what it is .. a preference!

So, how would the public know when to have the extra else-clauses, and when they should be removed? We can't have an endless stream of pull requests that are merged on the whim of The Merger.

They should just stop sending changes that add no value, frankly.

Well people aren't going to stop the valueless changes now ...
When the core team isn't on the same page ... what hope is there for anyone on the outside.

@lagbox Exactly ... well said!

When the core team isn't on the same page

Nah, there's just a smaller number of people who want to change the code to not have else or elseif. If we were to change everything to that, it'd just make the code harder to read, and we'd probably get PRs from people trying to go the other way.

Well when you have others merging valueless code randomly. What do you expect. And this is what I think @lagbox is referring to about the core team not being on the same page!

I see what you mean, and don't worry, the core is on the same page. This doesn't mean contributions that change elses are always rejected,

Well when you have others merging valueless code randomly.

If you say that to a new contributor, it just puts them off. It's important to find a balance, instead of just pissing everyone off.

Yes, i do agree with that. However, its frustrating seeing PR's being closed that seems to be at least useful in some fashion, to only witness valueless changes to be merged.
That is why this topic has gained so much steam. But to your point we shouldn't discourage contributions of any nature as the intent of a contribution is almost always positive. Just sometimes not necessary ;)

@GrahamCampbell  said:

If you say that to a new contributor...

I've been visiting laravel/framework for the last couple of weeks due to a PR we're working on. My conclusion:
We're not talking about new contributors here. We're talking about people who submit these kinds of minimal PRs one after the other on numerous packages, just like folks on Stackoverflow, who just post to rack up their number of contributions.
From experience I can tell you that REAL new contributors can be put off by this behavior. In my case the idea that personal preferences find their way into standards of a framework of this size is kinda off putting, especially when it's very badly documented. The latter makes it even worse, because Taylor can then arbitrarily merge or reject, without adhering to standards.
As part of the organization I want you to know that I have been seriously considering switching frameworks in this last week. Yes, I'm just 1 in a million, but I believe that, if you can't deal with a culture within a group/organization, and you can't do anything to change it, move along.
(This turned into something longer that I intended, but wanted to communicate my experience as "new contrib)

We're talking about people who submit these kinds of minimal PRs one after the other on numerous packages, just like folks on Stackoverflow, who just post to rack up their number of contributions.

In my defense, I’ve been contributing to Laravel since July. Yes, is minimal PRs, but is what I can do for now, since I’m not an expertise in PHP. Sorry about the inconvenience, and please @grahamcampbell, if you can lock this conversation, this is starting to annoying me.

since I’m not an expertise in PHP

@carusogabriel said:

In my defense, I’ve been contributing to Laravel since July. Yes, is minimal PRs, but is what I can do for now, since I’m not experient in PHP.

No, my friend, this one is not on you! It might be your contribution that triggered this discussion, but the center of the frustration is more in the way stuff happens.
The lack of documentation for preferred style here makes it difficult for new contributors to know what to adhere to. It then sucks when your PR, which took you weeks to research and setup, is just closed because of something simple, while a lot of minimal PRs are accepted.
You submit a PR to remove elses. You can and should! It is up to the maintainers to decide whether or not to accept it and to decide that their project should not force all users to adhere to the "best practices" used by a group.
And THAT is where the frustration lies. Imagine working on a fix and then while waiting for it to be merged, someone else submits a frivolous change, which affects yours massively. And then the maintainer decides to switch positions and accept that preferential change after denying them for ages. This, before your work is accepted.
On top of that, add to it, that this would be your first contribution (hence, you are a new contributor).
So I feel for you, that this happens on your count. But some stuff just needed to put out there.

Just to be clear. There is no standard as to if we want trailing else clauses, because it depends on readability. One thing we could documentation is to never send code style pull requests. We already automate our code style. I'm pretty sure we do document that, but I guess we could be more explicit.

I see what you mean, and don't worry, the core is on the same page. This doesn't mean contributions that change elses are always rejected.

It doesn't? Can anyone point to another PR that changes only elses and was merged (besides the one that lead to this discussion)?
Maybe it's just me, but I still feel that we are owed an explanation as to why this PR was merged when the precedent, historically, was not to bother.
@GrahamCampbell So, which is it? While I agree with the overall premise of what you're saying, you are leaving room for ambiguity with the above-quoted statement, which conflicts with other statements you've made in this thread.

We already automate our code style. I'm pretty sure we do document that, but I guess we could be more explicit.

 StyleCI will automatically merge any style fixes into the Laravel repository after pull requests are merged. This allows us to focus on the content of the contribution and not the code style.

Yes, I would say it needs to be more explicit.

and please @GrahamCampbell, if you can lock this conversation, this is starting to annoying me.

That is truly rich. Priceless, even.
I would submit the PR myself to clarify the language if I wasn't convinced it would be rejected anyway.

I think we should paint the bike shed red.


Traverse InfluxDB in Corto UI

@SanderMertens will need to advise Corto best practice for this.
Currently, measurements are saved as full paths. Corto needs to support walking the hierarchy through the Corto UI.
Example:
/historcial/animals/cats/tiger
/historcial/animals/cats/lion
/historcial/animals/dog/labrador

These measurements are discrete entries. Corto needs to know how to walk the path. @SanderMertens Should a query for histrocial/animals return a corto_void_o object if there is not a matching measurement for the select expression, but the select expression does partially match existing measurements (/historical/animals/cats/tiger)?

This is indeed caused by how corto_select works. If the historical and historical/animals objects are not available (either in the store or from a mount) then you will not be able to navigate to it because there are "missing links".
This is similar to having a website with unreachable pages. You can't reach the pages through links, though you can refer directly to them. If you would do corto_select("historical/animals/cats/tiger") (or the equivalent in the UI: select historical/animals/cats/tiger) I expect this to work.
To properly address this, you have to create the missing objects in the store, or create a mount that provides these objects.
Automatically showing these objects as void objects is dangerous; this may conflict with the actual type of the objects (if they exist somewhere else). A typical scenario could be where objects have been partially synced to a store and you are still waiting for historical/animals. By returning this object as void, you'd violate a key constraint, which is that objects may never change type.
This could have many nasty side-effects, where the void object would be synchronized to other datastores with the wrong type. That would violate eventual consistency- you would observe a state for an object remotely that the source of the object never created.
Long term it could be possible to have objects in the store that have an unknown type; however this would be a major feature to implement.

@SanderMertens I think this issue should be moved to another repository. There is value in recording this history. As we have discussed through Slack conversations, this is not a mount issue. Instead, the issue is poor data modeling that exposes holes in data paths.