Clarification on Zfinx behavior for subnormal operands and results needed

The NEORV32 documentation Zfinx extension documentation  states:
Subnormal numbers (exponent = 0) are flushed to zero setting them to +/- 0 before entering the FPU’s processing core. If a computational instruction (like fmul.s) generates a subnormal result, the result is also flushed to zero during normalization.
Would it be possible to be add more detail on subnormal flushing, specifically:

How are the fflag bits set when subnormal inputs are seen, or when subnormal results are flushed to zero. A precise specification for each instruction class (Computational, Conversion, Compare and Clasify) would be helpful.
For input flushing, it simply states flushed...before entering the FPU’s processing core, but exactly which instruction classes are implemented in the FPU core, and thus input flushing applies to them, is not clear. Obviously, this applies to the Computational instruction class, but an explicit specification of whether this also applies to the Conversion, Compare and Clasify instruction classes would be helpful.

Thanks!
Jim Straus
Imperas

@jstraus59 from my reading of the code the first step in the FPU is to determine the "class" of a given float to extract +/- inf, NAN etc. before passing them further into the FPU. During this intake process if an number with exp 0 is seen the mantissa just gets set to 0, resulting in any subnormal being converted to a 0. E.g a subnormal A + subnormal B gets converted to 0.0 + 0.0.
As this a pre-processing step it happens disregarding instruction class. I'll do a bit more digging but thats the gist of it.
Currently the fflag bits are .. not functional in general which include subnormals. This is on my agenda to fix, so assume that fflags will be functional going forward.

@mikaelsky Terrific - thanks for the info. I will assume that inputs to the Conversion and Computation instructions have their subnormal inputs flushed to 0.
I still need a couple details clarified, please (sorry but I have never done RTL design - just modeling of processor architectures - so it would be difficult for me to figure this out directly from the RTL myself):

I am wondering still about the FCLASS instruction, which simply reports the type of floating-point value that is in a register. One of the things it detects is whether the value is a subnormal, so it would not really make sense for subnormal inputs to be flushed for the FCLASS instruction, but if FCLASS is implemented within the FPU it sounds like they would. Could you please confirm?

I am assuming that subnormal inputs and results are actually flushed to +/-0, not just +0. Could you please confirm that, also?

@jstraus59 good question. Currently deep into fixing an issue with misaligned branches being out of spec.
From a quick scan FCLASS currently never reports a denorm/subnormal class:
op_is_denorm_v := '0'; -- FIXME / TODO -- op_e_all_zero_v and (not op_m_all_zero_v); -- subnormal
Correct the on the input path Rs1 and Rs2 gets converted to the equivalent of a +/- 0.0. Basically of EXP == 0 set MANT = 0;
op_data(0)(22 downto 00) <= (others => '0') when (rs1_i(30 downto 23) = "00000000") else rs1_i(22 downto 0); -- flush mantissa to zero if subnormal
For the output side a subnormal result gets converted to +/- 0.0 as the result sign gets preserved and the EXP and MANT both get set to 0.
elsif (ctrl.flags(fp_exc_uf_c) = '1') or -- underflow
(sreg.zero = '1') or (ctrl.class(fp_class_neg_denorm_c) = '1') or (ctrl.class(fp_class_pos_denorm_c) = '1') then -- denormalized (flush-to-zero)
ctrl.res_exp <= fp_single_pos_zero_c(30 downto 23); -- keep original sign
ctrl.res_man <= fp_single_pos_zero_c(22 downto 00);

Ok - that answers my questions about everything but the fflags behavior.
I will leave the issue open as a reminder to document the precise fflags behavior w.r.t. subnormals  once that implementation is finished.
Thanks @mikaelsky!

Hey everyone! Sorry for the late reply... So thanks @mikaelsky for jumping in! :wink:
Right now all input operands are being flushed-to-zero if they are subnormal before entering the actual FPU core. Hence, @mikaelsky is right saying that this flush-to-zero is applied to all instruction classes.
However, I think you are right that this does not make much sense for the fclass instruction. I'll fix that.
I just saw there is a bug in the wiring of the exception flags output. I'll also fix that and I will also add some test cases to the floating-point tests to cover some simple conditions that should raise FPU exceptions.

@stnolting working on a misalign branch issue. Basically the core is subtly out of spec. Thought I had an "easy" fix, but JALR is not behaving. Basically any misalignment is supposed to be captured by the offending branch and trapped without updating the link register nor fetching from the misaligned PC.
I also have a set of MTVAL spec updates from various traps to help with spec compliance. Unsure when it makes sense to drop them in, kinda waiting for the 1.9.1 release before trying to apply updates.
On top I've added an RVVI trace port to help validate against an ISA like Imperas. This is where we've found the above mentioned spec issues.

Oh, sorry for overlooking that earlier comment... 🙈
I think you are right. If the CPU encounters a misaligned instruction fetch the link register will still be written (for link instructions) and the pipeline's front end will still try to read instruction data from that unaligned address... I will have a closer look at this. Thanks for finding this bug!

I have opened #734 to fix this misalignment-issue.
@mikaelsky

On top I've added an RVVI trace port to help validate against an ISA like Imperas. This is where we've found the above mentioned spec issues.

I'm curious... Can you say something more about that verification setup?
Please let us know if there are any more spec-incompatibilities 🙈😅

@stnolting we are "working over the core" so to speak using an system from Imperas, https://www.imperas.com/imperas-riscv-solutions.
Basically we are doing what I've always done when validating processor cores. We compare the internal states of the processor after every instruction versus a golden reference model from Imperas.
This means when any instruction is "retired" we check:

Are the correct processor registers updated, and are we not missing anything.
Is the PC correct
Is the opcode correct
Is the next PC correct
Have any CSRs been updated and if so are they the right ones.
Have any memories been read/written from and is the address and data correct.

We do this for every piece of code we run, like the entire riscv-arch test suite.
To do these compares we yank out a lot of information from the core internals and provide it to the compare system. This is what the RVVI trace port is for.
In my local branch I have a parameter that allows us to enable/disable the functionality, as it costs some logic for signal delays n such.
I have a few other custom parameters we use like: regfile_reset_en to turn on reset for the regfile and boot_address_en to allow us to feed an external boot address to the core to support stuff like application restore functions.

@mikaelsky Thanks for the mention and the link to Imperas.  Actually a more direct link to the ImperasDV processor verification tools is here: https://www.imperas.com/imperasdv.

@mikaelsky
How do you "export" all this data from the core? Do you use something like the RISC-V Formal Interface (RVFI)? Or did you actually implement a full-scale trace port? I know there is a RISC-V proposal/extension for that, but I am not sure in what state this is...

regfile_reset_en

We have something similar now: https://github.com/stnolting/neorv32/pull/736 :wink:

and boot_address_en to allow us to feed an external boot address to the core to support stuff like application restore functions.

We are discussing something like this, too (-> https://github.com/stnolting/neorv32/issues/720).

We implemented the RVFI trace port. I did explore a full blown trace port but ended up punting on that for this particular iteration.
When my github is up to tip of trunk I can add it in as a separate pull/push request. I do have a generic to disable the whole thing as it adds logic to retime the signals.
I noticed #736. Appreciated :)
For the boot address I have a generic/parameter to enable/disable the feature. Default boot is still 0xFFFF_0000. There are some additional feature changes here and there to enhance some features like support clock gating for sleep mode.
I also have a few more cases for mtval in the trap controller to be more aligned to the spec. Granted the spec is "annoying" in that it says "if mtval is not 0 then it has by XYZ".
          -- NORMAL trap entry: write mcause, mepc and mtval - no update when in debug-mode! --
          -- --------------------------------------------------------------------
          if (CPU_EXTENSION_RISCV_Sdext = false) or ((trap_ctrl.cause(5) = '0') and (debug_ctrl.running = '0')) then
            -- trap cause --
            csr.mcause <= trap_ctrl.cause(trap_ctrl.cause'left) & trap_ctrl.cause(4 downto 0); -- type & identifier
            -- trap PC --
            csr.mepc <= trap_ctrl.epc(XLEN-1 downto 1) & '0';
            -- trap value --
            case trap_ctrl.cause is
              when trap_brk_c | trap_iaf_c =>
                csr.mtval <= trap_ctrl.epc(XLEN-1 downto 1) & '0';
              when trap_lma_c | trap_laf_c | trap_sma_c | trap_saf_c => -- misaligned load/store address or load/store access error
                csr.mtval <= mar_i; -- faulting data access address
              when trap_iil_c => -- illegal instruction
                csr.mtval <= execute_engine.ir; -- faulting instruction word
              when trap_ima_c => -- instruction misaligned
                -- Set mtval to be equal to the misaligned address
                csr.mtval <= execute_engine.pc_illegal_branch;
              when others => -- everything else including all interrupts
                csr.mtval <= (others => '0');
            end case;
            -- update privilege level and interrupt enable stack --
            csr.privilege    <= priv_mode_m_c; -- execute trap in machine mode
            csr.mstatus_mie  <= '0'; -- disable interrupts
            csr.mstatus_mpie <= csr.mstatus_mie; -- backup previous mie state
            csr.mstatus_mpp  <= csr.privilege; -- backup previous privilege mode
          end if;

There is also a discussion to be had around mstatus_mpp reset value. Right now its reset to 0 which is USER mode independent of whether USER mode is enabled or not. In principle it should reset to priv_mode_m_c as we come out of reset in machine mode.
For now I have this little add-on, but would probable just change it to default to '1' or machine mode out of reset.
      if (CPU_EXTENSION_RISCV_U = false) then
        csr.mstatus_mpp   <= '1';
      else
        csr.mstatus_mpp   <= '0';
      end if;

Reviewing the comments about the original subject (subnormal behavior), there are still a couple issues that I don't think have been explicitly answered:

@mikaelsky wrote "Currently the fflag bits are .. not functional in general which include subnormals. This is on my agenda to fix, so assume that fflags will be functional going forward."
Still need to know the precise behavior of fflags w.r.t. denormal flushing. I don't think this is defined as part of any spec (AIUI the IEEE spec does not address subnormal flushing at all.)
A precise definition of which instructions "enter the actual FPU core" is needed. Currently I am assuming the following instructions are executed in the FPU core, and thus perform denormal flushing of inputs and results:
fadd.s fsub.s fmul.s fmin.s  fmax.s  feq.s  flt.s  fle.s fcvt.w.s  fcvt.wu.s  fcvt.s.w  fcvt.s.wu
And these, that simply manipulate bits in a floating point value, do not:
fsgnj.s fsgnjn.s fsgnjx.s fclass.s
Please advise if this is accurate.
3, A comment indicated that the fclass instruction has a FIXME note for the denormal flag:
op_is_denorm_v := '0'; -- FIXME / TODO -- op_e_all_zero_v and (not op_m_all_zero_v); -- subnormal
Can I assume that is going to be fixed?

Thanks

The fflag bits are currently not correctly implemented and need debugging. This is an ongoing effort. Assume the fflags are correct and functional, as that is the intended state.
Not sure why its important whether fsgnj.s, fsgnjn.s, fsgnjx.s and fclass.s enter the FPU core or not? Practically for the neorv32 implementation ALL Zfinx instructions pass into the FPU module. This allows the RTL to be more easily removed when Zfinx isn't used. This is an important implementation feature for the neorv32 core. For the modelling effort it can assumed that these instructions work as defined in the Zfinx extension. If it easier for the modelling effort to "assume they do not enter the FPU" assume away. As long as they will flag an illegal instruction when the Zfinx extension is disabled.
This will be fixed yes.

The questions seems to have been answered and the model updated to mach the core behavior. I will close this issue as its been resolved on our end.
Thank you.

@mikaelsky thank you very much for all your work on this! :)


Update brapi-resources.json for MGIS update

Provides the new BrAPI v2 endpoint of MGIS.

This file is mostly deprecated/obsolete now
please use https://brapi.org/servers/submit for making changes to servers
That form sends the update to me for review, then easily adds it to the server site https://brapi.org/servers
If you need the up-to-date version of this JSON file, you can find it here https://brapi.org/json/brapi-resources.json


Zipping a pdf file

Hi,
Thanks for this super helpful library!
I have an API that accepts transaction data and generates two files: 1 excel file and 1 pdf file. I'd like to zip these together into a folder for the client to download. I've tried using node-zip and node-archiver. However, when I download and open the zip file, I see that the pdf file is 0kb (can't open), while the excel file works fine. Any tips?
Thanks!
Joseph

Hi,
Thanks for this super helpful library!
I have an API that accepts transaction data and generates two files: 1 excel file and 1 pdf file. I'd like to zip these together into a folder for the client to download. I've tried using node-zip and node-archiver. However, when I download and open the zip file, I see that the pdf file is 0kb (can't open), while the excel file works fine. Any tips?
Thanks!
Joseph

hi
Did you solve this problem?


Fix ceph ansible local

This pull request fixes https://github.com/Tendrl/usmqe-setup/issues/43 by allowing usmqe user to become root via sudo and using this power to execute ceph-ansible role locally under root user.

@dahorak I updated the pull request.


Minor cleaning

Change some let to const in ServiceRequest
Pull target element from event instead of using document.getElementById in ServiceRequest > handleFilePath

Thank you!


segments multiplier meaning

What is the purpose of the "64" in this line:
segments = [slogan_tkn] * 64
If I change that, what effect would it have?

64 is just an arbitrary value that I set for the maximum sequence length when generating slogans. This means that the total length (context length + slogan length) should not exceed 64.
If you want to generate longer slogans (or use larger contexts) then you might want to increase this value, but for most use cases 64 should be fine.


Adding OpenContainer image-spec labels to OracleLinuxDeveloper images

These labels are used by GitHub Container Registry as well as third-party registry and orchestration tools.
Also fixes a typo bug in oraclelinux7/python/3.6-oracledb/Dockerfile.
Signed-off-by: Avi Miller<EMAIL_ADDRESS>

Ah, well spotted. Fixed.

On the version, because these images are combinations of a particular Oracle Linux version with a particular language version, I didn't want to confusing things by only specifying one. I do recommend other images use version when the container only contains a single product/package/project, etc.


RTTDisconect Addition

There are 9 commits here... this need to be squashed/cleaned up. I prefer to see 1 commit for such simple code change.

not important, but the title has mistake: RTTDisconect Addition, Disconnect, 2 'n'


Incorrectly parsing @types/ import

Describe the bug
Hello :)
I've got two issues with how swc transpile typescript code :) Took me a while to figure out what's wrong and I'm not sure how I can reach a solution I could actually deploy.
I guess it's related to swc not type checking and therefore that we can't do much for now but I'm trying anyway :)
Sample code is extracted from a nestjs app wrote in typescript, using @nest/support-express. Only particularity of this is that nestjs heavily relies on decorator. Which is why we opt to try to get faster  build with swc.
pnpm is our package manager - no idea if it's relevant or not.
This is a shortened package.json that we have. There is not much in but it's important:
{
  "name": "@acme/api",
  "dependencies": {
    "@nestjs/platform-express": "7.6.18"
  },
  "devDependencies": {
    "@types/express": "4.17.13"
  },

  "main": "build/main.js"
}

Input code
import { Injectable, NestMiddleware } from '@nestjs/common';
import { NextFunction, Request, Response } from 'express';

@Injectable()
export class ApmUserContextMiddleware implements NestMiddleware {
  use(req: Request, _: Response, next: NextFunction): void {
    return next();
  }
}

Config
{
  "$schema": "https://json.schemastore.org/swcrc",
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "tsx": true,
      "dynamicImport": false,
      "decorators": true
    },
    "transform": {
      "legacyDecorator": true,
      "decoratorMetadata": true
    },
    "target": "es2020",
    "loose": true,
    "externalHelpers": true
  },
  "minify": false,
  "module": {
    "type": "commonjs",

    // These are defaults.
    "strict": false,
    "strictMode": true,
    "lazy": false,
    "noInterop": false
  },
  "sourceMaps": true
}

Playground link
https://play.swc.rs/?version=1.3.23&code=H4sIAAAAAAAAA12OPQvCMBCG9%2FyK22yh4N4uFUFwsIPgLDU9ISW5pLlUC6X%2F3bSgVbfjvffjUcZZH2CEI7UoQ33TmEGFHE6qaTQ%2Ba48wwd1bA5uSot7yVlpjLG0Kod7hCodw6EkGZSmDM3Z9dM4HO0u8NuDgPDLHqCjXwSQV8TE3SV0zw86ZC6PfWwqx9wsk7mk0SIH%2FEUcB0DMmHrt83b%2FmH4QMKHblP6RpDg%2BrmiUM4DH0nhZbkhZRmsQkXlQa1x0fAQAA&config=H4sIAAAAAAAAA02PwY6DMAxE%2FyXaY1WqHjn3sD3wEZYxFJTEkW20pdX%2B%2BxpRYG%2FJaObN%2BB2%2BFB%2BUINThYVa0rqpROZ9XVY2Fzix9pT8oGE5hVAz1OxQQJVleOmeDp8dtLqQoQzG3mbpkMtEptHOGNOA9FRYLdQdRF5WQBRyvq%2B%2FXMwJZO5a0YCP1gPNtc%2B2wTWjIoAWDIw3Sk%2FMD6fVyvfiGyKy0BelpJBniN8VC%2F0rTkIdu3mclbqdIy4DlHKchp8R5VOepyYDHBeu34XbviPA6SJnv2Su5fBTvUp4EqYGy1f8BVqTtjn4BAAA%3D
Expected behavior
Two things are problematic here:
const _tsDecorate = require("@swc/helpers/lib/_ts_decorate.js").default;
So I need to add @swc/helpers as a PROD dependency... Which is strange considering @swc/core and @swc/cli are devDeps.
Also problematic, if you look at the .js.map file:
\nimport { NextFunction, Request, Response } from 'express';
The typescript code is not importing from express, it's importing from @types/express. tsc will get that and remove the import. swc won't, therefore, my build code expect to have the express package installed. It is not. Code fail :)
Actual behavior
I guess the @swc/helpers is required to help with decorators... But again, it's strange to have to set it up as a dependency just to get this one script...
Writing this issue, I found new doc about the fake express import that I need to try. Still, the behaviour might be questioned (or not).
Version
1.3.23
Additional context
Thanks for all the work ! I am really struggling with tsc build times and I surely hope that with time I'll be able to implement a fully functional build process using swc !

Not sure if I understood

swc won't, therefore, my build code expect to have the express package installed. It is not. Code fail :)

correctly. The repro you shared, it's output is
"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
Object.defineProperty(exports, "ApmUserContextMiddleware", {
    enumerable: true,
    get: ()=>ApmUserContextMiddleware
});
const _tsDecorate = require("@swc/helpers/lib/_ts_decorate.js").default;
const _common = require("@nestjs/common");
let ApmUserContextMiddleware = class ApmUserContextMiddleware {
    use(req, _, next) {
        return next();
    }
};
ApmUserContextMiddleware = _tsDecorate([
    (0, _common.Injectable)()
], ApmUserContextMiddleware);

Which does not have references to express correctly. What actually fails?

No, the express import is generated in the source file .map.js (which doesn't appear in the playground) but I've put the sample code in the OP

So, reading your messages, I figured most of my issue out. Thanks for that.
For @swc/helpers, it's the option externalHelpers: true -> it's actually written in the doc. I somehow missed it.
And I focused on the sourcemap wrongly... they are not used in prod but it's the first place where I finally found express so it grasp my focus...
But: check in this playground
Express is indeed required... No idea why.
I found that the option decoratorMetadata: true is responsible for that. By setting it to false, it disappear .
So I still have some test to perform but it's starting to look good :)

that's due to metadata output differences looks like.
    __metadata("design:paramtypes", [
        typeof _express().Response === "undefined" ? Object : _express().Response
    ])

Ok, I think I've got the bug.
Paste this code in the playground - it'll require express:
import { Injectable, NestMiddleware, Post } from '@nestjs/common';
import { NextFunction, Request, Response } from 'express';

@Injectable()
export class ApmUserContextMiddleware implements NestMiddleware {
  @Post()
  use(req: Request, _: Response, next: NextFunction): void {
    return next();
  }
}

Now the exact same code w/o @Post:
import { Injectable, NestMiddleware, Post } from '@nestjs/common';
import { NextFunction, Request, Response } from 'express';

@Injectable()
export class ApmUserContextMiddleware implements NestMiddleware {
  use(req: Request, _: Response, next: NextFunction): void {
    return next();
  }
}

And it won't.
It require express to generate this code:
 __metadata("design:paramtypes", [
        typeof _express().Request === "undefined" ? Object : _express().Request,
        typeof _express().Response === "undefined" ? Object : _express().Response,
        typeof _express().NextFunction === "undefined" ? Object : _express().NextFunction
    ])

So my current situation is that I need metadata for the transpiled code to work. But it also break the same code in other parts.
Any advice on how I could handle the situation ?

That's the solution I found: import type { Response } from 'express';
Like this, it doesn't require express even with decoratorMetadata: true
So I can close this issue, is there a bug or not ? I don't know... I think a rule of thumb would be to never require a package which is not in dependencies. I can't think of a reason to do so but may be there is...
Anyhow, thanks for the help ! We'll finally be able to enjoy fast build !


[SFSRAP-26] Additional assembly redirects to fix continued binding fa…

…ilures.

Added all the Microsoft.CodeAnalysis.* references just to be sure.

LGTM


use arbtt on linux

done in https://github.com/seanbreckenridge/HPI/commit/d31422fbb912af6ad9d4afac8daa7061ca2d3671
https://github.com/seanbreckenridge/dotfiles/commit/83297be879ce8e51eb7dacd7b3b91c3350a3302b


Please upgrade mqtt.js

Here is the bug report of MQTT.js which is bumped v4.2.1: https://github.com/mqttjs/MQTT.js/issues/1152.
And here is the bug fix PR: https://github.com/mqttjs/MQTT.js/pull/1162.
I hope you guys can follow the upstream of MQTT.js and fix bug asap.

Hi, thanks again! It is now fixed at https://github.com/emqx/MQTTX/releases/tag/v1.6.0.


Wmmc88/double gearbox casing print

lol extruder crash?

Combination of me reenabling mesh leveling and this print being literally the entirety of the bed


Export shadow

The __init__.py overwrites the export of the Checker.py module. Making it impossible to import the Checker module.
Now
from howfairis import Checker # class
from howfairis.Checker import Checker # class

Without Checker in all in __init.py
from howfairis import Checker # module
from howfairis.Checker import Checker # class

One solution would be to use lowercase for modules as specified in PEP8.

we will follow pep8 conventions.
we change __init__ imports like:
from howfairis.checker import Checker

to import the module:
from howfairis import Checker

PR #149 was merged, closing


Use type information to simplify membership tests

Closes #723
Uses type information to simplify membership tests such as x \in BOOLEAN, x \in Int, x \in STRING, x \in Seq(...).
This simplifier rewrites the above tests to TRUE, if the LHS type is matching the set.

Codecov Report

Merging #1406 (33c771a) into unstable (52b503e) will increase coverage by 0.03%.
The diff coverage is 86.66%.

@@             Coverage Diff              @@
##           unstable    #1406      +/-   ##
============================================
+ Coverage     75.37%   75.41%   +0.03%
============================================
  Files           337      338       +1
  Lines         10986    11001      +15
  Branches        541      513      -28
============================================
+ Hits           8281     8296      +15
  Misses         2705     2705

Impacted Files
Coverage Δ

...t/forsyte/apalache/tla/pp/passes/OptPassImpl.scala
0.00% <0.00%> (ø)

...syte/apalache/tla/pp/SetMembershipSimplifier.scala
91.66% <91.66%> (ø)

...in/scala/at/forsyte/apalache/tla/lir/Builder.scala
99.07% <100.00%> (+<0.01%)
:arrow_up:

...ala/at/forsyte/apalache/tla/lir/TypedPredefs.scala
77.27% <100.00%> (+0.52%)
:arrow_up:

...he/io/annotations/parser/CommentPreprocessor.scala
95.18% <0.00%> (+2.40%)
: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 52b503e...33c771a. Read the comment docs.

Well here we go... there was a bug in the abstraction (membership test with Nat), and we missed it in code review. It was obvious in the original exhaustive enumeration. PTAL.
@Kukovec @shonfeder Do you think this is easier to read and maintain than my original solution?

I don't know how we missed Nat, but rather than omitting it, why not just translate it to x >= 0?

I don't know how we missed Nat, but rather than omitting it, why not just translate it to x >= 0?

At least the OOPSLA encoding already does this, is there any benefit to doing it early?

I don't know how we missed Nat, but rather than omitting it, why not just translate it to x >= 0?

At least the OOPSLA encoding already does this, is there any benefit to doing it early?

I don't remember the details, but we probably do it only for state variables. You can write something like this in TLA+
\E i \in Int:
  i \in Nat => ...

LGTM, though I think you could get away with not doing any checks on the type tags.

Right, I was wondering about it, but was unsure if me might use this in a different context where Snowcat isn't run first.

Great! This PR transforms basic types. How about seq \in Seq(Int) and fun \in [Int -> Int]. Perhaps, something could be done about records and tuples too.

@konnov This already does seq \in Seq(_) as well! I've recorded the other ideas in #723, we can keep expanding the list there.


Whoops, make 'noms stats' work for HTTP

PTAL verified locally that this works against noms serve now


Add ingress tool

@Ca5e @RieksJ Adding the ingress tools for wikis

Nice to see non-TNOers contribute to the tools development.
This comment is only about necessary updates to the tev2-specifications repo. @Ca5e, @Michiel-s: could you do a review of the code?
Please reconsider the name of the tool. 'Ingress' sounds generic, but the tool only does (specific) wiki's. How about wiki-ingress?
Regarding additions to the tev2-specifications, I would expect to see:

[ ] in every text that you write as you create the files as mentioned in the other bulletpoints, to use term-refs for every term/concept that we have defined within TEv2. If you think a particular term should be defined (i.e., you find that you want to create a term-ref for a term for which the reference doesn't resolve/for which there is no terms-document), propose one by adding a file in the /docs/terms directory, the structure of which is similar to that of the other files in that directory.
[ ] In the spec-files section, add a file 41-ingressable-wiki-file.md, with a structure similar to the other file specifications in that directory. Its contents should enable a reader to determine what is, and what is not, an ingressable wiki file.
[ ] in the spec-tools section, add a file 31-wiki-ingress.md (if that's what the tool will be called), with a structure similar to the other tool specifications in that directory. Its contents should enable a reader that knows how to execute a program but is not a developer, to install and run the program from the commandline.
[ ] edit the configuration file documentation, and add a Tab Wiki Ingress (if that's what the tool is called). It contents should document all tool-specific fields in the config file (similar to the options on the command line) that the tool uses.
[ ] I'm starting to develop practical guides (there's only one right now) that aim to help tool-users not only to use the tools but also , but

[ ] add a file 21-wiki-setup, the contents of which should be readable by curators that want to create/organize a TEv2-enabled github/gitlab repo that uses the wiki-ingress tool. It would tell them not just the technical things to be arranged, but also that they would need to have some 'ingress procedure', i.e. their way of working for transferring the wiki pages into curated texts. Stuff like this may need to be discussed in ToIP/CTWG first.
[ ] add a file 22-wiki-authoring.md, the contents of which should be a readable for people in the ToIP CTWG meeting (e.g., Nicky), and they would then know how to structure the pages in a wiki that they already use for their purposes.

The observations below are my first observations, mostly from comparing the tool to the other tools within the repo.

Commander has the option to add certain text to help text. The other tools use this to display the help text in addition to the error when required options are missing. This way, executing a command without any options doesn't display an unwanted error trace.
Match the styling of the latest version of the other tools. The last few month I've changed some of the aspects of the Run.ts files. Things like removing the chalk dependency, noticing parse is executed twice on program, and editing how errors are thrown at the base level. In this sense the code is not wrong, but I would match these before integrating. This tool also still says The CLI for the Term Reference Resolution Tool.
View the existing utils package and possibly reuse some of that code. For instance using writeFile instead of the local saveToFile. Also reusing the logger that is used by all of the tools would be nice.
Move necessary options from config.yaml to __tests__/content/terminology-config.yaml. Although the actual automated test doesn't work yet, it would be nice to also add the ingress-wiki to this, so it can be run/tested in a similar manner.

@brianorwhatever: last week, the maintenance of the repo has officially been transferred to TNO's Semantic Treehouse (STH) development team, of which @Michiel-s is the group lead. When discussing this pull request, he mentioned that the STH dev-team welcomes contributions to the opern-source tools that they maintain, but there are a few rules for that.
One such rule is that a contribution for a new tool/feature must be of such a generic nature that it warrants its maintenance to be taken on by the STH dev team. The reason is that if people start adding all sorts of features, this would increase the maintenance burden of the dev team and it would soon become too much to handle.
Having looked a bit at this PR, the dev team thinks it is serves too specific a goal to warrant it becoming a part of the tev2 itself. The path that this tool should take in their opinion is that it should be maintained elsewhere, e.g., within the context of TOIP (as a TOIP repo), where it could then still use the TEv2 tools as they are just npm packages.
I suggest that based on this feedback, we should close this PR and take it to the CTWG group for discussing how to further proceed.

Closing this PR as per my previous comment.
If that's incorrect, pls. reopen it.


Images are not displaying in iOS APP after importing from slack

Everything seems fine (channels, messages, users etc) except for images on the iOS APP that can't be seen or downloaded.
Mac/Web client works perfect.

I uploaded an image from the iOS app but it is not showing either, so I guess the issue is not related to slack import.
The web client is still showing the appropiate thumbnail and access to the image is working.

Yeah, this is actually an unpleasant bug in the latest mobile app release with images in general; there should be a release fixing it in the next day or so.  Closing the issue since it's not a server bug and is already fixed in Git (just not released).


⚠ Bofrost.be has degraded performance

In 639307c, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 943 ms

Resolved: Bofrost.be performance has improved in cbbbcc6 after 9 minutes.


Fix archive removal.

Fix following error:

[D] STDERR: rm:
[D] STDERR: cannot remove ‘test/releases/20150320142407771/deploy.tgz’
[D] STDERR: : No such file or directory
[D] STDERR:

[D] REMOTE: cd test/releases/20150320142407771 && tar -xzvf deploy.tgz && rm test/releases/20150320142407771/deploy.tgz

You're right, the cleanup can be reduced to rm deploy.tgz.
It looks like your options.path is a relative path though? You'll want that to be the full path for cases where what you're deploying is not in the user's home directory.

Yes, I intentionally use relative path.
I use express.js, so I can put folder anywhere and home dir is the simplest option.
But I don't want to explicitly specify username, because I want to be able to deploy to different servers with different credentials.

I think #28 fixes this. If not, reopen a new pull request and I'll accept it.


Allow to initialize all Firebase plugins without a google.json file

Hi,
maybe this is already solved, but when I last looked at it not all Firebase plugins could be initialized completely from code without the need of a google.json file.
The problem is as long as it only works with a google.json file you can't access Firebase from Dart test which would be extremely helpful for Integrationtests.
So my wish would be that all plugins can be optionally initialized completely from code with API key etc.
Thanks for your great work
Thomas

Hello,
Unfortunately the native SDKs on a number of plugins (e.g. messaging) are required to support the Android/iOS config files. Some plugins don't allow secondary apps and require the "default" app to be created via these files.
You can create a secondary app for some modules: https://pub.dev/documentation/firebase_core/latest/firebase_core/FirebaseApp/configure.html
Since this is a general limitation of the underlying Android & iOS SDKs, I'll close this as it's not possible.


Stop delegate is called twice in the ConsoleRunHost after clicking Ctrl+C

Configuration: Topshelf 3.1.3, .Net Framework 3.5 SP1, Windows 8 64bit
Issue:
After clicking Ctrl+C, the Stop() method in my service is called twice in the console mode:
the first time from the ConsoleRunHost.HandleCancelKeyPress()
the second time from the ConsoleRunHost.Run()  (in the finally clause -> StopService()).
Precondition: our application sets processor affinity to a single CPU core.
I think the reason is a race condition related to the handling of the _hasCancelled flag and _exit ManualResetEvent: HandleCancelKeyPress method sets the event first, then updates the _hasCancelled to true. So the StopService() method sometimes can read "false" from _hasCancelled and call the stop delegate again :).

I have that behavior with version 3.3.1 (?).

same issue with 3.3.1

The issue is not related to topshelf. The second call of Stop handler is caused by Prometheus.Net MetricServer in my case.


Console issues [ch118270]

Related to https://app.clubhouse.io/cartoteam/story/118270/fix-style-console-issues

Included in another PR https://github.com/CartoDB/cra-template-carto/pull/106


Update search application APIs from experimental to stable

Search applications will be GA in 8.10.

🤦♀ Thanks @JoshMock, fixed!


Issue with the Template for the new navbar in 6.7

PHP Version: 8.3.10   | Shopware Version: <IP_ADDRESS>  | Affected area / extension: Platform(Default)

Expected behaviour:
I realize the new navbar still seems to be work in progress (the application of class navigation-flyout-col doesn't seem refined yet and feel free to correct the typo "recoursion" in the block name in a future release), but this should be addressed early on.
The new template in layout/navbar/categories.html.twig is based on the old navigation template, but with some adjustments. This seems fine until you try to overwrite the blocks within, such as layout_navbar_categories_item. You'd expect them to be overwritten with your changes.
Actual behaviour:
However, because most of the template is wrapped in a new macro recursiveCategory, none of the individual twig blocks within that macro can be overwritten by plugins and themes - at least not without overriding the entire wrapper and copying in everything else in it to define a new adjusted macro. So, unless you basically rewrite the entire template via the wrapper block layout_navbar_categories, your changes won't be applied.
How to reproduce:
Activate the new navbar by setting feature flag V6_7_0_0=1, add a storefront/layout/navbar/categories.html.twig file extending the native one and try to overwrite a block like layout_navbar_categories_item.

[public] Shopware automated response: This issue is linked to the internal issue: NEXT-38310
[created from NEXT-38310, comment 495198]

[public] FixVersion Changed: This issue will be / was solved in Shopware version <IP_ADDRESS>.
[created from NEXT-38310, comment 507450]


help_color not working for multi_select

Describe the problem
The default help_color given to the Prompt constructor is used for select, but not for multi_select. On a first glance the intention was for multi_select to use this color, as
Steps to reproduce the problem
irb(main):001:0> require 'tty-prompt'
=> true
irb(main):002:0> @prompt = TTY::Prompt.new(help_color: :cyan)
=> #<TTY::Prompt: {:input=>#<IO:<STDIN>>, :output=>#<IO:<STDOUT>>, :prefix=>"", :active_color=>:green, :error_color=>:red, :enabled_color=>nil, :help_color=>:cyan}
irb(main):003:0> @prompt.select('Which option?', %i[first second third])
Which option? first
=> :first
irb(main):004:0> @prompt.multi_select('Which options?', %i[first second third])
Which options? first
=> [:first]

Actual behaviour
select uses help_color configured, while multi_select always shows dark gray.
Expected behaviour
The expected behaviour is for both classes to use help_color. I expect this, because MultiList#render_header seems to decorate based on inherited  @help_color.
Describe your environment

OS version: Ubuntu 18.04.3 LTS
Ruby version: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux] (in docker, FROM ruby:2.6.5)
TTY version:

gem list tty

*** LOCAL GEMS ***

tty-color (0.5.0)
tty-cursor (0.7.0)
tty-prompt (0.20.0)
tty-reader (0.7.0)
tty-screen (0.7.0)```

Thanks for reporting! ❤ Do you have time to submit PR to fix this?

Not sure yet...

I have not before worked on such ruby project. I just write scripts which I run with the ruby command from a docker container. Could you please write out some steps I need to take to get up and running? E.g. apt install this and that, then run this and that to build / run tests.

This was fixed in #119 (9f72d62).


Fix rivets.init to allow components to return html elements

fixes #463

I'm assuming that the expected output of rivets.init('my-comp', el) should clean out existing child elements of el rather than appending them.

I'm assuming that the expected output of rivets.init('my-comp', el) should clean out existing child elements of el rather than appending them.

Yep, that's correct. Thanks for filing and fixing this bug. Merging this in.


build: readthedocs build error

Fixes #348

Build was successful https://nodejs-itoolkit--349.org.readthedocs.build/en/349/
Changes in #343 can now be previewed here: https://nodejs-itoolkit--349.org.readthedocs.build/en/349/ProgramCall.html#parameterConfig


added all exercises

added all exercises and #499 fixed previous merge issues.

Ops looks like the lint error is still there. will double check.

Help @prestonvanloon ! Can't get TravisCI to pass.


[Exalted 3]rd Edition replacement sheet

Changes / Comments
A replacement to the currently available character sheet for Exalted 3rd edition.
I originally submitted this sheet as an alternative to the available sheet, but was informed about the policies regarding multiple sheets for a single system. I got in touch with support and was given the go-ahead to submit this sheet as a possible replacement to the original sheet instead.
This sheet is a full replacement to the currently available sheet, and includes a lot of functionality that the original sheet lacks. Mainly the addition of roll buttons with modifier prompts for Attributes/Abilities, and for weapon attack and damage rolls. The sheet also includes a redesigned Charms/Sorcery section that allows users to more effectively organize their charms and spells, a dedicated ranged weapons section that allows users to toggle a range field to automatically calculate which accuracy rating to use, and an essence motes section which will automatically calculate mote pools based on the type of exalted, essence rating, and committed motes. The sheet also has a different visual style than the original.
All character data for users of the original sheet should carry over properly to this sheet. I have gone through and tried to triple check each section, including repeating sections, to make sure the transition between sheets doesn't cause any lost data for anyone.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


V2.0

z

z

@Visutinee is this PR intentional & what changes are you trying to push in the marbles repository?


Cannot pickup/hangup with Call Control Button on my headset (Plantronics SAVI 430)

The pickup-buttons on headsets usually use proprietary keyboard scan codes. You can try if you can assign a global shortcut in Tools->Options->Advanced, but most likely this won't work.
A possible alternative is support software from the headset manufacturer that runs in the background and sends a keyboard shortcut which you can then assign in Jitsi's global shortcuts.


do not show empty routes directory error when the routes directory doesn't exist

Some applications might only use hooks, such the handle hook, to proxy traffic to subapplications. In this case they might not have or need a routes directory. Only show the error if the directory exists but is empty.

4e20361


How to open an image file in ReacType

In your README, I notice that you can put an image file (maybe it's a sketch file) in App root component. I tried File -> Open File to open a jpeg file in my mac and it didn't work.
Could you show me how to open an image file in ReacType?

hello @xiaoleATRI. you can add an image by creating an html image element from the left bottom panel. after creating the element, you can click on the "html attributes" tab (while that img element is selected) and add the image url and save it. the image url could be from the web or the directory of an image in your local files. make sure to include the extension at the end. (ie. .png) I believe ReacType only supports pngs at the moment, but are improving the image features at the moment.

Hi.
When I add a new element ** Src ** in ** img ** The text display is in CamelCase. Example: Src = {HttpsGithubComJulioCVazSomDeGaragemBlobMasterReferenciaJpg}, how to use without CamelCase?

Hi.
When I add a new element Src in img The text display is in CamelCase. Example: Src = {HttpsGithubComJulioCVazSomDeGaragemBlobMasterReferenciaJpg}, how to use without CamelCase?

Hi Julio:) are you talking about the 'img' field inside the 'HTML Attributes' Tab?

Yes! That's it!
I must have done something wrong, I'm exploring the tool hahaha !!! But I believe I will!
Thank you!  :thumbsup:

I try in Ubuntu/Linux.
Now I will try on windows to see the result.


Yo am I supposed to be here

Be option on each phone on survey for pro, pro max, normal, mini, or plus

also option for carrier lock


Code cleanup

Currently, the code does not use the provided interfaces of Synapse like in this snippet https://github.com/maxkratz/matrix-synapse-saml-mapper/blob/main/matrix_synapse_saml_mapper/saml_mapping_provider.py#L241-L244
Normally, the error type must be SynapseError as specified in the original SAML mapper implementation https://github.com/matrix-org/synapse/blob/6abb1ad0be1cde7cd414eee0e0a1f195462eb1bd/synapse/handlers/saml_handler.py#L472
TODOs (at least):

[x] Import packages
[x] Change implementation to use Synapse-based errors
[x] Update CI image

This might help: https://github.com/matrix-org/synapse/issues/8778

Update CI image

I've disabled the custom python Docker image and re-added the default python image.


[not to land] Kotlin 1.8 testing

Flushing out what sort of issues there might be

Passing tests with no issues


fix: add CVE number for illuminate/database guard bypass vulnerability

Didn't know if you'd like the file renamed too so have left it as-is for now (in part since I could use the GH editor 😅).
CVE-2020-24940
https://nvd.nist.gov/vuln/detail/CVE-2020-24940
https://www.cvedetails.com/cve/CVE-2020-24940/

Looks like the test now fails due to filename cve id mismatch, so I suppose renaming the file is the way to go ;-)


pine64 build no longer works (since u-boot-pine64-2<IP_ADDRESS>)

After updating u-boot-pine64 to 2<IP_ADDRESS>, there is no more pine64.img that the Pine64 board  setup.sh is using. @evadot, if you have advice on installing the U-boot instead of the following, I'll test and incorporate into a PR:
dd if=${PINE64_UBOOT_PATH}/${PINE64_UBOOT_BIN} of=/dev/${DISK_MD} seek=16

PINE64_UBOOT_BIN=u-boot-sunxi-with-spl.bin
somewhere should fix this.
This is why, btw, I keep harping on the need to put this kind of metadata into the u-boot ports and having a common script to create these images rather than playing whack-a-mole with all the image creation scripts.

...need to put this kind of metadata into the u-boot ports...

For boards that just copy the U-Boot files onto a FAT partition, "this kind of metadata" would just be the list of filenames.  But for boards that require the various U-Boot bits to be copied into the image at particular byte offsets, it's much more complex.
Putting this data entirely into the U-Boot ports basically means building an API between "all the image creation scripts" and all the U-Boot ports.


start service to be visible after an event.. help (or stop)

Hi every one, I need to recreate this behavior:

The BLE Server have 2 services:
ServiceA has 1 characteristic called CODE,
ServiceB has n characteristics

ESP32 boots up and starts only ServiceA

Now, a client can write on the CODE characteristic, if the code is correct ServiceB should start and appear in the available services..

I want to make something like this to create mini-security system... I already tried to do that but it does not work... in the moment I call pServiceB->start();  the client (in this case smartphone with nRF Connect App) start loading until disconnection, and ESP32 freezes.
this is the code:
#define SERVICE_UUID                   "B04EFAC2-E040-4AC1-A464-393508E6C2C9"
#define LEDSERVICE_UUID                "9C5D8FB7-9D89-4EFC-BBCB-D1A98E267354"

#define LED_1_UUID                     "EDF849DE-70C0-4A79-8F36-A199AEB3B2AA"
#define LED_2_UUID                     "43081C63-021C-4311-A03C-AC91327BD808"
#define LED_3_UUID                     "50E4902F-E29D-4193-AD7B-DC3E3ACBD0CE"
#define ACCESS_CODE_UUID               "E37ADC7D-4E0F-466E-8674-02FD0F8983BB"

BLEServer *pServer;
BLEService *pService;
BLEService *pLedService;
BLECharacteristic *led1Characteristic;
BLECharacteristic *led2Characteristic;
BLECharacteristic *led3Characteristic;
BLECharacteristic *accesscodeCharacteristic;

void setup() {
  BLEDevice::init("ESP32 Server");
  pServer = BLEDevice::createServer();
  pServer->setCallbacks(new MyServerCallbacks());
  pService = pServer->createService(BLEUUID(SERVICE_UUID), 3, 0);
  accesscodeCharacteristic = pService->createCharacteristic(ACCESS_CODE_UUID, BLECharacteristic::PROPERTY_WRITE);
  accesscodeCharacteristic->setCallbacks(new accessCodeCallbacks());
  pService->start();

  pLedService = pServer->createService(BLEUUID(LEDSERVICE_UUID), 17, 0);
  led1Characteristic = pLedService->createCharacteristic(
        LED_1_UUID,
        BLECharacteristic::PROPERTY_WRITE |
        BLECharacteristic::PROPERTY_READ);

  led2Characteristic = pLedService->createCharacteristic(
        LED_2_UUID,
        BLECharacteristic::PROPERTY_WRITE |
        BLECharacteristic::PROPERTY_READ);

  led3Characteristic = pLedService->createCharacteristic(
        LED_3_UUID,
        BLECharacteristic::PROPERTY_WRITE |
        BLECharacteristic::PROPERTY_READ);

  led1Characteristic->setCallbacks(new ledCallbacks());
  led2Characteristic->setCallbacks(new ledCallbacks());
  led3Characteristic->setCallbacks(new ledCallbacks());
  // DO NOT START THIS pLedService!! Later.

  BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
  BLEAdvertisementData pAdvertisementData;
  pAdvertisementData.setManufacturerData(getBluetoothAddress());
  pAdvertisementData.setAppearance(ESP_BLE_APPEARANCE_GENERIC_COMPUTER);

  pAdvertising->setAdvertisementData(pAdvertisementData);
  pAdvertising->addServiceUUID(SERVICE_UUID);
  pAdvertising->addServiceUUID(LEDSERVICE_UUID);
  pAdvertising->setScanResponse(true);
  pAdvertising->setMinPreferred(0x06);
  pAdvertising->setMinPreferred(0x12);

  BLEDevice::startAdvertising();
}

void loop() {}

void event() {
/* THIS FUNCTION REPRESENT AN EVENT, e.g. code wrote in the access code characteristic that I will don't write to not be too long */

pLedService->start();
// HERE THE PROBLEM HAPPEN, SERVICE DOES NOT BECOME VISIBILE AND EVERYTHING FREEZES...
}

Can someone help me figure why it doesn't work, and/or how to get that behavior working correctly? thanks in advance

Did you try to start this service not from BLE event or callback, just from loop() or other task?

Did you try to start this service not from BLE event or callback, just from loop() or other task?
I actually found a workaround, it seems to work outside the ble-related events.
later I will upload a working sample code

This is what i am suggesting.

This is what i am suggesting.

When can I find documentation about what i can and cannot do in those functions ?

I dont think espressif is providing such docs, you just have to figure it our.


render within shadow DOM test added

Description

Adde new test for nested shadow DOM support

Nested shadow DOM support PR

https://github.com/krakenjs/belter/pull/54

Note:

It should fail til such PR is merged

Looks great! One thing I don't understand -- how is the test passing before https://github.com/krakenjs/belter/pull/54 is merged?

Looks great! One thing I don't understand -- how is the test passing before krakenjs/belter#54 is merged?

Still wondering the same, today later we can discuss the approach 😅

This is the first time I've ever commented on a PR to say "the tests are passing! please fix the PR so the tests break!" :D


Cut a new release

There are some fixes in the midi-convert crate that fixed issues where the MSB & LSB were swapped when parsing 14-bit values:

Swap MSB and LSB in SongPositionPointer
Swap pitch bend LSB and MSB

Please cut a new release of embedded-midi so these fixes are available in this crate.

Also looking forward to this. Did you find an alternative crate to handle midi?

@everdrone No.

Sorry, i havent had much time for this project lately and hadn't noticed there was demand for it. I'll roll a release when i have time over the holidays.

would it make sense to upgrade to  embedded-hal = "1.0.0" ?

I have created a PR for the upgrade to embedded hal 1.0.0 https://github.com/rust-midi/embedded-midi/pull/9

Thank you, its merged. I should have a new release out somewhere next week. I hadnt looked at this code for over a year so its taking me some time to get back into it.


Using s3.configure to create an anonymous user breaks all other authentication, adding an anonymous user via config secret is also ignored

Describe the bug
Attempting to create an anonymous user via the s3.configure option of weed shell does not work. Additionally, it causes all other access keys to become unusable until the server is restarted.
This affects both the helm-install hook in the helm chart as well as usage of weed shell from inside the master pod and externally. The example below shows the usage of the weed shell since it is easier to document than the helm job.
Adding the anonymous user via the configuration secret is also ignored:
{"name":"anonymous","credentials":[{"accessKey":"","secretKey":""}],"actions":["Read:bucket-b"]}

System Setup
Helm Chart Version:  4.0.377
App Version: 3.77
output of weed version: version 30GB 3.77 b28b1a340 linux amd64
Helm Values:
master:
  enabled: true
  data:
    type: "persistentVolumeClaim"
    size: "10G"
    storageClass: "local-path"
    annotations:
      "k8up.io/backup": "true"
  logs:
    type: "hostPath"
    size: ""
    storageClass: ""
    hostPathPrefix: /storage
  livenessProbe:
    periodSeconds: 5
  readinessProbe:
    periodSeconds: 5

volume:
  enabled: true
  readMode: proxy
  dataDirs:
    - name: data
      type: "persistentVolumeClaim"
      size: "10G"
      storageClass: "local-path"
      annotations:
        "k8up.io/backup": "true"
      maxVolumes: 0
  idx: {}
  livenessProbe:
    periodSeconds: 5
  readinessProbe:
    periodSeconds: 5

filer:
  enabled: true
  livenessProbe:
    periodSeconds: 5
  readinessProbe:
    periodSeconds: 5
  s3:
    enabled: true
    enableAuth: true
    existingConfigSecret: my-s3-secret
    createBuckets:
      - name: bucket-a
        anonymousRead: false
      - name: bucket-b
        anonymousRead: false
  data:
    type: "persistentVolumeClaim"
    size: "10G"
    storageClass: "local-path"
    annotations:
      "k8up.io/backup": "true"

s3:
  enabled: false
cosi:
  enabled: false

Example Secret (tested both with and without the anonymous user)
# Source: seaweedfs/templates/seaweedfs-s3-secret.yaml
apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: my-s3-secret
  labels:
    app.kubernetes.io/name: seaweedfs
    app.kubernetes.io/component: s3
stringData:
  # this key must be an inline json config file
  seaweedfs_s3_config: '{"identities":[{"name":"anvAdmin","credentials":[{"accessKey":"snu8yoP6QAlY0ne4","secretKey":"PNzBcmeLNEdR0oviwm04NQAicOrDH1Km"}],"actions":["Admin","Read","Write"]},{"name":"anvReadOnly","credentials":[{"accessKey":"SCigFee6c5lbi04A","secretKey":"kgFhbT38R8WUYVtiFQ1OiSVOrYr3NKku"}],"actions":["Read"]},{"name":"anonymous","credentials":[{"accessKey":"","secretKey":""}],"actions":["Read:bucket-b"]}]}'

Expected behavior
Running the following should result in bucket-b being public
s3.configure --user anonymous --buckets bucket-b --actions Read --apply true

Observed Behavior

After creating the SWFS cluster with two private buckets, i am able to authenticate via AWS cli as expected using credentials from the seaweedfs_s3_config secret, and list files in bucket-b

kgs my-s3-secret
AWS Access Key ID [****************""]: XXXXXXXXXXXXXXXXXXXXX
AWS Secret Access Key [****************""]: XXXXXXXXXXXXXXXXX
Default region name [us-east-1]:
Default output format [json]:

aws --endpoint-url http://<IP_ADDRESS>:8333 s3 ls s3://bucket-b/
2024-10-15 10:38:23     181299 rancher-suse-logo-stacked-color.png

After attempting to add a anonymous user with Read access to bucket-b, all authentication breaks

Adding the user:
> s3.configure --user anonymous --buckets bucket-b --actions Read --apply true
{
  "identities":  [
    {
      "name":  "anonymous",
      "credentials":  [],
      "actions":  [
        "Read:bucket-b"
      ],
      "account":  null
    }
  ],
  "accounts":  []
}
>

No longer able to access buckets using the previously working credentials:
aws --endpoint-url http://<IP_ADDRESS>:8333 s3 ls s3://bucket-b/

An error occurred (InvalidAccessKeyId) when calling the ListObjectsV2 operation: The access key ID you provided does not exist in our   records.

Filer Logs:
I1015 08:52:44.027900 filer_grpc_server_sub_meta.go:156 read in memory filer:<IP_ADDRESS>:8888@<IP_ADDRESS>:58028 local subscribe /   from 2024-10-15 08:52:44.026067487 +0000 UTC
I1015 08:52:44.028190 meta_aggregator.go:82 stop subscribing peer <IP_ADDRESS>:8888 meta change
I1015 08:54:29.308688 auth_credentials_subscribe.go:63 updated /etc/iam/identity.json
I1015 08:54:58.711240 auth_credentials.go:281 could not find accessKey snu8yoP6QAlY0ne4

Master Logs:
I1015 08:52:44.025631 master_grpc_server.go:365 + client .filer@<IP_ADDRESS>:8888
I1015 08:52:44.025928 masterclient.go:265 + master@seaweedfs-master-0.seaweedfs-master.default:9333 noticed .filer <IP_ADDRESS>:8888
I1015 08:54:26.538325 master_grpc_server.go:365 + client .adminShell@d6d659f0-7528-4d57-8078-2ed637a419af
I1015 08:54:26.541202 master_grpc_server.go:380 - client .adminShell@d6d659f0-7528-4d57-8078-2ed637a419af
I1015 08:54:26.545033 master_grpc_server.go:365 + client .adminShell@f65c303c-3278-4e2b-943a-9a634c9011e4
I1015 08:55:52.739651 master_grpc_server.go:380 - client .adminShell@f65c303c-3278-4e2b-943a-9a634c9011e4

Bucket is also not public, returns the following:
<Error>
AccessDenied
<Message>Access Denied.</Message>
<Resource>/buckets/bucket-b/</Resource>
<RequestId>1728982644932407486</RequestId>
<Key>bucket-b/</Key>
<BucketName>buckets</BucketName>
</Error>

Restarting the pods restores authentication, still no public access though
k delete pod seaweedfs-filer-0
pod "seaweedfs-filer-0" deleted

k delete pod seaweedfs-master-0
pod "seaweedfs-master-0" deleted

k delete pod seaweedfs-volume-0
pod "seaweedfs-volume-0" deleted

aws --endpoint-url http://<IP_ADDRESS>:8333 s3 ls s3://bucket-b/
2024-10-15 10:38:23     181299 rancher-suse-logo-stacked-color.png

Use either static config file, or s3.configure in weed shell.
Do not mix them up.

Thanks Chris, I will test and report back with results

Perhaps I am just misunderstanding how to properly use weed shell and s3.configure though,  Could you point me to an example of how to set a bucket with public access?
Below are the results of testing using commands as outlined in the helm-charts post-install-bucket-hook.yaml, and the weed shell wiki. But only with the user creation, bucket creation works fine.
Bucket
Command:
spec:
  containers:
  - command:
    - /bin/sh
    - -ec
    - |
      exec /bin/echo \
      s3.bucket.create --name shared2" |\
      /usr/bin/weed shell

Output:
master: seaweedfs-master.default:9333 filer: seaweedfs-filer-client.default:8888
I1015 16:41:40.945843 masterclient.go:228 master seaweedfs-master.default:9333 redirected to leader seaweedfs-master-0.seaweedfs-master.default:9333
.create bucket under /buckets
created bucket shared2
> >

Result:
 mc ls swfs
[2024-10-15 16:24:51 UTC]     0B shared/
[2024-10-15 16:41:41 UTC]     0B shared2/

User:
Command:
spec:
  containers:
  - command:
    - /bin/sh
    - -ec
    - |
      exec /bin/echo \
      s3.configure --user anonymous --buckets shared --actions Read --apply true" |\
      /usr/bin/weed shell

Output:
master: seaweedfs-master.default:9333 filer: seaweedfs-filer-client.default:8888
I1015 18:18:19.178844 masterclient.go:228 master seaweedfs-master.default:9333 redirected to leader seaweedfs-master-0.seaweedfs-master.default:9333
> {
  "identities":  [
    {
      "name":  "anonymous",
      "credentials":  [],
      "actions":  [
        "Read:shared"
      ],
      "account":  null
    }
  ],
  "accounts":  []
}
> .

Result:
mc ls swfs/shared
mc: <ERROR> Unable to list folder. The access key ID you provided does not exist in our records.

Logs
I1015 16:25:23.178941 masterclient.go:316 updateVidMap(DefaultDataCenter) .filer: seaweedfs-volume-0.seaweedfs-volume.default:8080 volume add: 1, del: 0, add ec: 0 del ec: 0
I1015 16:41:41.082636 auth_credentials_subscribe.go:84 updated bucketMetadata /buckets/name:"shared2"  is_directory:true  attributes:{mtime:1729010501  file_mode:2147484159  crtime:1729010501}
I1015 18:18:19.325420 auth_credentials_subscribe.go:63 updated /etc/iam/identity.json
I1015 18:18:51.425286 auth_credentials.go:281 could not find accessKey AXUAThvxC41SOhTd
I1015 18:18:51.426286 auth_credentials.go:281 could not find accessKey AXUAThvxC41SOhTd

I guess i just missed it while reading but I was able to achieve the desired result by adding the anonymous user to the s3 secret as described in the AWS S3 API wiki :
# Source: seaweedfs/templates/seaweedfs-s3-secret.yaml
apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: my-s3-secret
  labels:
    app.kubernetes.io/name: seaweedfs
    app.kubernetes.io/component: s3
stringData:
  # this key must be an inline json config file
  seaweedfs_s3_config: '{"identities":[{"name":"admin","credentials":[{"accessKey":"snu8yoP6QAlY0ne4","secretKey":"PNzBcmeLNEdR0oviwm04NQAicOrDH1Km"}],"actions":["Admin","Read","Write"]},{"name":"anonymous","actions":["Read:shared"]}]}'

Is there a way to achieve the same result with weed shell after startup? Or is the conifg secret the correct method to use?


Tests that try to load files no longer pass with new tarpaulin container

I have some tests that load files using code like this:
let file = "../path/file.txt"
let file_path = fs::canonicalize(PathBuf::from(file))
     .expect(&format!("unable to find test file: {}", file))
     .to_str()
     .expect("unable to convert PathBuf to &str")
     .to_string();
let contents = fs::read_to_string(file_path);

The tests pass using cargo test and previously passed using cargo tarpaulin ... but after updating to a new tarpaulin container, the tests now fail saying that the files do not exist.

It seems as though std::env::current_dir() differs between cargo test and cargo tarpaulin .
My project has several Cargo.toml files, with one at the repo root defining the workspace members (where the other Cargo.toml files are).
When I start the tarpaulin container, /volume is set to the path containing my workspace Cargo.toml (-v "${PWD}:/volume").

for cargo test, std::env::current_dir() == <path-to-each-test's-cargo-toml-folder>
for cargo tarpaulin, std::env::current_dir() == /volume

Here's a simple project that demonstrates the issue: https://github.com/bfjelds/tarpaulin-test

Ah that's awesome thanks, I've managed to track down the issue and am part way through a fix. I should hopefully have something to try out by the end of tomorrow and aiming for a release on Friday with a patch in

If you check develop there's a fix there that worked on your test project :+1:

thanks!!! both for initially creating this awesome tool and for being so responsive!!!  i will try out the new bits as soon as i can.

my tests passed with this:
xd009642/tarpaulin:develop
DIGEST:sha256:83f7f3997254fc7824e605f023d161352bcd002cf23f0fdd291658e4bdb731ae
thanks for fixing this so quickly!!

Yup, the develop branch fixed this issue. Could you please make a quick release?

I can make a release tonight when I'm on my laptop


add support for setting metavar

This patch exposes the metavar option and allows you to use more descriptive placeholders in help text. This is especially useful for long command line option, where the default metavars are equally long:
database_old: Path = tap.arg(help="some help")
database_new: Path = tap.arg(help="some help", metavar="FILE")

becomes
options:
  -h, --help            show this help message and exit
  --database-old DATABASE_OLD
                        some help
  --database-new FILE   some help

I considered if it was possible to prevent using metavar for bool arguments using the type system, but it only seems possible when using default/dynamic_default and not (what I assume is) the common case where you don't use either. Misusing metavar also doesn't violate type safety, so it didn't seem worthwile to expand the overloads just for that.

Codecov Report

Merging #68 (73c28c4) into master (cef3707) will increase coverage by 0.04%.
The diff coverage is 100.00%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##           master      #68      +/-   ##
==========================================
+ Coverage   92.89%   92.93%   +0.04%
==========================================
  Files           9        9
  Lines         704      708       +4
==========================================
+ Hits          654      658       +4
  Misses         50       50

Files Changed
Coverage Δ

typed_argparse/arg.py
77.14% <100.00%> (+0.21%)
:arrow_up:

typed_argparse/parser.py
95.41% <100.00%> (+0.05%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Thanks for the PR! Yes I'd say exposing the metavar should be fine.

I considered if it was possible to prevent using metavar for bool arguments using the type system, but it only seems possible when using default/dynamic_default and not (what I assume is) the common case where you don't use either. Misusing metavar also doesn't violate type safety, so it didn't seem worthwile to expand the overloads just for that.

Yes that should be fine. I'm actually contemplating to split the tap.arg into multiple functions so that differences in their interfaces don't have to be modeled entirely via overloads. I haven't thought about how the split will look like exactly (perhaps positional vs non-positional, scalar vs variadic/nargs) but if we'd have a separate group for boolean switches, we could omit metavar there, making it fully type safe.
Looking at argparse's metavar docs (last paragraph) it seems that it even allows for Optional[str | tuple[str, ...]], but that can still be added later if needed.

Looking at argparse's metavar docs (last paragraph) it seems that it even allows for Optional[str | tuple[str, ...]], but that can still be added later if needed.

I have to admit that I forgot about that, but I wouldn't mind drafting a patch for that if you'd like to support that as well.

I have to admit that I forgot about that, but I wouldn't mind drafting a patch for that if you'd like to support that as well.

Not super crucial. It actually raises the question if this is supported consistently across all supported argparse / Python versions. What if e.g. nargs=3 but the tuple only has a length of 2 etc? Will it generate ... or other repetition markers for nargs="*" implicitly? For now just supporting str may suffice.


Fixes bug when initialize_connection() doesn't pass parameters to spark initialization routine.

Consider following simple example:

conf = list("sparklyr.shell.driver-memory" = "4g",
            "spark.yarn.executor.memoryOverhead" = "1000",
            "spark.executor.instances" = "8",
            "spark.executor.cores" = "4",
            "spark.sql.shuffle.partitions" = "256")
scon <- sparkapi::start_shell(master = 'yarn-client', config = conf)
# or
# sc <- sparklyr::spark_connect(master = "yarn-client", config = conf)

According to docs This should initialise YARN job with parameters listed above. However it starts shell with default parameters (because it try to match for spark.context.* and also cuts prefix...):

This pull request fixes such incorrect behaviour.

Good catch. We will also have to filter out spark.sql.*, spark.session.* from applying those to the SparkConfig, I'll take a look at that.

I think this will work for all spark.* options.

I think so too, from the Spark documentation it mentions is ok to pass spark.sql. configurations to SparkContext. However, we currently explicitly apply different configuration options to HiveContext, SQLContext and SparkSession so it would make sense to protect against having a property that is valid in one of them but invalid to apply in SparkContext, even if it's unlikely.


Tracking Issue: Ladder games starting with wrong players

We've seen it happen before that 3 people have showed up in a ladder game, or that someone has the nomads faction. Not sure what the cause is, could be client, server or game related.
Archsimkat:

I've been having this issue connecting to ladder games
It either gets stuck on "Setting up automatch..." or just doesn't match at all . I (~1730) was trying to match my friend (~1770) on ladder for like 10 minutes but no dice. With our rating difference it should have matched pretty quicks
Also, later I was told I was attempting to connect to a teamgame when I had never (I was only searching ladder), maybe that's related

Found a match but tried to connect to the wrong game?

Seems that part of the issue is caused when players try to join a ladder game using the game_join command. This shouldn’t be possible because ladder games don’t show up in the custom games tab, but unfortunately there are other features like the context menu in the chat tab that let you do this anyways.
Related #936

This also: #1761

Is this still an issue?

This can be closed I think

Fixed in #1769


Latest Version doesn't install in Waterfox

because of the new manifest file (and no install.rdf) the latest version installing on Waterfox release 56.2.8, is 0.1.1 - would it be possible to create a forked version "dissenter classic" for older browsers that has the additional features of 0.1.5 ? If not, could I release a forked version for the pale moon crowd?

Hi @RealRaven2000 thanks for the suggestion. Will be looking to implement Waterfox along with a few other browsers soon in future releases.

@mgabdev That would be great! I had Dissenter working on Waterfox when it was on Mozilla's extension website, but unfortunately I had to reset my laptop and now the manual install only stays until restart of the browser :(

@RealRaven2000 @BunnyTheLifeguard a Waterfox download has been added on https://dissenter.com/download

@mgabdev Wow, thank you so much for the quick update! :)

@RealRaven2000 @BunnyTheLifeguard a Waterfox download has been added on https://dissenter.com/download

thanks very much ( I already made my own version but it's great to have the latest features ) much respect!!


readyForStable.js: fix percentages check

Automated adapter checker
No changed adapters found
Add comment "RE-CHECK!" to start check anew


feat: switch actor (frontend)

Codecov Report

Merging #1275 (98e2668) into main (580ea4b) will increase coverage by 16.73%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #1275       +/-   ##
===========================================
+ Coverage   56.16%   72.90%   +16.73%
===========================================
  Files          26       38       +12
  Lines         365      631      +266
  Branches       27        0       -27
===========================================
+ Hits          205      460      +255
- Misses        152      159        +7
- Partials        8       12        +4

Impacted Files
Coverage Δ

...gistration/HealthEndpointRegistrationExtensions.cs
45.45% <ø> (-33.50%)
:arrow_down:

...taHub.WebApi/Controllers/Wholesale/Dto/BatchDto.cs
0.00% <0.00%> (-100.00%)
:arrow_down:

...WebApi/RequireNonNullablePropertiesSchemaFilter.cs
80.00% <0.00%> (-8.00%)
:arrow_down:

apps/dh/api-dh/source/DataHub.WebApi/Startup.cs
96.38% <0.00%> (ø)

...e/DataHub.WebApi.Tests/Fixtures/WebHostTestBase.cs
0.00% <0.00%> (ø)

...taHub.WebApi.Tests/Integration/HealthCheckTests.cs
100.00% <0.00%> (ø)

...rce/DataHub.WebApi.Tests/Fixtures/WebApiFixture.cs
92.30% <0.00%> (ø)

...ration/Controllers/MeteringPointControllerTests.cs
100.00% <0.00%> (ø)

...rce/DataHub.WebApi.Tests/Fixtures/WebApiFactory.cs
83.33% <0.00%> (ø)

... and 7 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Specifies the solver to be used to solve master problems

Add parameter solver with string (two options for the moment : "Xpress" or "Cbc") in the settings.ini file.
Example :
solver = Xpress
Default value:
solver = Cbc

Is it OK if we change the names to :
Xpress -> XPRESS
Cbc -> COIN
?
This will be the same name as defined in the multisolver_interface.

Let's say that the syntax initially proposed fits better with what users are used. If it is really easier to put this new syntax, it is not dramatic.


Interactive title and description

Inject settings into APISchema, add title and description from settings object into Interactive API templates.

Need to add default settings/schema to test.

Does this also address/close Integrating schema.description with docs??

@ssteinerx I'm not sure that you meant to link back to this same ticket?

Whoops, I was trying to link from the pull request about it and got the wrong tab!

That ticket is regarding field descriptions, rather than the top-level overall description.
Related, but not the same, no. :)

@tomchristie Ah, thanks, sorry about that, just re-read the code in this pull request.  Just started using this yesterday and have only poked around enough to realize that my descriptions weren't coming out in the /docs.

I think this is a valid approach yup. If it gets refactored for 0.2, and gets appropriate docs, then I don't see why it shouldn't go in. Thanks!

Closed via https://github.com/encode/apistar/commit/4c95797a2c13d0b379c8f4027c0686d8f4442532
Does still need documenting tho.


Detail Modal isnt responding

detail modal doesnt always respond

Is this still an issue?

Actually, now that I think about it, what does this actually mean??

Closing cause I have no idea what this story actually was


Clear removed devices

Currently the Pulse 2 Hub is reporting 14 connected devices, but for a short period I had 15 devices. I have removed that device and a restart of HA, the Addon and the Hub has not cleared the orphaned device (which is showing unknown/unavailable in the addon).
How can I clear this?
Thanks!

FYI: In the future, in the latest version of HA, if you go into the entity, click on the settings (the cog on the top right), there is a delete button at the bottom of that window.

Hi. Just tried this. Yes I can delete the entities but the device remains and cannot be deleted.
Need the plugin to detect when a device has been removed from the hub.


Front end - profile upload overflow

Current profile page has overflow error with showing list of uploads - not scrollable

You need like a vacation from this project, everytime im on github your improving something.


Add support for "click to zoom"

Magento 2 uses Fotorama + Magnifier.js for its default image library. You can see a Magento 2 page here: http://magento2-demo.nexcess.net/cassius-sparring-tank.html (click on the image and then scroll on top of the image to see Magnifier JS at work).
If you click on the image this page to open the full screen view and then click on the image, you'll see the kind of image zoom I'd like to be able to enable: https://www.magictoolbox.com/magiczoomplus/
It would be great if Magnifier JS had the ability to allow a user to "click to zoom", as using the scroll wheel is not intuitive for many users. Since Magento 2 will be used by tens of thousands of merchants, this added feature will benefit many users.

I think clicking to zoom is okay but I can't say for sure if it's the right statement to make when you say "scrolling is not intuitive". Because google earth uses that.

The much bigger problem to address is magento's pinch zooming on mobile phones. And in fact, mac users and some window uses have touchpad that recognises pinch zooming. So it must be also imperative to fix pinch zooming.


Changed Bitcoin_rpcjs Libary name to savingsatoshi

changed @0tuedon/bitcoin_rpcjs to @savingsatoshi/bitcoin_rpcjs

@nully0x we can merge this once the backend PR https://github.com/saving-satoshi/saving-satoshi-backend/pull/47 is in.


Elytron Subsystem Upgrade and Updated Default Configuration

:bangbang: Commits from this branch are used in numerous other topic branches so please do not cherry-pick or rebase. :bangbang:
This PR is for merging once we have a WildFly Core tag containing the following PR: -
https://github.com/wildfly/wildfly-core/pull/2083
Once merged the following issues can be resolved: -
https://issues.jboss.org/browse/WFLY-7872
https://issues.jboss.org/browse/WFLY-7870
https://issues.jboss.org/browse/WFLY-7883
https://issues.jboss.org/browse/WFLY-7884
Additionally the following issues can be resolved as a result of the subsystem upgrade: -
https://issues.jboss.org/browse/WFLY-7104
https://issues.jboss.org/browse/WFLY-7866
https://issues.jboss.org/browse/WFLY-7848
https://issues.jboss.org/browse/WFLY-7828
https://issues.jboss.org/browse/WFLY-7829
https://issues.jboss.org/browse/WFLY-7849
https://issues.jboss.org/browse/WFLY-7677
https://issues.jboss.org/browse/WFLY-7681
https://issues.jboss.org/browse/WFLY-7830
Experimental CI Builds: -
https://ci.wildfly.org/viewLog.html?buildId=41285&tab=buildResultsDiv&buildTypeId=WF_WildFlyCoreIntegrationExperiments
https://ci.wildfly.org/viewLog.html?buildId=41286&tab=buildResultsDiv&buildTypeId=WF_WildFlyCoreIntegrationExperimentsWindows

Superseded by #9537


Suggestion: Show version number in web interface

This is the only (minor) left-over of https://github.com/sj26/mailcatcher/issues/436
I'm suggesting to display the version in the web interface after the name (top left corner): "MailCatcher 0.8.1" instead of "MailCatcher".
But since the version number is now shown in various other places, it's not that important anymore ;-)

Yeah I was leaving #436 open, thinking to add an “about” dialog when “mailcatcher” is clicked which shows the version. But we can track that here.
Thanks!


segfault for copying data buffer of 64-127 byte

Hi,
I have seen segfault when copying buffers (gdr_copy_from_bar) with size ranging from 64-byte to 127-byte. Followings are the reproducers in our machines.
$ /opt/gdrcopy8.0/copybw -s 64
GPU id:0 name:Tesla K40c PCI domain: 0 bus: 2 device: 0
selecting device 0
testing size: 64
rounded size: 65536
device ptr: b05a40000
bar_ptr: 0x7f43d9223000
info.va: b05a40000
info.mapped_size: 65536
info.page_size: 65536
page offset: 0
user-space pointer:0x7f43d9223000
BAR writing test, size=64 offset=0 num_iters=10000
BAR1 write BW: 457.923MB/s
BAR reading test, size=64 offset=0 num_iters=100
Segmentation fault

$dmesg
...
[2689239.364734] copybw[5308]: segfault at 2846000 ip 00007f43d8ecd06c sp 00007fff23b939e0 error 6 in libgdrapi.so.1.2[7f43d8ecb000+3000]

$ /opt/gdrcopy8.0/copybw -s 64
GPU id:0 name:Tesla K80 PCI domain: 0 bus: 5 device: 0
GPU id:1 name:Tesla K80 PCI domain: 0 bus: 6 device: 0
selecting device 0
testing size: 64
rounded size: 65536
device ptr: 2304fc0000
bar_ptr: 0x2acc78311000
info.va: 2304fc0000
info.mapped_size: 65536
info.page_size: 65536
page offset: 0
user-space pointer:0x2acc78311000
BAR writing test, size=64 offset=0 num_iters=10000
BAR1 write BW: 722.593MB/s
BAR reading test, size=64 offset=0 num_iters=100
Segmentation fault (core dumped)

$dmesg
...
[2614698.728292] copybw[32532]: segfault at 2acc78321000 ip 00002acc78459018 sp 00007ffd51c16b10 error 4 in libgdrapi.so.1.2[2acc78457000+3000]

Do you have any idea what could be happening here?
Thanks,

@chingking which branch were you testing on?

@drossetti - I was using master. Should I try branch devel?

@chingking it was an oversight, look at d671b4d

@chingking just integrated fix in master as well, could you verify plz?

@drossetti - It is working! Thanks for the fix.


java8 version with FlightRecorder

Enhancement Type
Improve an existing feature
Describe the enhancement
I'm looking for a java8 image with FlightRecorder for continuous profiling, but it doesn't look like the current java8 build has this feature.
I know OpenJDK 8 (version 8u262+) and Azul Zulu 8+ (version 8u212+) include FlightRecorder.
Additionally, it doesn't look like the current alpine build is supported anymore:
https://github.com/itzg/docker-minecraft-server/blob/f31c57b8979f59dbf034b2c7a82fe1a497bbb27a/.github/workflows/build-multiarch.yml#L42
Sticking to _/openjdk; the remaining options are:

8u322-jdk-oraclelinux8 (8-jdk-oracle)

8u322-jdk-slim-bullseye  (8-jdk-slim)

Per our Discord convo https://github.com/itzg/docker-minecraft-server/issues/1376

As for the OP we found that the java8-multiarch variants does have flightrecorder support.

In theory, this issue is resolved.


Custom on-chain logic API unification - announce interface, invoke and subscribe

... to be filled in by @nguyer, @jimthematrix, @awrichar, but opening to have number to refer to in diagrams

To get the ball rolling, here's a diagram that represents my high-level understanding of the job at hand in the detailed design that will evolve in this issue.

:
[firefly_discussion_onchain_draft.pptx](https://github.com/hyperledger/firefly/files/7254588/firefly_discussion_onchain_draft.pptx)

@jimthematrix has taken a lead on enhancing the raw connector interface, which is very mature in EthConnect, and evolving today in FabConnect.
In EthConnect today (not including below PR):

A set of registration capabilities for the ABI exist in EthConnect that are mature, but were designed without the above architecture, and specific to Ethereum.

Instead of copying these to FabConnect and duplicating them, we will move them up to FireFly
This means it's likely significant portions of Ethconnect will become deprecated over a time period
This deprecation time period might be long, due to the amount of production use of that connector today
The FireFly CLI has been coded using these EthConnect interfaces for registration of the simple "pinning" contract

Note contract compilation/deployment is not in scope for this enhanced architecture

The FireFly ethereum blockchain plugin uses these generated REST APIs for event subscription and invocation of the pinning contract

This existing code should be considered for refactor after the on-chain registration code is complete

Invocation payloads are well defined, and can contain an in-line definition of the types, address, and method name
Subscribe APIs cannot contain in-line type information

They rely on pre-registration of the ABI within EthConnect to generate a REST API
An enhancement will be needed to allow a subscription API with in-line event type information, to remove the need for ABI registration at all within EthConnect

https://github.com/hyperledger/firefly-ethconnect/pull/154

to visualize the two styles of endpoints, since we are making decisions on choosing one over the other, here are the call details of the fully parameterized generic endpoint vs. RESTful endpoint:
Generic endpoint with full details in payloads
POST /hook
{
    "headers": {
        "type": "SendTransaction"
    },
    "from": "0xa1aEE560bDBdA311964E4e709D89254bBe5a7AE5",
    "to": "0x2fe59d7bc95933e51327c2f51bc088380c5bc9cd",
    "params": [
        {
            "value": "4276993775",
            "type": "uint256"
        },
        {
            "value": "this is a string",
            "type": "string"
        }
    ],
    "gas": 1000000,
    "methodName": "set"
}

RESTful endpoint
the following is proposed and implemented in hyperledger/firefly-ethconnect#154
POST /contracts/0x2fe59d7bc95933e51327c2f51bc088380c5bc9cd/set?fly-from=0xa1aEE560bDBdA311964E4e709D89254bBe5a7AE5&fly-gas=1000000
{
    "$schema":  {
      "type": "function",
      "name": "set",
      "stateMutability": "nonpayable",
      "inputs": [
        {
          "name": "x",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": []
    },
    "x": "12346"
}

For ethconnect specifically, the challenge isn't one of cleanliness of the API (don't mean to diminish that), it's about the code structure and re-use with what's there already.
I assert there's no need for consistency or overlap with FabConnect in this case (per the diagram, there are explicitly decoupled via the plugin code).
Here's the concerns with a revamp of the invocation code in Ethconnect:

We have an API that's used in production, and supports passing types. If we introduce a new API with a different spelling, we need codepaths maintained for both. Worried about possibility of regressing one. I don't know of any reason we need to change the existing code to support FireFly calling it (beyond adding the ability to submit in-line type information in the subscribe - which is a separate part of the API).
(Biggest worry) the whole of the /contracts endpoint, is tied up with code that is structured around generating REST APIs, and this has nothing to do with that. It's really complicated code, because it has to deal with a very complicated API that can be mapped to generated ABIs. Whether it's called /hook or just / or something else like /firefly or /api/v2 I assert we need to keep the JSON-POST API separate in the codebase from the REST generated interface we're deprecating.
The same JSON payload should be submittable via Kafka, as well as via HTTP. That is true in how the EthConnect code is structured today.

As an aside, I think this is important for both FabConnect and EthConnect - was raised on the community call today.

Thanks for the additional background. I'm all for consolidating the endpoints and simplifying the code base (over time). Totally fine with the generic endpoint being the consolidated one going forward. Incidentally it's consistent with the style support by fabconnect (POST /transactions).
For the event subscriptions support, the PR hyperledger/firefly-ethconnect#154 adds it in the code path that currently subscribes to events behind the RESTful endpoints (/abis/:abi/:event/subscribe and others), I assume we want to add the ability to subscribe to events to the POST /hook (or the new name for it) endpoint as well, given that the RESTful endpoints are considered deprecated?

I assume we want to add the ability to subscribe to events to the POST /hook

I don't think that's necessary, as it's a separate one-time setup API action (rather than something you stream in).
However, I do think the thing that's missing is a POST /api/v1/subscriptions endpoint (filling out the C of the CRUD interfavce), rather than something under the /abis router.

Making /transactions an additional POST route for the existing /hook makes sense to me too 👍

I do think the thing that's missing is a POST /api/v1/subscriptions endpoint

that's what I was proposing, only that I assumed the ability would be merged under the existing POST /hook endpoint given that it's being adopted as the main route going forward.
So just to confirm, we are going to have these endpoints:
POST /api/v1/transactions: with payload parameters to differentiate the target contract by address, method, input, etc and the inline schema
POST /api/v1/subscriptions: with payload parameters to differentiate the target contract by address, event name, etc. and the inline schema
is that correct?

POST /api/v1/transactions: with payload parameters to differentiate the target contract by address, method, input, etc and the inline schema

✅  - adding an alias to the existing /hook endpoint on /transactions sounds fine, and low cost/risk
❓  - do we want to add an /api/v1/ prefix to existing routes? If we do this, think it should cover all routes

POST /api/v1/subscriptions: with payload parameters to differentiate the target contract by address, event name, etc. and the inline schema

❓  - same comment as above applies for the /api/v1 prefix
✅  - here's an example payload from a GET, which will show what the POST would look like, with annotations on output only fields

  {
    "created": "2021-01-01T01:00:35Z", // output only
    "id": "sb-d4baa8c5-fe53-4280-b8b0-2129afba5812",// output only
    "path": "/subscriptions/sb-d4baa8c5-fe53-4280-b8b0-2129afba5812",// output only
    "name": "mysubname",
    "stream": "es-12703181-65f3-411e-83df-897e74a9f9d4",
    "filter": {
      "address": [
        "0x0Be01cDfe811359D8935B741c340Cd22b3f7E75f"
      ],
      "topics": [
        [
          "0x5776ec96635c8e4aa0b57ebb539a02e60ff65013d475967f55c1e7cdde64f7bb"  // would need to be generated
        ]
      ]
    },
    "event": {
      "type": "event",
      "name": "UnstructuredAssetDefinitionCreated",
      "inputs": [
        {
          "name": "assetDefinitionID",
          "type": "bytes32",
          "internalType": "bytes32"
        },
        {
          "name": "author",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "name",
          "type": "string",
          "internalType": "string"
        },
        {
          "name": "isContentPrivate",
          "type": "bool",
          "internalType": "bool"
        },
        {
          "name": "isContentUnique",
          "type": "bool",
          "internalType": "bool"
        },
        {
          "name": "timestamp",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": null
    },
    "fromBlock": "latest"
  }

Closing this in favor of ongoing discussion on the on-chain logic FIR


Added newly introduced "space" and "logLevel" Octopus Deploy arguments

Octopus Deploy 2019.1 introduced Spaces and along with it new arguments for Octo.exe (cf. https://octopus.com/docs/octopus-rest-api/octo.exe-command-line/push).

Thanks for your contribution! 😄🎉


Hey, what do you think about this?

I have came across this from the United States, where NetEase is not a thing. Maybe, just maybe, you could add support for the Spotify API. It would be a nice thing to add, and maybe make more users come to the music player! The reason I am not going to go to other music players is because this one does a VERY nice job with the UI that this music player uses. If someone else isn't gonna do it, I might as well do it though, just a nice thing to add!

If you need it translated (i don't know Chinese, but i translate using Google Translate), just comment anything! 😀

I have came across this from the United States, where NetEase is not a thing. Maybe, just maybe, you could add support for the Spotify API. It would be a nice thing to add, and maybe make more users come to the music player! The reason I am not going to go to other music players is because this one does a VERY nice job with the UI that this music player uses. If someone else isn't gonna do it, I might as well do it though, just a nice thing to add!

We had a discuss with this before, and we decided to not implement it at this moment as this involves the legality and DRM issue.
However, I may re-open such a discussion, and consider adding more platform such as Apple Music to this, when this is legal and we implemented the DRM assurance.
Thanks for your suggestion though! 🥰

Okay, great! I have never used a API for Apple Music, but this could work!

Any progress?

Any progress?

We did not plan this currently, sorry.


[NEW] Support inserting images from keyboard.

Description

When trying to insert an image from keyboard (Gif or sticker) a notification pops up saying that this app doesn't support inserting images.
Devices and Versions

Your Rocket.Chat.Android version: 2.4.0
Your Rocket.Chat Server version:

Mobile device model and OS version: Nexus 5X - Android 8.1.0
Steps to reproduce
Try inserting a Gif from keyboard into a channel

Rocket.Chat app version: 3.2.0

With the shutdown of Google Hangouts, my group is looking for a new chat service to use. We enjoy the fact that we can self host Rocket Chat, but we often use Bitmojis in our conversations.
Some of my peers require the ability to paste images in our chats. This would be an awesome feature to have in Rocket.Chat - a feature that I can use as a bargaining chip to adopt Rocket.Chat.


Improve local debugger quitting

Currently if you quit from the debugger, it shuts down the SceneTree main loop. That may not stop the program since the GDScript engine is still processing operations. To prevent that, also disable scripting and have GDScript check if scripting is enabled in each iteration of the VM.
A related issue is that Godot exits successfully when quitting from the debugger. Since --debug is the only way to get Godot to stop on script errors, it's quite useful for testing your game. Unfortunately, with a successful exit code, there's no way to detect failures besides inspecting the output. Instead, have quit exit with a failure by default but allow the caller to specify their desired exit code. This allows running tests from CI like godot --debug --path . --headless --script myscript.gd </dev/null and knowing that the process will fail on any script errors.
Fixes: #51387

I should also note that I didn't attempt to tackle the C# side for stopping the engine when scripting is disabled. I looked at it briefly, but I don't use that scripting engine and I was unsure about the changes that would be needed.


Create alfa

@millysfabrielle I am sorry for a delay with processing your request. Could you please rename the file submitted from lib/domains/br/alfa to lib/domains/br/alfa.txt to reflect the rules of this repository?

@millysfabrielle I merged the pull request and renamed the file myself. Thank you for the contribution.


Added video button to bib entries

When the video entry is added to bib:
e.g.,
{
...
video={https://www.youtube.com/embed/jNQXAC9IVRw}
...
}

A dedicated button appears for videos. When clicked, a playable video appears under the research article (like abstracts and bibtex)

LGTM. Thanks for the contribution.


update for CODEOWNERS file

What:
Add myself as CODEOWNER
Why:
Allow to set me as a reviewer

@all-contributors please add @duranmla for code doc bug review


Scratch scores

We should give scratches scores in a similar way to decomp-permuter. Then, we can point users towards scratch forks that achieve a better score or even a match.

w.r.t. #115 we would need to remember the saved diff score in the database upon save (which means saving implies compiling)