Feature/entity behavior refactor

Refactors EntityBehavior & SoftwareAgent to use a default entity_behavior at the class level. Sets @entity_behavior on initialization to avoid ||= in the accessor method.
Since Krikri::Activity never alters the SoftwareAgent's entity behavior after initialization, there's no need to initialize it at all. Instead, we simply use the default EntityBehavior for the SoftwareAgent class.

OK, that all makes sense.
In answer to your other question, asked elsewhere, I don't know why I had SoftwareAgent#entity_behavior set @entity_behavior ||= nil. The PR for this was https://github.com/dpla/KriKri/pull/131 and, since I don't see any discussion of it there, I'm not sure what my reasoning was.
This works to remove the requirement that the agent of a generator activity be instantiated.

@no-reply I may have merged this too quickly. If I run a mapping where the generator activity's harvester does not exist on the filesystem (in this case, IaHarvester), I get uninitialized constant IaHarvester. I'll send a followup message by another channel.

@markbreedlove That seems okay to me. I'm not sure how we could get around a dependency on the harvester existing.
How did you harvest the records initially?

Can someone confirm #226 fixed the issue described above?

@anarchivist if you mean the uninitialized constant IaHarvester issue; #226 is unrelated.
I'm still of the opinion that the uninitialized constant error is correct and desirable. I can't see how we can attribute an Activity to, and rely on information from, a SoftwareAgent class that doesn't exist.
This probably means that if we deprecate a SoftwareAgent, we need to tombstone it as a generic agent. Perhaps we can talk about this at check-in tomorrow, or at an upcoming tech team meeting.

@no-reply Thanks - just wanted to verify that it wasn't the case.

@no-reply @anarchivist I agree about it not making sense if the generator's SoftwareAgent class doesn't exist.  The issue has become, for me, one of the mappings and the harvesters being kept in separate repositories, where we've found they can become out of sync with one another with our workflow.


addBundleVisualizer can't create analyzer file

I create a react project by use react-app-rewired. Add addBundleVisualizer by customize-cra.
In cvonfig-overrides.js I use like this
const {
  override,
  addDecoratorsLegacy,
  disableEsLint,
  addBundleVisualizer,
  addWebpackAlias,
  adjustWorkbox,
  addLessLoader,
  fixBabelImports,
  addWebpackResolve
} = require('customize-cra');
onst path = require('path');
const isPrd = process.env.NODE_ENV === 'production'
module.exports = override(
  addDecoratorsLegacy(),
  disableEsLint(),
  addBundleVisualizer({
    "analyzerMode": "static",
    "reportFilename": "report.html",
  }, true),
 ...
  ...
  ...
);

and packgae.json file like this
"scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build"
  },

no eject,
and when I run npm run start, i can't get the HTML file with bundle report will be generated

Hi @seveny! customize-cra provides a way to inject webpack configuration into create-react-app, but we don't provide support for how to configure webpack itself. I don't personally use addBundleVisualizer so I can't test it, but unless this is due to a bug in customize-cra, you should ask your question on  Stack Overflow.

Hi, @with-heart, first,I know how to config webpack with other plugin to resolve my question,  but  I read api on https://github.com/arackaf/customize-cra/blob/master/api.md#addbundlevisualizeroptions-behindflag--false,   and I think when i use customize-cra ,and customize-cra provides addBundleVisualizer, and i follow the api, but i can't get the result,  I think it's a bug  😂😂😂

I'll see if I can track down what's going on @seveny

@seveny I think I noticed what your issue might be. If you pass true as the second argument, you have to pass the --analyze flag in order to make this work. Could you try running yarn build --analyze or changing the second argument to false?

Going to close this since I haven't heard back. Feel free to re-open.

I had the same issue - I just forget to change react-scripts * to react-app-rewired * in npm scripts.

Cannot get --analyze in React
Alas, I can only use addWebpackPlugin
Source code for this repository
process.argv.includes("--analyze")

in React: ✖
config-overrides.js
console.log(process.argv)

command:
yarn build --analyze

output:
$ dotenv -e .env.production react-app-rewired build --analyze

[
  'C:\\Program Files\\nodejs\\node.exe',
  'E:\\Work\\ReactProject\\react-test\\node_modules\\react-app-rewired\\scripts\\build.js'
]

in NodeJs:✔
powershell:
$  node .\test.js --analyze

output:
[
  'C:\\Program Files\\nodejs\\node.exe',
  'E:\\Desktop\\test.js',
  '--analyze'
]


[BUG] Opensearch 2.6.0 ShardBulkDocs Metrics is always empty

What is the bug?
ShardBulkDocs Metrics is always empty when calling performance Analyzer API. Other metrics are working.
I re-open the problem is still in 2.6.0 https://github.com/opensearch-project/performance-analyzer/issues/77
How can one reproduce the bug?
Steps to reproduce the behavior:
docker compose enclosed
docker-compose.txt
Follow step to activate performance analyzer : https://opensearch.org/docs/latest/opensearch/install/docker/#optional-set-up-performance-analyzer
Create test index and POST documents in this index PUT test (see enclosed)
postdata.txt
while pushing documents, call from your browser : http://localhost:9600/_plugins/_performanceanalyzer/metrics?metrics=ShardBulkDocs,ShardEvents&agg=sum,sum
you 'll get only ShardEvents numbers and no data on ShardBulkDocs
{"CkXsbxtMTDisNx2ahHqrIw": {"timestamp":<PHONE_NUMBER>000, "data": {"fields":[{"name":"ShardBulkDocs","type":"DOUBLE"},{"name":"ShardEvents","type":"DOUBLE"}],"records":[[0.0,27.0]]}}}
What is the expected behavior?
On previous Open Distro 1.13.1 this call was working
What is your host/environment?
Opensearch 2.6.0 Docker

in addition, I've checked as mentioned in @systemosyn comment https://github.com/opensearch-project/performance-analyzer/issues/77#issuecomment-1310019450
I only have start events on /dev/shm/performanceanalyzer temp files :

@peternied , @scrawfor99 Can you help here ? The Security Plugin is somehow interfering with the Performance Analyzer Listener for shardbulk events.

When was the last version where this was working successfully? it seems like this has happened before and are now reopening it as still an issue. Did it get fixed back when it first got reported and now is failing again? or was it never fully fixed?

@davidlago It was actually never fixed fully, there were other bugs, like 283, from Reader side which caused the same effect as this one. We fixed them and tested it, unfortunately without Security plugin, and didn't catch this one.

@Tjofil I've added a diagram of how access is managed with the Security Plugin.  We might need more context to know for sure.  When PA is attempting to write metric information, the context of the request does not have permission to invoke the transport action to save the metric data.  There are three ways this can be resolved

The context of the request has no bearing on transport action for writing ShardBulkDocs, PA should use ThreadContext.stashContext() to allow access
The context of the request is required to have permissions to save shard bulk metrics, Cluster administrators need to update settings on for the user making the request to do so.
The security plugin adds a special case to ignore these action.s

sequenceDiagram
    participant Client
    participant OpenSearch
    participant SecurityPlugin
    participant Cluster as Plugin

    Client->>OpenSearch: Request
    OpenSearch->>SecurityPlugin: Request with no Auth info
    SecurityPlugin->>SecurityPlugin: Add Auth information to request context
    OpenSearch->>Cluster: Client Request
    Cluster->>SecurityPlugin: Execute transport layer action
    SecurityPlugin->>SecurityPlugin: Check if action is allowed
    alt Allowed
        SecurityPlugin->>OpenSearch: Continue request
        OpenSearch-->>Cluster: Transport layer action result
    else Denied
        SecurityPlugin-->>OpenSearch: Return 403 Forbidden
        OpenSearch-->>Client: 403 Forbidden
    end
    alt Plugin run outside user context
    Cluster->>Cluster: Stash context
    Cluster->>SecurityPlugin: Execute transport layer action outside user context
    Cluster-->>SecurityPlugin: Check if action is allowed
    SecurityPlugin->>OpenSearch: Continue request
    OpenSearch-->>Cluster: Transport layer action result
    Cluster->>Cluster: Restore user context
    end
    Cluster-->>SecurityPlugin: Result
    SecurityPlugin-->>OpenSearch: Result
    OpenSearch-->>Client: Result

When was the last version where this was working successfully? it seems like this has happened before and are now reopening it as still an issue. Did it get fixed back when it first got reported and now is failing again? or was it never fully fixed?

Last time it was working successfully was on "Open Distro 1.13.1" (see #77 )  it stopped working when moving on Opensearch distribution

Hello all,
any update about this issue ?
Thanks


openldap::server::access works poorly

The documented usage for openldap::server::access really doesn't work very well. I'm trying to get this to correctly order things, and it doesn't seem to behave well.
If I set position to the "<before|after> access to  by " syntax from the documentation, it appears to have no effect. I can't see how that's implemented, nor can I see this documented in openldap if it's some sort of openldap ordering thing.
If I set integers, this seems to work OK, but doesn't work if the title doesn't include "on $suffix" at the end, despite the type presuming to allow this in the title_patterns - as none of the exact titles in my config match any of the exact title that are in the database.
Seems to me that if the title is required to be a certain format (which is quite unfortunate, but, whatever) then it should error if it is incorrect, rather than attempting to go through with it.

I've given up on this, the ACLs are always all over the place... i'm now writing a LDIF that i import when the ACLs are changed:
file { "/etc/ldap/acl.ldif":
    content => template("${module_name}/acl.ldif.erb"),
    owner   => 'openldap',
    group   => 'openldap',
    mode    => '0644',
    audit   => 'content',
    notify  => Exec['openldap_set_acls'],
  }

  exec { 'openldap_set_acls':
    command     => 'ldapmodify -v -Y EXTERNAL -H ldapi:/// -f /etc/ldap/acl.ldif',
    path        => '/usr/bin:/usr/sbin:/bin:/usr/local/bin',
    refreshonly => true,
  }

Yes, this is what I have resorted to as well, though it would be great to see this done properly.
By the way, instead of setting path, you can set provider => shell, which brings in whatever other stuff you need too.

Thanks, that's a good point. I just copied those lines from somebody on Stack Overflow and didn't pay too much attention to the details, as it was finally doing what i wanted... and i could continue working on the actual directory structure ;-)

Just a quick note, I managed to get the openldap::server:access to work in the following way -
   openldap::server::accès {
      'to attrs=userPassword by self on dc=example,dc=com':
          ensure  => present,
          suffix  => 'dc=example,dc=com',
          control => 'write';
      'to attrs=userPassword by anonymous on dc=example,dc=com':
          ensure  => present,
          suffix  => 'dc=example,dc=com',
          control => 'auth';
   }

Not sure if the suffix part was needed, but the title needed to be in that format to get it to match on subsequent runs

Isn't it how is it documented?

I'm not sure what that question means I'm sorry - who are you talking to?

@nward I'm not sure what do work and what does not work?
Is it a bug or something (mis|un)documented?

The documentation is a bit misleading - or merely incomplete -, I think.
The defined type openldap_access parses the title with three regular expressions and fills name, what, by and suffix if it is available: https://github.com/camptocamp/puppet-openldap/blob/master/lib/puppet/type/openldap_access.rb#L26
For access rules as described in the OpenLDAP documentation (http://www.openldap.org/doc/admin24/access-control.html#Basic ACLs), the type doesn't provide an intuitive way to aggregate multiple by X read by Y write parts. Passing the first one to by and the rest as string to access seems to work, though.
It would be nice if the type and provider could accept an array of by access control triplets as well. There doesn't need to be any magic with regular expressions, a simple array of strings would suffice.

For clarification, the provider for openldap_access creates the LDIF like this:
dn: getDn(suffix)
add: olcAccess
olcAccess: {<position>}to <what> by <by> <access>

Would be cool to be able to build this in a different way:
dn: getDn(suffix)
add: olcAccess
olcAccess: {<position>} to <what> <access+>

access being a string or an array of strings. This would also reflect the documented way to create ACLs:
<access directive> ::= to <what>
        [by <who> [<access>] [<control>] ]+

(http://www.openldap.org/doc/admin24/access-control.html#Access Control via Dynamic Configuration)

I'm also looking through this trying to figure out how ordering works.  I also have the problem that the database is being created with 4 default rules which seem to be interfering with the rules I am trying to create (to attrs=userPassword by self write by anonymous auth by dn="cn=admin,dc=sandbox,dc=local" write by * none and I need to grant other users access to write to these).  I considered trying an ensure=>absent but I assumed it somehow required the "destroy" def, which has what appears to be an undefined function (slapdd) and I don't think it's used.
I thought based on the provider that I could use the "position" to define the order, like:
  openldap::server::access {
    'to attrs=userPassword by dn="cn=admin,dc=sandbox,dc=local" on dc=sandbox,dc=local':
      position => '1', access => 'write';
    'to attrs=userPassword by dn="uid=webapp,dc=sandbox,dc=local" on dc=sandbox,dc=local':
      position => '2', access => 'write';
    'to attrs=userPassword by anonymous on dc=sandbox,dc=local':
      position => '3', access => 'auth';
    'to attrs=userPassword by self on dc=sandbox,dc=local':
      position => '4', access => 'write';
  }

but this doesn't seem to impact the eventual order in cn=config or replace existing those existing olcAccess objects.

As per : http://www.openldap.org/doc/admin24/access-control.html
Also note that if no access to directive matches or no by <who> clause, access is denied. That is, every access to directive ends with an implicit by * none clause
I don't want do break anything, but as @JimPanic says, we should be able to give multiple 'by' for every 'to'.  So I'm thinking of using "${priority} on ${suffix}" as name...
Because keeping the current naming capability, we would end with unmanagebly long name.  Taking the emsearcy example :
openldap::server::access { 'to attrs=userPassword by dn="cn=admin,dc=sandbox,dc=local" write by dn="uid=webapp,dc=sandbox,dc=local" write by anonymous auth by self write on dc=sandbox,dc=local' : }

the syntax could look like this as @JimPanic suggest :
openldap::server::access { '1 on dc=example,dc=com' :
  position => '0',
  suffix   => 'dc=example,dc=com',
  what     => '*',
  access   =>  [
    'by dn.exact="cn=admin,dc=example,dc=com" write',
    'by * none break',
  ]

I'm going to test something as we really want this feature in.

This issue should be fix since https://github.com/camptocamp/puppet-openldap/commit/17da7292ed6568e2c75bdedf4afa19ad109c6b86, can anyone confirm?

I'm closing this as I think the issue is fixed.
Feel free to reopen if it is not the case.


chore(main): release 6.2.1

:robot: I have created a release beep boop
6.2.1 (2023-01-29)
Bug Fixes

ignore directory with no package.json with warning (76cdddf)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/christophehurpeau/check-package-dependencies/releases/tag/v6.2.1 :sunflower:


could not install ubuntu 16.04

Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-lxNTgC/tabular/setup.py", line 50, in <module>
        raise ImportError("distribute was not found and fallback to setuptools was not allowed")
    ImportError: distribute was not found and fallback to setuptools was not allowed

also tried running setup.py install in a cloned repo
python 2.7
new install of 16.04
just fyi

As am I on python 3.4 on CentOS 7.5.


error

info login Logging in...
ERR! login Wrong username/password.
{ error: 'Wrong username/password.' }
i put good

on fb work

because facebook changed "password" value in login api to "encpass" you need to use appstate. Utilities get appstate (here)[https://github.com/ntkhang03/c3c-fbstate/tree/add_new_feature]


dump_syms: 2.3.3 -> 2.3.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/mozilla/dump_syms/releases.
meta.description for dump_syms is: Command-line utility for parsing the debugging information the compiler provides in ELF or stand-alone PDB files
meta.homepage for dump_syms is: https://github.com/mozilla/dump_syms/
meta.changelog for dump_syms is: https://github.com/mozilla/dump_syms/blob/v2.3.4/CHANGELOG.md
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS

[!CAUTION]
A test defined in passthru.tests did not pass.

found 2.3.4 with grep in /nix/store/21x7676pf8n5gr8fplqdkcgw7hswddqg-dump_syms-2.3.4
found 2.3.4 in filename of file in /nix/store/21x7676pf8n5gr8fplqdkcgw7hswddqg-dump_syms-2.3.4

Rebuild report (if merged into master) (click to expand)

22 total rebuild path(s)

22 package rebuild(s)

First fifty rebuilds by attrpath

adoptopenjdk-icedtea-web
dump_syms
eyewitness
firefox-beta-unwrapped
firefox-devedition-unwrapped
firefox-esr-115-unwrapped
firefox-esr-128-unwrapped
firefox-esr-unwrapped
firefox-unwrapped
firefoxPackages.firefox
firefoxPackages.firefox-beta
firefoxPackages.firefox-devedition
firefoxPackages.firefox-esr-115
firefoxPackages.firefox-esr-128
firefoxpwa
sitespeed-io
slimerjs
thunderbird-unwrapped
thunderbirdPackages.thunderbird
thunderbirdPackages.thunderbird-115
thunderbirdPackages.thunderbird-128

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/21x7676pf8n5gr8fplqdkcgw7hswddqg-dump_syms-2.3.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A dump_syms https://github.com/r-ryantm/nixpkgs/archive/4a311974b3d675d3c96d99c48c9f27a3c4e2bbff.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/4a311974b3d675d3c96d99c48c9f27a3c4e2bbff#dump_syms

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/21x7676pf8n5gr8fplqdkcgw7hswddqg-dump_syms-2.3.4
ls -la /nix/store/21x7676pf8n5gr8fplqdkcgw7hswddqg-dump_syms-2.3.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 120m and timed out

Maintainer pings
cc @mweinelt for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

Closed by #340110.


For MUWM-3205, non-pending petition request will have an additional a…

…ttribute decision_date.

Coverage increased (+0.01%) to 83.294% when pulling d78d0400b6daab785cf19a14fc0ac74296dc3e99 on feature/grad-scho into 0f165977e0804c785781a5be707005604bd2d1a6 on develop.


[OSF Institutions] Add OU (The University of Oklahoma) [SVCS-982]

Purpose
Add OU (The University of Oklahoma)

[ ] Waiting for the institution to confirm attributes.

@binoculars

[ ] Domain/Cert: osf.ou.edu

[ ] Update test and prod CAS settings: add the following to institutions-auth.xsl:

<!-- The University of Oklahoma (OU) -->
<xsl:when test="$idp='https://shib.ou.edu/idp/shibboleth'">
    <id>ou</id>
    <user>
        <username><xsl:value-of select="//attribute[@name='mail']/@value"/></username>
        <familyName><xsl:value-of select="//attribute[@name='sn']/@value"/></familyName>
        <givenName><xsl:value-of select="//attribute[@name='givenName']/@value"/></givenName>
        <fullname><xsl:value-of select="//attribute[@name='displayName']/@value"/></fullname>
        <middleNames/>
        <suffix/>
    </user>
</xsl:when>

[x] No special Shib config since https://shib.ou.edu/idp/shibboleth is found in the InCommon's main metadata.

@mfraezz

[ ] Please populate institutions for both test and prod OSF.

Ticket
https://openscience.atlassian.net/browse/SVCS-982

Closing due to wrong branch name, should be ou instead of uo.


#165 Skip setters if required

@Erwane thanks for the hint. This is now implemented. Let me know if this looks good enough for you.

It's looks okay.
I don't like mutable array (&$data) but it's working ;)
Thanks

Good catch, this was a rest of an early implementation. Fixed, merging this.

Thanks :+1:


feat: bump cadence from 1.4.0 to 1.5.0

Hey guys! @mbellani
I am using the new way cadence provides to us in the new library version, and I'm using this library to export metrics to datadog in the statsd style. To make this possible, it is necessary to create a new version of this lib.

@mbellani Sorry, I don't see the dependabot already opened PR #67, so both PRs solve the issue; feel free to decide which PR should be merged


firefox version to make it work

I installed the extension on Firefox 52.6.0 and I can run it but I don't see results. When I run the analysis I just see the message "Analysis in progress. Start browwing the web, then com back here to get stats". I've been browing for a bit while and nothing is shown.

It is because you are running on an old version of esr channel (at least one property is not defined https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/filterResponseData#browser_compatibility). You should consider update your fox. I've tested on firefox 60.9.0esr (64 bits) and it's working.

It is because you are running on an old version of esr channel (at least one property is not defined https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/filterResponseData#browser_compatibility). You should consider update your fox. I've tested on firefox 60.9.0esr (64 bits) and it's working.

it works!! thanks :)


Fix wrong syntax on debug section

explain() or profile() can not be used after first() as described on docs.
I've just fixed it.

Thanks! That really was a mistake.


Update infinite loop error to an Error object

For consistency, I'm updating this to match the error thrown for infinite loops here: https://github.com/code-dot-org/code-dot-org/blob/7e2fcc28fbb791f0dd594c8b6e6192bca6f9a277/apps/src/lib/tools/jsinterpreter/CustomMarshalingInterpreter.js#L11

Codecov Report

Merging #147 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master     #147   +/-   ##
=======================================
  Coverage   55.36%   55.36%
=======================================
  Files          96       96
  Lines       11464    11464
=======================================
  Hits         6347     6347
  Misses       5117     5117

Impacted Files
Coverage Δ

generators/javascript/loops.js
8.69% <0%> (ø)
: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 0659fb1...c75bacf. Read the comment docs.


Restructure routing

or should we put the AppBar component inside every page ?

CF using a top router and many switch : https://reactrouter.com/web/example/nesting

I moved the AppBar inside the router, so that it can access the history, whereas it is re-rendered on page change. I don't see the difference for the moment although, in terms of user experience


account_objects method does not return NFTokenPages (Version: 1.9.4)

Issue Description
When trying to get an xrpl accounts owned objects, the method account_objects does not return NFTokenPage(s). This is a problem because one could not reliably show the user which objects currently count towards his owner reserve.
The documentation also states:
The account_objects command returns the raw [ledger format](https://xrpl.org/ledger-object-types.html) for all objects owned by an account.
Steps to Reproduce

call the account_objects method of an account which owns some NFTs
response does not include any NFTokenPage

Expected Result
Also NFTokenPages are returned through the account_objects method.
Actual Result
No NFTokenPage is returned
This is actually quite a problem. On accounts with NFTs, the OwnerCount of the AccountRoot objects shows a bigger number than objects are returned by the account_objects method. This confuses developers as well as users.

Here is a code solution: https://github.com/RichardAH/rippled/tree/nftpage_accobjs
I have tested by hand but it needs unit tests to go in. If someone wants to provide those then we can PR it.

The top-most commit here adds unit tests and fixes a couple of bugs in corner cases:
https://github.com/scottschurr/rippled/commits/RichardAH-nftpage_accobjs
You're welcome to cherry-pick the commit if you would like.

Why can't this just be done client side?

The top-most commit here adds unit tests and fixes a couple of bugs in corner cases:
https://github.com/scottschurr/rippled/commits/RichardAH-nftpage_accobjs
You're welcome to cherry-pick the commit if you would like.

Thanks! will do today!

Why can't this just be done client side?

I actually have a client side solution. It is very hacky indeed. Curious to see if you can figure out what it is before I share it


Module/266 automated tests static analysis

Background
In response to #266, starting implementation of Automated Testing strategy inline with the 'Testing trophy':

Static Analysis is the foundation. Unit tests are fast and cheap. Integration tests are the best balance of confidence and speed.
Reasoning

Linting makes more sense when run before committing your code. By doing so you can ensure no errors go into the repository and enforce code style. Prettier config file is already in project, but it is not a dependency. eslint and [tslint] (https://palantir.github.io/tslint/) are dependencies and configured. These relying on contributors having their code editors configured correctly to use these formatter and linters, which can be unpredictable and can result in bad habits creeping into the project.
running a lint process on a whole project is slow and linting results can be irrelevant. Ultimately you only want to lint files that are to be committed. Therefore lint-staged has been introduced to the project. Husky handles the pre-commit hook.
defaultSeverity has been raised to error in tslint.json to prevent code that does not pass linter from being introduced to the project

Next steps:

configure Jest and react-testing-library
investigate the feasibility of adding Cypress to the project

Thanks for this PR @rudolphfunk, tests are something we want to implement since quite some times now !
Could you add a bit more informations on how the test would consist ?
Do we need to run a specific command ?
For now these commits seems related only to pre commit linting right ?

@BenGamma this PR only covers static code analysis running TSLINT and ESLINT and Prettier. Contributors should follow the usual workflow:

Make their changes in their working copy (local repo)
Stage these changes once ready to commit git add <path-to-file>/<filename>
Commit their changes git commit -m '<commitMessage>', upon which the precommit hook will trigger lint-staged to run the linters and formatter against the staged files.

The advantage of running these checks locally is that CI does not need to catch them, therefore shortening the feedback loop for developers.

Could you add a bit more informations on how the test would consist ?
I think here you are referring to the unit or integration tests. I will get to these later and of course provide more guidance in the docs

Do we need to run a specific command
No ( see steps above)

For now these commits seems related only to pre commit linting right ?
Right you are

Reopening PR

Hey, massively appreciate the effort and clear communication.
Could you rollback the default severity? This was quite a pain point in discussions a couple months back, summarised here: https://github.com/OneArmyWorld/onearmy/wiki/Typescript

Also happy to see you're also looking at cypress, we had some discussions more widely here: https://github.com/OneArmyWorld/onearmy/issues/266

@chrismclarke, I have made the requested changes:

In terms of linting I like the approach and agree, with request to rollback default severity.

Done

I see there's also lots of changes to icons etc., please could you clarify, are these just to enforce the conventions specified? (i.e. no breaking changes)

This was prettier re-formatting my code. I had prettier disabled in my editor (settings from another project) and therefore the files were not formatted properly. I have reverted these changes to keep the PR clean. These files will get cleaned up in the future when changes are made and formatting rules are enforced.

All sounds and looks great, thanks again (merged)


wordexcerpt.com

Something got changed with the website and now is not working

Something?
Thanks for reporting it! I'll take a look.

I took another look. They removed the cloudflare check on every page load. Everything works like it used to now.


table Template instance isn't reactive

I have an application which dynamically uses different TabularTables based on a session variable. When the session variable changes, the table data changes from the reactive selector but the number of columns and titles remain the same.

I designed it to be reactive, but I don't recall ever actually testing that scenario, so I'll have to look into it.

Awesome. Thanks! Really epic package overall man

I believe the issue is that in line 103 of tabular.js, you're checking the table name.  If the table name hasn't changed, it never makes it to the rest of the checks, so options doesn't get updated, so the other autorun never runs.
if (tabularTable.name === lastTableName)
    if (table) {
     ...
   }
   return;
}

I'd try to fix it, but it's not immediately clear to me what the desired behavior is.  Should a name change be required to change columns (for example)?  Or are there a subset of tabular fields that should be updated regardless of a name change?

I'm also running into this issue when I change the user language the table does not load new lang. I tried using autorun

Trying to catch up. Can you check if this is still an issue with the 1.3.0 release? Be sure you have<EMAIL_ADDRESS>explicitly in your packages file or package use, or it may actually load an older release.

From what I can tell, 1.3.0 appears to have resolved this.  Thanks!


Reformat Output in Sphinx

The the Sphinx example the output/input should be before the sample code. Output could be an image or text.
Also images should be centered.

One issue: if there’s a LOT of output (like the DicomPrintTags Example), the code will appear waaaay down on the page. Vertical scrollbars would be a possibility, but I have no idea how I might accomplish that.
From: Bradley Lowekamp @.>
Date: Thursday, January 19, 2023 at 1:33 PM
To: SimpleITK/SimpleITK @.>
Cc: Bopf, Mike (NIH/NIAID) [C] @.>, Assign @.>
Subject: [EXTERNAL] [SimpleITK/SimpleITK] Reformat Output in Sphinx (Issue #1831)
The the Sphinx example the output/input should be before the sample code. Output could be an image or text.
Also images should be centered.
—
Reply to this email directly, view it on GitHubhttps://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FSimpleITK%2FSimpleITK%2Fissues%2F1831&data=05|01|mbopf%40mail.nih.gov|8ef2300b732c4464b50308dafa4ba485|14b77578977342d58507251ca2dc2b06|0|0|638097500027175951|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=b43LeyvPR5hduwwt9P7wdCj9bhuwWFWm%2BeiwpcaSBd4%3D&reserved=0, or unsubscribehttps://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAJJH236EOGN4C567GLRGEDLWTGCGFANCNFSM6AAAAAAUAVMIHE&data=05|01|mbopf%40mail.nih.gov|8ef2300b732c4464b50308dafa4ba485|14b77578977342d58507251ca2dc2b06|0|0|638097500027175951|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=sedSmuQmeDSnofRJ3FV%2B%2BuAwDSyOYsqkPbAPePdHfKE%3D&reserved=0.
You are receiving this because you were assigned.Message ID: @.***>
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and are confident the content is safe.

Possibly consider looking into this extension which supports shortening of output via ellipsis. Haven't gone beyond reading the overview, so don't know if this is useful or not.


Atom segfault when closing in Linux

I got this when trying to close atom.
I'm running Atom on Linux Mint Mate qiana x64
/usr/bin/atom : ligne 113 : 22502 Erreur de segmentation  nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1
App load time: 211ms
Cannot read property 'send' of null
TypeError: Cannot read property 'send' of null
    at AtomWindow.module.exports.AtomWindow.sendMessage (/usr/share/atom/resources/app.asar/src/browser/atom-window.js:276:44)
    at AtomWindow.module.exports.AtomWindow.openLocations (/usr/share/atom/resources/app.asar/src/browser/atom-window.js:265:21)
    at AtomApplication.module.exports.AtomApplication.openPaths (/usr/share/atom/resources/app.asar/src/browser/atom-application.js:648:22)
    at AtomApplication.module.exports.AtomApplication.openWithOptions (/usr/share/atom/resources/app.asar/src/browser/atom-application.js:131:21)
    at Socket.<anonymous> (/usr/share/atom/resources/app.asar/src/browser/atom-application.js:229:26)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at readableAddChunk (_stream_readable.js:146:16)
    at Socket.Readable.push (_stream_readable.js:110:10)
    at Pipe.onread (net.js:523:20)
Cannot read property 'send' of null
TypeError: Cannot read property 'send' of null
    at AtomWindow.module.exports.AtomWindow.sendMessage (/usr/share/atom/resources/app.asar/src/browser/atom-window.js:276:44)
    at AtomWindow.module.exports.AtomWindow.openLocations (/usr/share/atom/resources/app.asar/src/browser/atom-window.js:265:21)
    at AtomApplication.module.exports.AtomApplication.openPaths (/usr/share/atom/resources/app.asar/src/browser/atom-application.js:648:22)
    at AtomApplication.module.exports.AtomApplication.openWithOptions (/usr/share/atom/resources/app.asar/src/browser/atom-application.js:131:21)
    at Socket.<anonymous> (/usr/share/atom/resources/app.asar/src/browser/atom-application.js:229:26)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at readableAddChunk (_stream_readable.js:146:16)
    at Socket.Readable.push (_stream_readable.js:110:10)
    at Pipe.onread (net.js:523:20)
[22502:0115/154813:FATAL:resource_dispatcher_host_impl.cc(1171)] Check failed: ContainsKey(active_resource_contexts_, resource_context).
Failed to get crash dump id.
Report Id:

What version of Atom are you using?
Can you reproduce this after quitting Atom completely and reopening it in safe mode? (atom --safe)

If you can, can you provide specific step-by-step instructions for reproducing this?

Please take a look at this guide for submitting bug reports.

The problem is: I've only seen this bug once. It's not really a usability problem or anything. I just felt the need to report it since I usually consider memory-management errors to be critical.

@mnquintana, I don't really have any more info to add. I just wanted to say that this happened to me also. I'm on Kubuntu 16.04, and Atom 1.7.4. Atom froze on me when I used ESC to close the 'Find Box' (there were no open files at the time). I tried to shut Atom down gracefully, using the X. Eventually I got the 'Editor is not responding' dialog, and closed Atom with that. When I went back to my terminal I saw this message:
/usr/bin/atom: line 115:  7673 Segmentation fault      (core dumped) nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1
App load time: 511ms
Failed to get crash dump id.
Report Id:
Failed to get crash dump id.

Unfortunately I can't reproduce it. Sorry.

Since it only happened twice and we don't have any more information on this, I'm going to close it. Please let us know if you have any more information and I'll be happy to reopen the Issue.

@lee-dohm, I hate to bug you or anyone else about this issue again, seeing how little info there is to go on. I managed to get Atom into a state where this was reproducible, but it was by accident, and now I can't make it happen again. I could make Atom freeze and then segfault on exit (and did, a dozen or so times) simply by typing a comma into the editor (comma was placed, but the editor was frozen after). My steps were:

Open Atom with an unsaved, modified file already in the editor.
Type a , into the editor.
<Atom is frozen>
Use the close button (X) to close Atom.
Wait a few seconds for the 'Editor is not responding' dialog.
Use the Close button to close Atom (the other option is Wait).
Wait a few seconds for Atom to close, and see the segfault message (as above).

(I realize this alone tells you nothing)
I ran strace /usr/share/atom/atom, bypassing nohup, and collected the output (atom-strace.txt, or this one with syntax highlighting), but I'm not good with strace's so nothing jumps out at me. Maybe strace is not the right tool, but it was the only idea I had (dev-mode/logfile didn't say anything).
Is there something else, or another method I could use if I get into this state again? Something that would help diagnose this?
After I saved the file the bug disappeared.
There is definitely a problem here, it's just a hard one to pin down. If I see anything else I will let someone know.

The biggest benefit would be if you could reproduce the problem in Safe Mode, @cjwelborn. Also, I notice at the end of the strace file this line:
open("/tmp/Atom Crashes/43715e78-f167-83e8-73001779-3aed4963.dmp", O_RDONLY) = 22

If you can attach these crash dumps when you run into these problems, that would help too.

This just happened to me. I believe it was as I was quitting the application. I'm running on Linux so I grabbed this out of the dmesg log:
atom-dmesg.txt
atom-1.12.7-amd64
If there are other logs I could grab for you, just let me know what you want.

This just happened to me. I believe it was as I was quitting the application. I'm running on Linux so I grabbed this out of the dmesg log:
atom-dmesg.txt
atom-1.12.7-amd64
If there are other logs I could grab for you, just let me know what you want.


MIMXRT1050_EVK goes to "No cores were discovered!" state

After few flash rounds the board goes to "No cores were discovered!" state and has to be restored with DIP switch altering and erase.
Steps:

 pyocd flash -Oconnect_mode=under-reset -vvv -u 02270b0341114e45005d300ac207003692d1000097969900 -t mimxrt1050_hyperflash  printer_MIMXRT1050_EVK.hex
pyocd flash -Oconnect_mode=under-reset -vvv -u 02270b0341114e45005d300ac207003692d1000097969900 -t mimxrt1050_hyperflash  payload_MIMXRT1050_EVK.hex
pyocd flash -Oconnect_mode=under-reset -vvv -u 02270b0341114e45005d300ac207003692d1000097969900 -t mimxrt1050_hyperflash  payload_null_MIMXRT1050_EVK.hex
"No cores were discovered!" occurs and board is unusable without manual restore.

Using pyoCD version mbedmicro/pyOCD@fdc69fac102880de4b845bcedf540dbd0c43d7b5.
binaries.zip
daplink.txt
no_cores_were_discovered_trace.txt
cc: @mmahadevan108 @maclobdell

I am able to recreate this problem (or at least a similar one).  I have a workaround to propose.
I noticed that the application in the RAAS acceptance test (private repo) is using wait(0.2) in the main thread. Please note that wait() will block the thread and put the device to sleep if no other threads are running.  There is a known issue on this target that if the application goes to sleep too quickly upon startup, then the debugger cannot connect.
Workaround Proposal
Please change wait(0.2) to wait_us(200*1000) in the main loop of the acceptance test.  wait_us will block and not let the board go to sleep.
Real fix needed - I think NXP should investigate a fix to pyOCD that will ensure the debugger can always connect - even if the board is asleep. In DAPLink, this was accomplished by issuing a hard reset.  need to double check status of https://github.com/ARMmbed/mbed-os/issues/12376.
Steps I used to recreate this problem.  I created several binaries from the blinky application. The first few binaries use wait_us().  The last binary uses wait().  Everything works fine, until I flash the last binary. Then I see the same problem.

Alternative Possible Workaround
You can prevent an Mbed OS application from going to deep sleep by defining the MBED_DEBUG macro.
https://github.com/ARMmbed/mbed-os/blob/af4c8a94f3913ceda9069ec79cba81a793d695fe/platform/source/mbed_power_mgmt.c#L233

@maclobdell Please try using the connect_mode option if you think a pre-reset or connecting under reset would help.

Defect originator uses --connect_mode=under-reset

@flit - as Roman mentions, we tried that and it doesn't work. NXP has said that reconnecting to a device that is asleep requires a hard reset. so perhaps connecting under reset is not enough.

Here are the files I used to test this.
i.mxrt1050_pyocd_flashing_debug.zip

I don't know if this is good or bad, but I tried both the binaries attached to the original description of this ticket, as well as Mac's from a couple days ago. In all cases, I'm able to successfully connect, both via commander as well as to program flash again. This was with version 0.26.0.

Retested with 0.26.0 using the steps in description. On first round step 3 the board fails and the error reproduces.

@flit - did you try to flash the binaries in the same sequence? Also, can you share the revision of the board you have, or any details that might explain why you see different behavior?

Sorry, haven't had time yet. Will try to get to it soon.

Ok! I'm able to reproduce it! 😄

Based on further communication, we believe this issue is related to letting the system go to sleep too early in the main loop. It needs more time before going to sleep to allow the debugger to connect.

This might provide additional protection. Needs to be tested. https://github.com/mbedmicro/pyOCD/pull/882


ddev launch -m shortcut for mailhog doesn't work when ddev/varnish enabled

For projects which use mailhog the ddev-varnish add-on causes ddev launch -m to stop working since mailhog is no longer available on the expected URL. The launch command isn't the important but it's pretty neat.
Workaround: Access mailhog on novarnish.* URL.
Discussion: Off the top of my head, without knowing all that much about internals, 3 options: a) document as gotcha in README; b) have router handle port 8026 differently; c) handle port 8026 on varnish container, e.g. have Varnish listen on that port too and just pass requests along to web container on same port, or direct to novarish.* URL, or use something like socat to relay the traffic.
STEPS TO REPRODUCE:
Outline

Create a very simple ddev project.
Start ddev
Launch mailhog: there it is!
Add ddev-varnish
Restart ddev
Launch mailhog: '503: No ddev back-end site available.'

Worked example with output
$ ddev version
ITEM             VALUE
DDEV version     v1.21.3
architecture     amd64
db               drud/ddev-dbserver-mariadb-10.4:v1.21.3
dba              phpmyadmin:5
ddev-ssh-agent   drud/ddev-ssh-agent:v1.21.3
docker           20.10.20
docker-compose   v2.10.2
docker-platform  docker-desktop
mutagen          0.16.0
os               darwin
router           drud/ddev-router:v1.21.3
web              drud/ddev-webserver:v1.21.3
$ ddev poweroff
$ mkdir /tmp/testddev
$ cd /tmp/testddev
$ ddev config --auto
$ printf "<?php\nphpinfo();\n" > index.php
$ ddev start
...
Successfully started testddev
Project can be reached at https://testddev.ddev.site https://<IP_ADDRESS>:62323
$ ddev launch -m
Opens Mailhog at https://testddev.ddev.site:8026 with system default browser.
$ ddev get drud/ddev-varnish && ddev restart
$ ddev restart
$ ddev launch -m
Still opens https://testddev.ddev.site:8026 with system default browser but now it's an error page from the router container: "502: Unresponsive/broken ddev back-end site."

It's super easy to add a launch command in this add-on that will do this correctly. Just copy the normal one and put it in this add-on (installed to .ddev/commands/host) and update it to work with varnish.

BTW, you use this a lot, I'd love to see you become a maintainer of it. Would you consider that @jedubois ?

@rfay , I would be happy to help but not don't feel super confident after going down a rabbit hole with Go today 🙈

Mostly this isn't related to go, but more related to your experience with varnish, and I'm way happy to help with anything that is go related. The most important thing is to have somebody watching that uses varnish regularly (which isn't me).

@skeemer , thanks for this fix. I did some testing, merged your PR, did release, merged your test PR. Using v0.1.3 on my projects now.

Thanks @jedubois !


Latest streams plugin version errors with Neo4j docker image

Guidelines
Please note that GitHub issues are only meant for bug reports/feature requests. If you have questions on how to use Streams, please ask on StackOverflow instead of creating an issue here.
Expected Behavior (Mandatory)
It's possible to start Neo4j with streams plugin via official Docker image.
Actual Behavior (Mandatory)
Starting Neo4j Docker container with streams plugin fails with 8 code (see logs below).
How to Reproduce the Problem
Simply try to start Neo4j via docker or docker compose.
Steps (Mandatory)

Use below docker-compose.yml file:

version: "3.9"

services:

  neo4j:
    image: neo4j:latest
    container_name: 'test-neo4j'
    ports:
      - 7474:7474
      - 7687:7687
    volumes:
      - ./docker_volumes/neo4j/data:/data
      - ./docker_volumes/neo4j/logs:/logs
      - ./docker_volumes/neo4j/plugins:/plugins
      - ./docker_volumes/neo4j/import:/var/lib/neo4j/import
    environment:
      - NEO4J_AUTH=neo4j/neo4jpass
      - NEO4J_apoc_export_file_enabled=true
      - NEO4J_apoc_import_file_enabled=true
      - NEO4J_apoc_import_file_use__neo4j__config=true
      - NEO4J_dbms_security_procedures_unrestricted=apoc.*,algo.*,gds.*
      - NEO4J_dbms_security_procedures_allowlist=apoc.*,algo.*,gds.*
      - NEO4JLABS_PLUGINS=["graph-data-science", "apoc", "streams"]

Run it:

docker compose build --no-cache neo4j && docker compose up --force-recreate neo4j

The result is:
[+] Running 1/0
 ⠿ Container test-neo4j  Recreated                                                                                0.0s
Attaching to test-neo4j
test-neo4j  | Warning: Folder mounted to "/plugins" is not writable from inside container. Changing folder owner to neo4j.
test-neo4j  | Warning: Folder mounted to "/logs" is not writable from inside container. Changing folder owner to neo4j.
test-neo4j  | Warning: Folder mounted to "/data" is not writable from inside container. Changing folder owner to neo4j.
test-neo4j  | Changed password for user 'neo4j'. IMPORTANT: this change will only take effect if performed before the database is started for the first time.
test-neo4j  | Fetching versions.json for Plugin 'graph-data-science' from https://graphdatascience.ninja/versions.json
test-neo4j  | Installing Plugin 'graph-data-science' from https://graphdatascience.ninja/neo4j-graph-data-science-2.2.0.jar to /plugins/graph-data-science.jar
test-neo4j  | Applying default values for plugin graph-data-science to neo4j.conf
test-neo4j  | Skipping dbms.security.procedures.unrestricted for plugin graph-data-science because it is already set
test-neo4j  | Fetching versions.json for Plugin 'apoc' from https://neo4j-contrib.github.io/neo4j-apoc-procedures/versions.json
test-neo4j  | Installing Plugin 'apoc' from https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/<IP_ADDRESS>/apoc-<IP_ADDRESS>-all.jar to /plugins/apoc.jar
test-neo4j  | Applying default values for plugin apoc to neo4j.conf
test-neo4j  | Skipping dbms.security.procedures.unrestricted for plugin apoc because it is already set
test-neo4j  | Fetching versions.json for Plugin 'streams' from https://neo4j-contrib.github.io/neo4j-streams/versions.json
test-neo4j  | Installing Plugin 'streams' from https://github.com/neo4j-contrib/neo4j-streams/releases/download/5.0.0/neo4j-streams-5.0.0.jar to /plugins/streams.jar
test-neo4j exited with code 8

Removing streams plugin from plugin list solves the issue. Also it worked just fine last week (before 5.0.0 release).
Specifications (Mandatory)
See docker image.
Versions

OS: Ubuntu 18.04 (via WSL2)
Neo4j: Latest image which is 4.4.11 now
Neo4j-Streams: 5.0.0

Hi @f1ames ,
where did you download neo4j-streams 5.0.0? The latest streams version is 4.1.2. The latest release (https://github.com/neo4j-contrib/neo4j-streams/releases/tag/5.0.0) is just about the Neo4j Kafka connector which has to be installed as Kafka Connect connector and not as Neo4j plugin.
Regards,
Mauro

Hi @mroiter-larus,
Thank you for clarification on this. Hmm, this is what happens when you run Neo4j Docker image (with the configuration I posted above). I assume it just tries to download and use latest plugin version, as you can see in the logs:
test-neo4j  | Fetching versions.json for Plugin 'streams' from https://neo4j-contrib.github.io/neo4j-streams/versions.json
test-neo4j  | Installing Plugin 'streams' from https://github.com/neo4j-contrib/neo4j-streams/releases/download/5.0.0/neo4j-streams-5.0.0.jar to /plugins/streams.jar

I'm not sure at this stage if it means it's issue on Neo4j plugin management system side? 🤔

Hi @f1ames,
i tried your docker-compose.yml and i got the same error. I think there may be a problem related to NEO4JLABS_PLUGINS environment variable. It is getting the wrong plugin version to install.
I'll talk with the development team and let them know.
Thanks for reporting it!

Hi @f1ames,
could you please retry? It should now work as expected!
Mauro

Hi @f1ames,
could you please retry? It should now work as expected!
Mauro

Hi @mroiter-larus,
Looks like it works now. It uses 4.1.2 version which works fine:
prod-neo4j          | Fetching versions.json for Plugin 'streams' from https://neo4j-contrib.github.io/neo4j-streams/versions.json
prod-neo4j          | Installing Plugin 'streams' from https://github.com/neo4j-contrib/neo4j-streams/releases/download/4.1.2/neo4j-streams-4.1.2.jar to /plugins/streams.jar
prod-neo4j          | Applying default values for plugin streams to neo4j.conf

Thanks for the quick reaction and fix! 👍


NFS-provisioner is unable to mount export-volume

Hi i am trying to set up NFS-provisioner with statefulset, however the pod is stuck in "ContainerCreating" and when i describe the pod i get the following:
Warning  FailedMount  5m42s  kubelet, k8s-worker-01  MountVolume.SetUp failed for volume "export-volume" : mount failed: exit status 32
Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/9a2e33cb-eb10-4d3c-bbc5-8cc533fe6d44/volumes/kubernetes.io~nfs/export-volume --scope -- mount -t nfs IP/path /var/lib/kubelet/pods/9a2e33cb-eb10-4d3c-bbc5-8cc533fe6d44/volumes/kubernetes.io~nfs/export-volume
Output: Running scope as unit run-20707.scope.
mount.nfs: access denied by server while mounting IP/Path

Any idea how can i fix this problem? I am trying to connect to external storage outside kubernetes cluster.

Have you tried mounting it from a regular machine first? See if that works.

getting same error and also not able to run from regular machine
systemd-run --description="Kubernetes transient mount for /var/lib/kubelet/pods/3b355135-0192-11ea-ad82-00505681e351/volumes/kubernetes.io~nfs/pvc-0e50225d-018f-11ea-ad82-00505681e351" --scope -- mount -t nfs nas.gsic-sus.net:/mnt/default-pool/icp/temp/volumes/vault-audit-wise-parrot-vault-0-pvc-0e50225d-018f-11ea-ad82-00505681e351 /var/lib/kubelet/pods/3b355135-0192-11ea-ad82-00505681e351/volumes/kubernetes.io~nfs/pvc-0e50225d-018f-11ea-ad82-00505681e351 Running scope as unit run-22768.scope. mount.nfs: mount point /var/lib/kubelet/pods/3b355135-0192-11ea-ad82-00505681e351/volumes/kubernetes.io~nfs/pvc-0e50225d-018f-11ea-ad82-00505681e351 does not exist


Documenting existing echoshader structure

To facilitate refactoring the echoshader package, we need a clean documentation of what the current echoshader structure and interaction look like. Please follow the UML diagram conventions and put a few references for the diagrams in the comments below.
Requirements

[ ] Class diagram and interaction diagram for methods
[ ] Definitions of data input/output format for the classes and methods

@ldr426 : as you work on the above, please put links on the diagrams as comments under this issue.

Class diagram and interaction diagram for methods

Definitions of data input/output format for the classes and methods

This issue can be closed now!


Better localization handling for input [FR]

Hi,
since I'm using a French OS, my ibmcloud CLI is currently in French. (v0.16.3)
Regularly, on updates, it asks in French, if I want to update , basically asking [O/N] (for Oui/Non) instead of [y/n].
That's ok for me as long as I can type o instead of y. But o is never recognized by the CLI and I get this message: input must be 'y', 'n', 'yes' or 'no'
So there are two ways to solve this:

either accept [y/n] whatever the language,
or accept a localized input.

Thanks!

Sorry duplocate with https://github.com/IBM-Cloud/ibm-cloud-cli-release/issues/59

Hi,  the translation of [y/n] will be removed in the next release version 0.17.0, which is planned to release next week.

@whitetigle 0.17.0 is out. It should have fixed this issue. Would you mind if you could have a try? Thanks.

Cool! 😄
I updated the CLI. How can I check now? What feature does prompt for yes/no? Thanks :)

@whitetigle My bad. I forgot that you reported this issue in update command. Maybe next time when you see the prompt, you can help to check. Thx


Smooth transition within a value callback

Hello,
I'd like to use a Lottie animation for a progress bar, ideally in such a way that I can connect all elements to a single slider control, then change the value callback of this slider with JS from 0 - 100. This isn't hard to do at all, but one issue I notice is that I don't know how to gradually change the value -- I only know how to change it from numbers like 0 to 20 in two frames, instead of simulating something like a cubic-bezier timing so that it ramps from one number to the next.
Is there any easy way to achieve this?

Ended up creating a library to do this, still unsure if it could be done natively otherwise:


Visual Studio 2017

Hello,
The provided installer works perfectly with Visual Studio 2012 & 2015, but unfortunately not with Visual Studio 2017. Does anyone know which files must be copied where ?

Try this:
Look for a folder named SharpKit in .net framerwork folders e.g.: C:\Windows\Microsoft.NET\Framework\v4.0.30319, and copy it to wherever your tools are run from. You can do a search for msbuild.exe, and copy this folder to wherever that is located.


Replace vera with clang-format

Note: depends on #4515.
Moreover, if the style change is accepted by the maintainers, I'll update the coding standards documentation.

Note: depends on #4515.
Moreover, if the style change is accepted by the maintainers, I'll update the coding standards documentation.

I like this idea, maybe we need python script to format files automatically

I like this idea, maybe we need python script to format files automatically

The patch is ready, the 08.CODING-STARDARDS.MD needs to be updated in a follow up patch.


If target director does not have config-server, then fail fast if missing --vars-store

With bosh deploy either the target director has a config-server or the user needs bosh deploy manifest.yml --vars-store path/to/creds.yml. Can we please fail fast with a nice error message?
In writing articles/docs, I'm unsure what path to take at the moment - to include --vars-store in all examples in case they don't have config-server/credhub, or to future proof the articles by not including --vars-store on the assumption that one day they will have it.
It would help if the CLI fail nicely and helpfully and fast if --vars-store was missing but it was required because there was no config-server/credhub.

Kind of related to that - I just had the opposite situation where the CI script contained --vars-store but the Director now uses Credhub. In this scenario the outcome is - credentials are generated twice (by the CLI and Credhub) but the credentials generated by CLI and stored in vars-store are actually used. It's very confusing because I have credentials generated and stored in Credhub but they don't work. This should also fail fast or, if CLI intentionally takes precedence, config server should not generate credentials at all.

This does seem like an interesting use case and area for improvement. Closing/re-opening to make a Tracker story.

Hello,
It looks like we have not responded to this in a reasonable time, and unfortunately a year has passed. Given this, we are going to close the issue, but please feel  free to re-open the issue. In doing so, a new Pivotal Tracker story will be generated, and we can revisit this.
Thanks again for submitting this, and apologies for closing without a proper resolution at this moment.
BOSH Systems Team - @aashah @luan @jaresty


[Bug]: Tastyigniter 3.1.1 Side Navbar shows only Dashboard option. Other options are missing

What happened?
Hello,
I was in the process of installing Tastyigniter 3.1.1 on Centos 6.9 Final Linux with PHP 7.4, MYSQL 5.7 and Apache 2.2.
I downloaded the package via composer command i.e :
php composer.phar create-project tastyigniter/tastyigniter /{{PATH}}/{{TO}}/{{Tastyigniter}}
And after that I installed Tastyigniter(without demo data) via command line command i.e :
php artisan igniter:install
However after successful installation on command line , when I visit the admin panel ,
I found that in the side navigation bar only 'Dashboard' option is being displayed. The other options like Restaurant, Sales, Users, Design, Localization, Tools, System are missing.
Here is the screenshot of the same :

However this is the expected output which I have on an earlier installation of Tastyigniter 3.0.8 :

Also Clicking on any of the links in 'Getting started' links throws access denied errors. Here is the screenshot :

What could be the possible cause of this issue ?. Also tried by setting 'APP_ENV=dev' and 'APP_DEBUG=true' , no error is thrown and no log is thrown inside /storage/logs/
Could you please replicate and fix this issue?.
What did you expect to happen?
Expected Output : All the other options in side nav bar with 'Dashboard' option should be shown. but only Dashboard option shown.
Version
Other (please detail)
What browser are you seeing the problem on?
Firefox
Relevant log output
No response

Hi,
Just wanted to notify that the issue still persist in 3.1.2 version as well and changing "super-user" value to 1 resolves the issue.
However it should be default set to 1 while installing.


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 71 ms

Resolved: ClamAV performance has improved in 8329337 after 5 minutes.


Allow ping to runners and agent from cidr range

Description
this addition is for debugging purposes: Allow icmp ping traffic to the agent and runners from the list of allowed cidr ranges.
Migrations required
NO
Verification
Running this branch in production currently. Our situation is a copy from example-public
Documentation
Added the enable_ping variable to the documentation in _docs/

I'd prefer to move the security groups to it's own file: security_groups.tf, please let me know you think that's a good idea, than I'll add another commit accomplishing this.

@fliphess thanks, will check soon

👍 No hurries :)

@fliphess thanks!


connection to xrdp closes, when sound-rate is other than 22050 used and anything played

filed an issue for remmina ( https://gitlab.com/Remmina/Remmina/issues/1690 ), but it's reproducible with xfreerdp:
connecting to a xrdp-enabled server (with xorgxrdp-modules) sound-redirection from server to client only works in mid-quality, any other will lead to a disconnect.
works:

xfreerdp /v:ip_of_server /u:username /sound:rate:22050,channel:2

doesn't work:

xfreerdp /v:ip_of_server /u:username /sound
xfreerdp /v:ip_of_server /u:username /sound:rate:11025,channel:1
xfreerdp /v:ip_of_server /u:username /sound:rate:44100,channel:2

playing any soundfile ill lead to a disconnect. no crash in strace or gdb seen, but an error-msg:
rdpsnd_virtual_channel_client_thread reported an error. Error was 1359
client (64bit) and server (32bit) are Linuxmint 18.3 with self-compiled freerdp and xrdp.

freerdp 2.0.0-dev3 (7eb12bb)
xorg-server 2:1.19.5-0ubuntu2~16.04.1
xrdp 0.9.6

client buildconfig:
This is FreeRDP version 2.0.0-dev3 (7eb12bb) Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=ON HAVE_AIO_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1 HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL= HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H=1 HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H=1 HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=ON WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=ON WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=ON WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=ON WITH_DEBUG_RDPEI=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DIRECTFB=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=OFF WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=ON WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_GSTREAMER_0_10=OFF WITH_GSTREAMER_1_0=ON WITH_ICU=OFF WITH_IPP=OFF WITH_JPEG=ON WITH_LAME=ON WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_OPENH264=ON WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=OFF WITH_PAM=ON WITH_PCSC=ON WITH_PROFILER=OFF WITH_PULSE=ON WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=ON WITH_SERVER_CHANNELS=ON WITH_SERVER_INTERFACE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SSE2=ON WITH_THIRD_PARTY=ON WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=off WITH_X11=ON WITH_X264=OFF WITH_XCURSOR=ON WITH_XDAMAGE=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XTEST=ON WITH_XV=ON WITH_ZLIB=ON Build type:          Release CFLAGS:               -fPIC -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls Compiler:            GNU, 5.4.0 Target architecture: x64
server is same but 32bit
sound is done via pulseaudio 8.0

Could you please add log output from a run with /log-level:trace? The errors you mentioned sound like follow up issues.

Oh, sorry, missed that: your build has every sound related codec turned off, so that might actually be the reason.

@sh-dvl I'd still be interested in the debug log of the connection as formats not supported should not be announced to the server.
This means some format is agreed upon but fails to decode properly.

at least lame is active...
on stderr comes:
[09:24:37:807] [8872:8883] [ERROR][com.freerdp.channels.rdpsnd.client] - unknown msgType 39
[09:24:40:264] [8872:8873] [ERROR][com.freerdp.core] - rdpsnd_virtual_channel_client_thread reported an error. Error was 1359
[09:24:40:264] [8872:8873] [ERROR][com.freerdp.client.x11] - Failed to check FreeRDP file descriptor

because of large output on stdout I filtered the trace with fgrep -v -e MemBlt -e Bitmap -e Glyph -e Drawing to drop any irrelvant graphical things:
[09:24:29:921] [8872:8873] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[09:24:29:921] [8872:8873] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[09:24:29:921] [8872:8873] [DEBUG][com.freerdp.channels.cliprdr.client] - VirtualChannelEntryEx
[09:24:29:922] [8872:8873] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[09:24:29:922] [8872:8873] [DEBUG][com.freerdp.client.x11] - Searching for XInput pointer device
[09:24:29:923] [8872:8873] [DEBUG][com.freerdp.client.x11] - Pointer device: 10
[09:24:29:924] [8872:8873] [DEBUG][com.freerdp.core.nego] - Enabling security layer negotiation: TRUE
[09:24:29:924] [8872:8873] [DEBUG][com.freerdp.core.nego] - Enabling restricted admin mode: FALSE
[09:24:29:924] [8872:8873] [DEBUG][com.freerdp.core.nego] - Enabling RDP security: TRUE
[09:24:29:924] [8872:8873] [DEBUG][com.freerdp.core.nego] - Enabling TLS security: TRUE
[09:24:29:924] [8872:8873] [DEBUG][com.freerdp.core.nego] - Enabling NLA security: TRUE
[09:24:29:924] [8872:8873] [DEBUG][com.freerdp.core.nego] - Enabling NLA extended security: FALSE
[09:24:29:924] [8872:8873] [DEBUG][com.freerdp.core.nego] - state: NEGO_STATE_NLA
[09:24:29:924] [8872:8873] [DEBUG][com.freerdp.core.nego] - Attempting NLA security
[09:24:29:924] [8872:8873] [DEBUG][com.freerdp.core] - connecting to peer <IP_ADDRESS>
[09:24:29:925] [8872:8873] [DEBUG][com.freerdp.core.nego] - RequestedProtocols: 3
[09:24:29:951] [8872:8873] [DEBUG][com.freerdp.core.nego] - RDP_NEG_RSP
[09:24:29:951] [8872:8873] [DEBUG][com.freerdp.core.nego] - selected_protocol: 1
[09:24:29:951] [8872:8873] [DEBUG][com.freerdp.core.nego] - state: NEGO_STATE_FINAL
[09:24:29:951] [8872:8873] [DEBUG][com.freerdp.core.nego] - Negotiated TLS security
[09:24:29:951] [8872:8873] [DEBUG][com.freerdp.core.nego] - nego_security_connect with PROTOCOL_TLS
[09:24:29:966] [8872:8873] [DEBUG][com.freerdp.core.gcc] - Server rdp encryption method: NONE
[09:24:29:967] [8872:8873] [DEBUG][com.winpr.timezone] - tz: Bias=-60 sn='W. Europe Standard Time' dln='W. Europe Daylight Time'
[09:24:29:971] [8872:8873] [DEBUG][com.freerdp.core.rdp] - rdp_send_data_pdu: sending data (type=0x1f size=37 channelId=1002)
[09:24:29:971] [8872:8873] [DEBUG][com.freerdp.core.rdp] - rdp_send_data_pdu: sending data (type=0x14 size=41 channelId=1002)
[09:24:29:971] [8872:8873] [DEBUG][com.freerdp.core.rdp] - rdp_send_data_pdu: sending data (type=0x14 size=41 channelId=1002)
[09:24:29:971] [8872:8873] [DEBUG][com.freerdp.core.rdp] - rdp_send_data_pdu: sending data (type=0x27 size=41 channelId=1002)
[09:24:29:971] [8872:8873] [DEBUG][com.freerdp.core.rdp] - recv Synchronize Data PDU (0x1F), length: 22
[09:24:29:971] [8872:8873] [DEBUG][com.freerdp.core.rdp] - recv Control Data PDU (0x14), length: 26
[09:24:29:971] [8872:8873] [DEBUG][com.freerdp.core.rdp] - recv Control Data PDU (0x14), length: 26
[09:24:29:971] [8872:8873] [DEBUG][com.freerdp.core.rdp] - recv Font Map Data PDU (0x28), length: 26
[09:24:29:971] [8872:8873] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[09:24:29:971] [8872:8873] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[09:24:29:973] [8872:8873] [TRACE][com.freerdp.codec] - 4 - [OpenH264] this = 0x0x7f5be4081990, Info:CWelsDecoder::SetOption():DECODER_OPTION_TRACE_CALLBACK callback = 0x7f5bf99c92e0.
[09:24:29:982] [8872:8873] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[09:24:29:990] [8872:8883] [INFO][com.freerdp.channels.rdpsnd.client] - Loaded pulse backend for rdpsnd
[09:24:37:783] [8872:8884] [DEBUG][com.freerdp.channels.cliprdr.client] - ServerCapabilities
[09:24:37:783] [8872:8884] [DEBUG][com.freerdp.channels.cliprdr.client] - MonitorReady
[09:24:37:783] [8872:8884] [DEBUG][com.freerdp.channels.cliprdr.client] - ClientCapabilities
[09:24:37:784] [8872:8884] [DEBUG][com.freerdp.channels.cliprdr.client] - ClientFormatList: numFormats: 9
[09:24:37:806] [8872:8883] [DEBUG][com.freerdp.channels.rdpsnd.client] - Server Audio Formats
[09:24:37:806] [8872:8883] [DEBUG][com.freerdp.channels.rdpsnd.client] - Client Audio Formats
[09:24:37:856] [8872:8884] [DEBUG][com.freerdp.channels.cliprdr.client] - ServerFormatListResponse
[09:24:37:857] [8872:8883] [DEBUG][com.freerdp.channels.rdpsnd.client] - Training Request: wTimeStamp: 1588 wPackSize: 1024
[09:24:37:857] [8872:8883] [DEBUG][com.freerdp.channels.rdpsnd.client] - Training Response: wTimeStamp: 1588 wPackSize: 1024
[09:24:37:985] [8872:8884] [DEBUG][com.freerdp.channels.cliprdr.client] - ServerFormatDataRequest
[09:24:37:987] [8872:8873] [DEBUG][com.freerdp.channels.cliprdr.client] - ClientFormatDataResponse
[09:24:40:259] [8872:8883] [DEBUG][com.freerdp.channels.rdpsnd.client] - WaveInfo: cBlockNo: 70 wFormatNo: 1 [WAVE_FORMAT_MPEGLAYER3]
[09:24:40:259] [8872:8883] [DEBUG][com.freerdp.channels.rdpsnd.client] - Close
[09:24:40:263] [8872:8883] [DEBUG][com.freerdp.channels.rdpsnd.client] - Wave: cBlockNo: 70 wTimeStamp: 3988
[09:24:40:264] [8872:8883] [DEBUG][com.freerdp.channels.rdpsnd.client] - Close
[09:24:40:264] [8872:8873] [INFO][com.freerdp.client.x11] - Network disconnect!
[09:24:40:268] [8872:8873] [TRACE][com.freerdp.codec] - 4 - [OpenH264] this = 0x0x7f5be4081990, Info:CWelsDecoder::UninitDecoder(), openh264 codec version = 3b51f16.
[09:24:40:269] [8872:8873] [TRACE][com.freerdp.codec] - 4 - [OpenH264] this = 0x0x7f5be4081990, Info:CWelsDecoder::UninitDecoder(), verify memory usage (0 bytes) after free..
[09:24:40:269] [8872:8873] [TRACE][com.freerdp.codec] - 4 - [OpenH264] this = 0x0x7f5be4081990, Info:CWelsDecoder::~CWelsDecoder()

@sh-dvl thx, looks like mp3 decoding has an issue. Could you check which line in freerdp_dsp_decode_mp3 fails?

@sh-dvl Could you post your configuration for xrdp? Having trouble to get sound working here. Might be easier if I can debug myself.

./configure --with-gnu-ld --with-pic --enable-vsock --enable-xrdpdebug --enable-jpeg --enable-tjpeg --enable-fuse --enable-mp3lame --enable-pixman --enable-xrdpvr --enable-opus
on ubuntu/mint following packages are needed: libavformat-dev libfuse-dev libturbojpeg0-dev libopus-dev libmp3lame-dev (and maybe others, which are installed due to other compilations)
additionally the pulse-sources has to be configured (compilation not needed) and afterwards in sesman/chansrv/pulse a make PULSE_DIR=<srcdir> .
the two modules have to be moved into the pulse-module-dir (normally /usr/lib/pulse-VERSION/modules )
xrdpxorg:

needs xserver-xorg-dev
./configure --with-gnu-ld --with-pic
etc/X11/xrdp/xorg.conf + usr/lib/xorg/modules/* have to be moved or linked to xorg-dirs

(sorry if I've fogotten anything, but I haven't logged every step.)

I'm working on some fixes for different sound backends https://github.com/akallabeth/FreeRDP/tree/dsp_fix and found a bug in the freerdp_dsp_decode function. If you could give that branch a try and post your feedback it would be appreciated.

@akallabeth ，FreeRDP have Implemented the static virtual sound channel named RDPSND，does FreeRDP implement AUDIO_PLAYBACK_DVC? Could you give me some reference documentation?

@sherwinkh Sorry, what do you want to know? There are the rdp sound redirection specs (input and output) the channels are based upon. What do you mean with AUDIO_PLAYBACK_DVC?

#4758 implements the fixes for this.

2.1 Transport
This protocol is designed to operate over three transports:
 A static virtual channel, as specified in [MS-RDPBCGR] section 2.2.6 and <IP_ADDRESS>. The virtual
channel name is "RDPSND".<1> The usage of a channel name when opening a dynamic virtual
channel is specified in [MS-RDPEDYC] section <IP_ADDRESS>. The Remote Desktop Protocol layer
manages the creation, setup, and transmission of data over the virtual channel.
 A dynamic virtual channel, as specified in [MS-RDPEDYC]. The virtual channel name is
AUDIO_PLAYBACK_DVC when a reliable transport is used; or AUDIO_PLAYBACK_LOSSY_DVC
when an unreliable UDP transport, as specified in [MS-RDPEUDP], is used.<2> The Remote
Desktop Protocol layer manages the creation, setup, and transmission of data over the virtual
channel.
 User Datagram Protocol (UDP), where the port is advertised in the Client Audio Formats and
Version PDU (section <IP_ADDRESS>).

as described in MS-RDPEA documentation，I just want to know more about AUDIO_PLAYBACK_DVC.

In full screen size, playing the same video online, the sound quality is OK in win 7, but the sound is intermittent randomly in win server 2012 R2.when connectiong win 2012,I see the channel name "AUDIO_PLAYBACK_DVC",so I wonder  AUDIO_PLAYBACK_DVC can improving the sound quality in win 2012.

@sherwinkh no, nothing to do with quality.

@sh-dvl I've been fixing various issues with sound encoding/decoding in freerdp, but I'm not entirely convinced this issue is freerdp only.
Could you check with a build with --enable-fdkaac? That should switch to AAC codec.
Reason I'm suspicious is the error message unknown msgType which happens before decoding sound related data.

@sh-dvl Sorry, forgot to add, reason for testing with AAC is that that path is working with https://github.com/FreeRDP/FreeRDP/pull/4758 applied against windows 8 and up, whereas I can not convince a windows 7 to send mp3 encoded data.

sorry, it'll take some days, before I can compile a new version - I'm on vacation until mid of august and most of the time neither online nor with access to the development-system.
please be patient.


Set GTK UI/branding colors

This should not be too hard thanks to Adwaita.

In GTK inspector, I just set:
@define-color headerbar_bg_color #f15a22;
@define-color headerbar_backdrop_color @headerbar_bg_color;
@define-color headerbar_fg_color white;

@define-color accent_color #f15a22;
@define-color window_bg_color #f8f7f3;

To implement, we'd just need to GResource a style.css with the above.

Custom styles docs
Named colors docs

For example, we could do:

#12272a
#f15a22
#f8f7f3

For reference, we implemented that for a little while before reverting it over here:
https://github.com/endlessm/kolibri-installer-gnome/pull/10/commits/84230a596730e093d1838b8cf3380f9f26c4e6ff
https://github.com/endlessm/kolibri-installer-gnome/pull/10/commits/aee846d3959b806df571c841c3b4fd78d7847013
And indeed, we might find that this works better in the context of the Explore plugin since the top bar in the web app itself is a nice neutral colour :) However, things do get a bit awkward when we're looking at channels themselves, since those do have brightly coloured navigation bars.

Wouldn't this be stepping over the user's own theme preferences? In addition to potentially being seen as rude / annoying, I think it may affect accessibility settings.

@jprvita no, Adwaita as used in GTK4 and Flatpak is already designed in this way; Adwaita already uses its own styling and does not inherit any system "theme". And these variables are explicitly provided by Adwaita as part of the API for apps to use for more interesting styling. :)
Light/dark style is implemented as the FreeDesktop preference and could be considered here, as well as the high contrast style; I would just need to test with those preferences to ensure this is handled well.

@dylanmccall in that case, I would lean towards using the dark gray background color; it matches the default top bar when viewing a channel, and more closely matches what ChromeOS does with its titlebar as well.


Getting error while authenticating wunderline.

Steps to reproduce :

wunderline auth
Add Client ID
Add Access token

Error :
/usr/local/lib/node_modules/wunderline/wunderline-auth.js:50
    console.log('Thanks ' + body.name.split(' ')[0] + ', Wunderline has been authenticated.')
                                     ^

TypeError: Cannot read property 'split' of undefined
    at Request._callback (/usr/local/lib/node_modules/wunderline/wunderline-auth.js:50:38)
    at Request.self.callback (/usr/local/lib/node_modules/wunderline/node_modules/request/request.js:187:22)
    at emitTwo (events.js:87:13)
    at Request.emit (events.js:172:7)
    at Request.<anonymous> (/usr/local/lib/node_modules/wunderline/node_modules/request/request.js:1044:10)
    at emitOne (events.js:77:13)
    at Request.emit (events.js:169:7)
    at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/wunderline/node_modules/request/request.js:965:12)
    at emitNone (events.js:72:20)
    at IncomingMessage.emit (events.js:166:7)

Node version : node -v  v4.4.5

Are you running the latest version of wunderline? (There were some updates in error-handling recently)

Closing this due to missing feedback.
Feel free to reopen if you can reproduce this on a recent version @deepak365.


Working on Gethelp page

can I work on this?

Could you please describe it properly? I am familiar with HTML,CSS and js. I'd be happy to help.

Could you please assign this task to me.

@prachigarg19 You can take inspiration from Behance or dribble for the design. I am giving you the freedom to be creative and use the tech stack as per your knowledge. :)

can I work on this issue?

@prachigarg19  are u still working on this? If not I'll assign it to someone else.

@leesha19 You can start working on this issue, now

can i also work on this issue? I have sound knowledge of html, css and js.

Ok started👍
On Wed, Dec 15, 2021, 11:35 AM ayushi-2002 @.***> wrote:

can i also work on this issue? I have sound knowledge of html, css and js.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/2024-SANDHYA/Blood-Buddy/issues/5#issuecomment-994326381,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVC2RLQIRGMCRHPP6TMMC3DURAV27ANCNFSM5ED7HK5A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Feature request: multiple ftp servers

Now we have one config. How to create multiple configs with selection in connect process?
In notepad++ I can do it...

Notepad++ allows you to select FTP profiles and then switch to a local directory, with Atom you select the project first then connect.
What I use for this is open-recent, it allows me to quickly pick a project from a drop down then press connect.
https://atom.io/packages/open-recent

True, but when you are using same project with two remote servers ( testing, development ) this would be good. I will take care on it.

duplicate #122


Unable to solve type of a variable declared in the resource of try-with-resource

try (Scanner sc = new Scanner(System.in)) {
    sc.nextLine();
}

When I tried to solve the type of the scope of the MethodCallExpr (sc.nextLine()), a UnsolvedSymbolException was thrown. I think try-with-resource was not taken into account.

Yes, it is not taken into account. I will implement it. Thank you so much for reporting this one!

Implemented


Version propagates to shared cache before all assets are ready

During serial muti-server deployment, when an assert is to be cache busted, this will be the version requested in templates on servers before deployment has even occurred on that server.
I think this happens because all servers share the same memcached pool, what is the general approach to avoid this? Shouldn't the non-versioned file be requested as a fallback?

Moved to webpack


Add google tag manager

This PR resolves https://github.com/aqualinkorg/aqualink-app/issues/777
Adds google tag manager. Provide GTM ID in REACT_APP_GA_TAG_MANAGER_ID environment variable.

Curious if we should use a package instead to make sure it works well throughout the app. Could you deploy this to the programize endpoint and make sure it's being run on all pages?
See https://medium.com/finnovate-io/integrating-google-tag-manager-with-a-react-app-5a8584ee2251


List filter support

Filter immutably removes items from a list to assign to a new list or chain from.
Given a list of size N, return a list of size <N.
Filter is given a lambda that must return a boolean.
[1,2,3,4].filter(x => 2) // [3, 4]

Filter supports index and array parameters like map.
[1,2,3,4].filter((_, i, array) => i < array.length / 2) // [1, 2]

Filter should be able to collapse with map, reduce, and foreach.
Filter may be able to be collapsed too, TODO, explore this.
Filter may result in 0 items, causing reduce to fail when no initial value is given.

Love it. Collapsing would require we encapsulate the subsequent chains within the if. Straightforward?

Filter may result in 0 items, causing reduce to fail when no initial value is given.

This is not a new problem.

Need to think more about what it looks like to VTL, but I think we can just cut the evaluation short on false, which might mean wrapping in the if if we cannot do continue.

Filter may result in 0 items, causing reduce to fail when no initial value is given.

This is not a new problem.

Ohh, yeah, I was thinking that the evaluation was compile time, but its runtime. However, if we support flattening/collapsing of reduce with filter, we may need change the way the reduce works and when we evaluate for an empty list. (like hit the initializer statement until there is a first value instead of only on the first value, erroring if there was never a value.)

https://stackoverflow.com/a/7530420

[1,2,3,4].filter(item => item <= 2)

$set($list = [1,2,3,4])
#set($v1=[]) // list to write the filtered data into
#foreach($item in $list) // check each item
#if($item <= 2) // if the case is true
$util.qr($v1.add($item)) # add any resulting items to the list
#end
#end

[1,2,3,4].filter(item => {
    const v = item % 2;
    return v == 0
})

$set($list = [1,2,3,4])
#set($v1=[]) // list to write the filtered data into
#foreach($item in $list)
$set($v = $item % 2)
#if($v == 0)
$util.qr($v1.add($item))
#end
#end

[1,2,3,4]
    .map(item => item % 2)
    .filter(v => v == 0)

$set($list = [1,2,3,4])
#set($v1=[]) // list to write the filtered data into
#foreach($item in $list)
$set($v = $item % 2)
#if($v == 0)
$util.qr($v1.add($v))
#end
#end

[1,2,3,4]
    .filter(item => item >= 2)
    .map(item2 => item % 2)

$set($list = [1,2,3,4])
#set($v1=[]) // list to write the filtered data into
#foreach($item in $list)
#if($item == 0)
#set($item2 = item % 2)
$util.qr($v1.add($item2))
#end
#end

[1,2,3,4]
    .filter(item => item >= 2)
    .map(item2 => item2 % 2)
    .reduce((acc, item3) => acc + item3, 0)

$set($list = [1,2,3,4])
#set($v1=0) // list to write the filtered data into
#foreach($item in $list)
#if($item >= 2)
#set($item2 = $item) # need to rename to what map expexts
#set($item3 = item2 % 2)
$set($acc = $v1)
$set($acc = $acc + item3)
$set($v1 = $acc)
#end
#end

[1,2,3,4]
    .map(item => item % 2)
    .filter(item2 => item2 == 0)
    .reduce((acc, item3) => acc + item3, 0)

$set($list = [1,2,3,4])
#set($v1=0) // list to write the filtered data into
#foreach($item in $list)
#set(item2 = $item % 2)
#if($item2 == 0)
#set($item3 = $item2)
$set($acc = $v1)
$set($acc = $acc + item3)
$set($v1 = $acc)
#end
#end


Use S2N_IO_ERR for all errors but EAGAIN

This changes all s2n I/O functions to set s2n_errno to S2N_ERR_IO
for failures in the underlying I/O syscalls. This does not include
EAGAIN for nonblocking fds. This simplifies caller error handling.
Previously multiple error causes returned without setting s2n_errno.

Should we also add something like S2N_ERR_BLOCKED for the blocked case? That way we can be consistent with setting s2n_errno for all -1 return values.

Added a commit to set s2n_errno to S2N_ERR_BLOCKED for failures due to blocking. After this change, all external s2n function failures will set s2n_errno before returning.


Chat: Add support for cody.chat.preInstruction in the new preamble

This adds support for the cody.chat.preInstruction setting in simplified chat, especially important now we have a "Chat Settings" button in the top of the chat editor:

[x] Get it working
[ ] Tests

Test plan

Edit the setting
Type a message

@beyang @dominiccooney @abeatrix before I go adding tests… does this approach look sound, or would you prefer it another way?

@dominiccooney I've just added some tests, if you could quickly give it a re-review


Advanced Code Blocks section references incorrect value "sushi.geo.json"

Describe the bug
Codeblock references incorrect value - "sushi.geo.json" should be "geometry.sushi".
To Reproduce
Steps to reproduce the behavior:

Go to https://learn.microsoft.com/en-us/minecraft/creator/documents/advancedcustomblocks#behavior-pack
Scroll down to Behavior Pack JSON code block
Codeblock references sushi.geo.json which is incorrect

Expected behavior
Code block snipppet should be
"minecraft:geometry": "geometry.sushi",

Screenshots

Thanks for the catch! Error is fixed and should be available after the next release.


Failure message on ESP IDF 5.1.4

Hi,
Im using this library to update a quite few items to the firebase RTDB, whenever I run the code i recive the message, [111354][E][NetworkClient.cpp:315] setSocketOption(): fail on 0, errno: 9, "Bad file number

or when I start the esp fresh I get this -
[ 11086][E][NetworkManager.cpp:130] hostByName(): DNS Failed for 'dcan-e1c1c-default-rtdb.europe-west1.firebasedatabase.app' with error '-54'
[ 29361][E][NetworkClientSecure.cpp:159] connect(): start_ssl_client: connect failed: -1
not sure on how to counter this, any help or is this normal?

Hi @JacobEPTechnologies421 -- It seems like the issue you're experiencing is related to network connectivity rather than the Arduino Firebase library itself, as these errors typically occur with ESP devices due to DNS, socket, or SSL/TLS connection problems. I haven't encountered this specific issue before. Could you please share more details about the MCU and IDE you're using? Additionally, if possible, sharing your code would help in debugging the issue further.

Hi,
thank you for getting back to me! I am using VSC with esp idf 5.1.4 with esp32 c3 mini dev board,
the library takes so much in updating to database, well you can troubleshoot with the code below,
#include <stdio.h>
#include "Arduino.h"
#include "Wifi.h"
#include "Firebase.h"
#include "driver/twai.h"
#define WIFI_SSID ""
#define WIFI_PASSWORD ""
#define REFERENCE_URL ""
#define CAN_TX_GPIO GPIO_NUM_4
#define CAN_RX_GPIO GPIO_NUM_5
Firebase fb(REFERENCE_URL);
String batteryCAN[8]   = {};
String motorCAN[8]     = {};
char batteryCANString[50];
bool dataReceived = false; // Flag to check if data is received
// Function to initialize the TWAI driver
void initTwai(void) {
twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT(CAN_TX_GPIO, CAN_RX_GPIO, TWAI_MODE_NORMAL);
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_250KBITS();
twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();
// Install TWAI driver
if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) {
    printf("Driver installed\n");
} else {
    printf("Failed to install driver\n");
    return;
}

// Start TWAI driver
if (twai_start() == ESP_OK) {
    printf("Driver started\n");
} else {
    printf("Failed to start driver\n");
    return;
}

}
// Task to read CAN messages
void readCAN(void *pvParameters) {
while (true) {
twai_message_t message;
if (twai_receive(&message, pdMS_TO_TICKS(3000)) == ESP_OK) {
printf("Message received\n");
        // Handling the received message
        switch (message.identifier) {
            case 0x18205FE5: {
                printf("Handling message with ID 18205FE5\n");
                batteryCAN[0] = message.data[0];
                batteryCAN[1] = message.data[1];
                batteryCAN[2] = message.data[2];
                batteryCAN[3] = message.data[3];
                batteryCAN[4] = message.data[4];
                batteryCAN[5] = message.data[5] * 10;
                batteryCAN[6] = message.data[6] * 10;
                batteryCAN[7] = message.data[7] * 10;
                snprintf(batteryCANString, sizeof(batteryCANString), "%u %u %u %u %u %u %u %u",
                message.data[0], message.data[1], message.data[2], message.data[3], message.data[4], message.data[5], message.data[6], message.data[7]);
                printf("Concatenated String: %s\n", batteryCANString);
                dataReceived = true; // Set the flag to indicate data is available
                break;
            }
            case 0x18215FE5: {
                printf("Handling message with ID 18215FE5\n");
                motorCAN[0] = message.data[0];
                motorCAN[1] = message.data[1];
                motorCAN[2] = message.data[2];
                motorCAN[3] = message.data[3];
                motorCAN[4] = message.data[4];
                motorCAN[5] = message.data[5] * 10;
                motorCAN[6] = message.data[6] * 10;
                motorCAN[7] = message.data[7] * 10;
                dataReceived = true; // Set the flag to indicate data is available
                break;
            }
            default: {
                printf("Unknown message ID: %X\n", (unsigned int)message.identifier);
                break;
            }
        }
    } else {
        printf("Failed to receive message\n");
    }
}
vTaskDelay(pdMS_TO_TICKS(10));

}
// Task to push CAN data to Firebase
void pushCAN(void *pvParameters) {
while (true) {
    Serial.println("Call Started for push data at: ");
    String timenow=  fb.getString("DuCan/Saildrive/1200/Status/LastSeen");
    Serial.println(timenow);
    // Check if data is received and batteryCAN array is not empty,
    if (dataReceived && sizeof(batteryCAN)!=0) {
        fb.setInt("DuCan/Saildrive/1200/Status/Online", 1);
        fb.setString("DuCan/Saildrive/1200/Status/LastSeen", timenow);
        fb.setString("DuCan/Saildrive/1200/Battery/SOC", batteryCAN[0]);
        fb.setString("DuCan/Saildrive/1200/Battery/HighestCellTemperature", batteryCAN[1]);
        fb.setString("DuCan/Saildrive/1200/Battery/LowestCellTemperature", batteryCAN[2]);
        fb.setString("DuCan/Saildrive/1200/Battery/HighestCellVoltage", batteryCAN[3]);
        fb.setString("DuCan/Saildrive/1200/Battery/LowestCellVoltage", batteryCAN[4]);
        fb.setString("DuCan/Saildrive/1200/Battery/rDCL", batteryCAN[5]);
        fb.setString("DuCan/Saildrive/1200/Battery/rVoltage", batteryCAN[6]);
        fb.setString("DuCan/Saildrive/1200/Battery/rCurrent", batteryCAN[7]);
        fb.setString("DuCan/Saildrive/1200/Battery/LVVolatge", motorCAN[0]);
        ///////////////////////////////////////////////////////////////
        //fb.setInt("DuCan/Saildrive/1200/Motor/Motor_RPM", motorCAN[1]);
        fb.setString("DuCan/Saildrive/1200/Motor/Mototr_Current", motorCAN[2]);
        fb.setString("DuCan/Saildrive/1200/Motor/Motor_Voltage", motorCAN[3]);
        //fb.setInt("DuCan/Saildrive/1200/Motor/LegATemp", motorCAN[4]);
        //fb.setInt("DuCan/Saildrive/1200/Motor/LegBTemp", motorCAN[5]);
        //fb.setInt("DuCan/Saildrive/1200/Motor/LegCTemp", motorCAN[6]);
        //fb.setInt("DuCan/Saildrive/1200/Motor/Motor_Temp1", motorCAN[7]);

        printf("Pushed data to Firebase\n");
        dataReceived = false; // Reset the flag after pushing data
    }
    else{
        fb.setInt("DuCan/Saildrive/1200/Status/Online", 0);
        printf("No data pushed to Firebase\n");
    }
    // Delay for 10 seconds
    fb.setInt("DuCan/Saildrive/1200/Status/Online", 0);
    vTaskDelay(pdMS_TO_TICKS(10000));
}

}
extern "C" void app_main(void) {
initArduino();
Serial.begin(115200);
Serial.println("Hello World");
// Set up WiFi
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(1000);

Serial.print("Connecting to: ");
Serial.println(WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

while (WiFi.status() != WL_CONNECTED) {
    Serial.print("-");
    delay(500);
}

Serial.println();
Serial.println("WiFi Connected");

// Initialize TWAI
initTwai();

// Create the FreeRTOS tasks
xTaskCreate(readCAN, "readCAN", 4096, NULL, 10, NULL);
xTaskCreate(pushCAN, "pushCAN", 4096, NULL, 8, NULL);

}

@JacobEPTechnologies421 -- The latency issue you are encountering can easily be solved if you update the library to version 1.0.1, which includes new methods: setJson(), pushJson(), getJson(). By replacing the individual setString() instances with one setJson() instance, you can avoid a lot of delay. Take a look at the JSON example code. Let me know if that solves your problem.

still the issue persits,
[137857][E][NetworkClient.cpp:315] setSocketOption(): fail on 0, errno: 9, "Bad file number"--my internet connection is right as far as i can understand Int values are written with no issues but when i try to get string the issue rises up

Hi @JacobEPTechnologies421 -- It could be an issue with WiFiClientSecure. You can place the following line under #include <WiFiClientSecure.h> to verify that it is included in the code.
#error "It is included"
This should raise an error if the code is getting into the correct if macro.

I am assuming the issue has been resolved. I'll go ahead and close this for now. If the problem persists or you have any other questions, feel free to reopen the issue or create a new one. Thanks!


MINOR: Update unit/integration tests to work with the IBM Semeru JDK

The IBM Semeru JDK use the OpenJDK security providers instead of the IBM
security providers so test for the OpenJDK classes first where possible
and test for Semeru in the java.runtime.name system property otherwise.
Use a real but empty KafkaThread object in KafkaProducerTest instead of
a mock because the Semeru Thread class implementation has some extra
checks that are called and fail when the mock is used.
Tested with IBM and Temurin JDKs. Added a unit test for the new Java.isIbmSemeru() method.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Thanks for the review @Kvicii. The CI seems to have failed due to a server error and looks stuck. Could the build be restarted?

Hi @Kvicii, I have rebased this PR to trigger the tests. It looks like everything that ran passed except for 2 instances of
Build / JDK 8 and Scala 2.12 / testFencedLeaderRecovery – org.apache.kafka.connect.integration.ExactlyOnceSourceIntegrationTest

From a quick look at other PR tests, I think these are just flakey eg. https://ci-builds.apache.org/blue/organizations/jenkins/Kafka%2Fkafka-pr/detail/PR-12396/3/pipeline/14
Would it be possible to merge this PR? Let me know if there is anything else I need to do.

I have rebased this PR to latest trunk. I don't think the tests that failed are related to these changes. Would it be possible for someone to review?

TFTR @cadonna, I've updated the changes according to your feedback.

Thanks @mimaison!


Avoid /ts what and various when single type of item

Is your feature request related to a problem?
Wanted to make a server farm for earning diamonds by selling carrots and potatoes. I set the price to 128 Carrots for 1 Diamond.
This results in the sign showing 1 DIAMOND > Use '/ts what', and right-clicking the sign (without enough carrots)  gives the text You do not have 128 various!, which is a bit confusing when it's just one kind of item for trade.
Describe the solution you'd like.
Would be great if the sign and the message would try to avoid using various and Use '/ts what' when there's only a single kind of item. Could also take the amount into account, maybe could be configurable, with a default of for example up to 3 digits.
This way, you could have trades for multiple stacks of the same item, while still having easy to read signs and messages in chat. 👍
Describe alternatives you've considered.
One can add another sign next to the shop-sign and type it out manually, or use an item frame with the item, or something like that, but would be so much easier and less fiddly if the plugin would show it directly instead.
Agreements

[X] I have searched for and ensured there isn't already an open issue regarding this.
[X] I have ensured the feature I'm requesting isn't already in the latest supported TradeShop build.
[ ] I have asked the Developers and they have confirmed that it is not already in development.

Other

This has already been changed in #111 and should be out in the next couple days.