SIGSEGV or SIGILL from exception handler with exception handler

Hi Cython team, I encountered SIGSEGV or Illegal instruction errors upon return None from exception handler with another exception handler.
Here is the reproductive sample codes in three py files.
# sub.py ===
from datetime import datetime, date

def func():
    text = "2020-10-23"   # date format intentionally unmatched with arg in strptime()
    try:
        s = datetime.strptime(text, "%d%b%Y")
        return s
    except ValueError as err:
        try:
            print("Error1", err)
            s = datetime.strptime(text, "%d%b%Y")
            return s
        except ValueError as err:
            print("Error2", err)
            return None   # <------ this is where the code breaks

# main.py ===
import sub
print("main:", sub.func())

# setup.py ===
from distutils.core import setup
from Cython.Build import cythonize
setup(name="sub.app", ext_modules=cythonize("sub.py", language_level = "3"))

before I use python setup.py build_ext --inplace, I use python main.py and got:
Error1 time data '2020-10-23' does not match format '%d%b%Y'
Error2 time data '2020-10-23' does not match format '%d%b%Y'
main: None       # <---- 'None' is returned as expected

but, after Cython, I use python main.py again and got:
Error1 time data '2020-10-23' does not match format '%d%b%Y'
Error2 time data '2020-10-23' does not match format '%d%b%Y'
Illegal instruction: 4   # <--- code is broken before print() in main.py is executed

Here is what I did to overcome this:
# sub.py ===
from datetime import datetime, date

def func():
    s = None  # <---- add this line first
    text = "2020-10-23"
    try:
        s = datetime.strptime(text, "%d%b%Y")
        return s
    except ValueError as err:
        try:
            print("Error1", err)
            s = datetime.strptime(text, "%d%b%Y")
            return s
        except ValueError as err:
            print("Error2", err)
            # return None   # <--- do not return None from the exception handler
    return s   # instead, return from main body of the function

In my project codes (sorry I cannot copy here), the program is also broken, except SIGSERV received at the same location. In the code, func() is actually a @classmethod function of a class.
Version: Python 3.7.7 (anaconda), Cython 0.29.15.

Even if not return None, but return 2 (I chose a random number to return), it also SIGILL or SIGSEGV with Cython.

sorry me again. I upgraded to Cython 0.29.19, the situation remains.

Thanks for the report and the reproducer. Yes, this is a bug, triggered by the reuse of the err variable in both nested except clauses. Py3 deletes this variable at the end of the except clause, but nesting them apparently makes Cython try to delete it twice.


Re-enable pylint in info-only mode for all packages

A cursory scan looks fine, though ISTM we should have a single pylint.config.py at the project root and then every package points at that?

I'd do that but @lukesneeringer is planning on splitting packages into their own repos.

Yeah in that context it totally makes sense.

@jonparrott I'm missing what makes running pylint this way "advisory only":  can you elaborate?

@tseaver nox is ignoring its return value, so pylint can fail but the lint session will still pass.

@dhermes @lukesneeringer y'all got any more of them LGTMs?

LGTM


fix: Case hashing

Codecov Report

Merging #1653 (bb292ca) into master (4517a9a) will decrease coverage by 0.34%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1653      +/-   ##
==========================================
- Coverage   98.96%   98.61%   -0.35%
==========================================
  Files          95       95
  Lines        7634     7389     -245
  Branches     1575     1276     -299
==========================================
- Hits         7555     7287     -268
- Misses         48       61      +13
- Partials       31       41      +10

Impacted Files
Coverage Δ

src/schemathesis/models.py
99.06% <100.00%> (-0.06%)
:arrow_down:

src/schemathesis/specs/openapi/validation.py
76.47% <0.00%> (-11.77%)
:arrow_down:

src/schemathesis/_compat.py
67.50% <0.00%> (-10.00%)
:arrow_down:

src/schemathesis/extra/pytest_plugin.py
94.16% <0.00%> (-5.84%)
:arrow_down:

src/schemathesis/cli/callbacks.py
98.83% <0.00%> (-1.17%)
:arrow_down:

src/schemathesis/runner/serialization.py
90.81% <0.00%> (-0.86%)
:arrow_down:

src/schemathesis/utils.py
96.86% <0.00%> (-0.84%)
:arrow_down:

src/schemathesis/specs/openapi/loaders.py
98.44% <0.00%> (-0.79%)
:arrow_down:

src/schemathesis/cli/output/default.py
98.61% <0.00%> (-0.56%)
:arrow_down:

src/schemathesis/runner/impl/core.py
96.43% <0.00%> (-0.50%)
:arrow_down:

... and 38 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


News118: add correction to unknown message item

Contains the commit from #495 by @MarcoFalke

Looks good to me. Thanks @MarcoFalke and @harding.


After refreshing the FlatList, always set the contentOffset to 0

🐛 Bug Report

I'm using the FlatList with contentInset and contentOffset prop to guarantee the content doesn't be hidden by header things. However, if I invoke some pull-to-refresh on the FlatList, contentOffset always goes to 0 after refreshing is finished. I think contentOffset should not be always zero if contentInset is already set.
I think that this might be the same as #20610 and I tested this is reproduced on the latest RN version.
To Reproduce

In the RNTester/js/FlatListExample.js, I added some code for refreshing, contnetInset, contentOffset` like below.
  [...]
  componentDidMount() {
    // To make refreshing, I set the refreshing to be true right after componentDidMount
    // and set to false again after 3 secs
    this.setState({ refreshing: true });
    setTimeout(() => this.setState({ refreshing: false }), 3000);
  }
  [...]
  render() {
        [...]
        <Animated.FlatList
           [...]
            contentInset={{ top: 50 }}
            contentOffset={{ y: -50 }}
            refreshing={this.state.refreshing}
        />
  }
[...]

Expected Behavior

Here's a screenshot when I only set the contentInset and contentOffset and didn't call refreshing(just gave refreshing prop as false). I drew a red box which indicates contentInset and contentOffset works well.

In this case, I think after refreshing that the same contentOffset should be maintained. However, contentOffset always goes to 0 as shown in below gif.

Code Example

Please see the To Reproduce section.
Environment

info
React Native Environment Info:
System:
OS: macOS 10.14.3
CPU: (4) x64 Intel(R) Core(TM) i5-7267U CPU @ 3.10GHz
Memory: 137.07 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 8.15.1 - ~/.nvm/versions/node/v8.15.1/bin/node
Yarn: 1.12.3 - /usr/local/bin/yarn
npm: 6.4.1 - ~/.nvm/versions/node/v8.15.1/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
Android SDK:
API Levels: 27, 28
Build Tools: 27.0.3, 28.0.2, 28.0.3
System Images: android-27 | Google APIs Intel x86 Atom, android-28 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 3.2 AI-181.55<IP_ADDRESS>56338
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.3 => 16.8.3
react-native: 0.59.2 => 0.59.2
npmGlobalPackages:
react-native-cli: 2.0.1

Maybe this issue is related to #17734.
Now #17734 is closed, so I will post my solution here.
      <FlatList
        data={facilities.slice()}
        contentOffset={{ y: this.props.loading ? -60 : 0, x: 0 }}  // <-- if loading, set offset
     // ...

Hope #24170 will fix it.

I encountered this. Init with your offset values. Then as soon as you set loading to true, set your variable that is your offset to 0, then after loading, set the value of that variable back to your offset value. It did the trick for me after hours of delving into it. I includes some other parameters to get a clean solution with Android and iOS.
Initialize variables :
this.scrollOffsetValue = getHeaderHeight() + 55;
this.scrollOffset = this.scrollOffsetValue;

Params for Flatlist :
contentInset={{ top: this.scrollOffset }}
contentOffset={{ y: -this.scrollOffset, }}

//

          refreshControl={
              <RefreshControl
                refreshing={this.state.gettingFeed}
                onRefresh={() => this.refreshFeed()}
                progressViewOffset={160}
              />
            }
            ListHeaderComponent = {<View style={{width:'100%',height: Platform.os=="android" ? this.scrollOffsetValue : 0 }} />}

on load start :
this.scrollOffset=0;
on load done and time to render :
this.scrollOffset = this.scrollOffsetValue;
Good luck, this works on Android and iOS for differing header sizes.

@jbskis Thanks for your solution. I actually made a PR and it has been merged. And now I checked that it has been included into v0.60 release. I think you can check that it is resolved or not in v0.60. Could you check it works for you when you're available?

For me, upgrading to latest v0.59 and removing all offset value fixed the issue.
And I gave up to use loading props by always set it false, and place my original loading component over the FlatList while loading as the current workaround.


[Fallout 2d20] initial alpha release

Changes / Comments
This is a new sheet. The name (Fallout 2d20) is in the PR title.
Alpha 0.1 release of unofficial Fallout 2d20 sheet.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[Y] Does the pull request title have the sheet name(s)? Include each sheet name.
[N] Is this a bug fix?
[N] Does this add functional enhancements (new features or extending existing features) ?
[N] Does this add or change functional aesthetics (such as layout or color scheme) ?
[N] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[Y] 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.

Forgot to mention this is not a legacy sheet. It uses the CSE.

Hello there @coyotegrey, after going through your pull request I noticed your character sheet html files contains information that seem to have been taken from the sources books, like this passage:
"You are immune to radiation damage. In fact, you're healed by it — you regain 1 HP for every 3 points of radiation damage inflicted upon you, and if you rest in an irradiated location, you may re-roll your dice pool when checking if your injuries heal. In addition, Survival becomes a Tag skill, increasing it by 2 ranks."
If so, this would constitute a violation of our guidelines. If this is the case, could remove such passages from your code and open a new pull request? Also, we do not allow changes to the root folder of our repository, so please remove them next time you open the PR.
Thanks for all the work you do!


Shuffle Button (inclduing Shuffle+)

Hey! Absolutely loving this, however, it would be nice to fully control all aspects of Spotify such as being able to switch between shuffle and shuffle+ if this is possible. That would be awesome!

Good suggestion! I don't think there's much space left in the current UI, however could definitely be a thing in the UI update (#21) :)


⚠ Samsung has degraded performance

In e7b50dd, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2431 ms

Resolved: Samsung performance has improved in 6448cf0.


default dispatcher configuration

it would be great if the archetype provides a default dispatcher configuration for author and publish dispatcher that can be used as a start to automate dispatcher configurations

I've created an internal issue for this enhancement.
(CQ-4259370)

As it seems, this is something that will rather be provided (or already is provided) by the future Cloud Manager default setup, rather than by the Core Components.


[BUG] Using PDF.js (pdfjs-dist) in Plasmo project generates file with name "_empty..js" that is reserved by the system

What happened?
Tried in both background index.ts and content scripts, both have the issue.
My code:
import * as pdfjsLib from 'pdfjs-dist';

pdfjsLib.GlobalWorkerOptions.workerSrc = `//mozilla.github.io/pdf.js/build/pdf.worker.js`;

const pdf = await pdfjsLib.getDocument(msg.pdfUrl).promise;

const numPages = pdf.numPages;

let fullText = '';

for (let pageNumber = 1; pageNumber <= numPages; pageNumber++) {
    const page = await pdf.getPage(pageNumber);
    const textContent = await page.getTextContent();
    textContent.items.forEach(item => {
        fullText += item.str;
    });
}

When the extension is compiled and loaded in Chrome, Chrome pops an alert saying:

Failed to load extension
File
~/Products/GPTPlugin/gpt-plugin/build/chrome-mv3-dev
Error
Cannot load extension with file or directory name _empty.c3437ec2.js. Filenames starting with "_" are reserved for use by the system.
Could not load manifest.

Version
Latest
What OS are you seeing the problem on?
MacOSX
What browsers are you seeing the problem on?
Chrome
Relevant log output
No log because the error occurs when the extension is loaded

(OPTIONAL) Contribution

[ ] I would like to fix this BUG via a PR

Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems.

Is there any update regarding this bug?

I have same issue using pdfjs-dist

I solved error by using
import { pdfjs } from "react-pdf"
pdfjs.GlobalWorkerOptions.workerSrc = //cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js
instead of
import * as pdfjs from 'pdfjs-dist'

Same here. Tried a few different packages pdfjs-dist, pdf-text-reader, couldn't get any of these pdf readers to extract text when using Plasmo.
What's the purpose of _empty file and why is plasmo generating it?

Experiencing the same issue with pdfjs-dist. On Plasmo v0.86.2

I've come across this issue with other packages as well. Here's a temporary workaround that automatically deletes _empty files. Doesn't seem to create any problems:
npm install --save-dev concurrently
npm install --save-dev nodemon

And then in your package.json (for Windows) update scripts:
"scripts": {
    "dev": "concurrently \"nodemon --watch build/chrome-mv3-dev/_empty*.js --exec del /f build\\chrome-mv3-dev\\_empty* \" \"plasmo dev\"",
    "build": "plasmo build",
    "postbuild": "del /f build\\chrome-mv3-prod\\_empty*",
    "test": "plasmo test"
  },

I've come across this issue with other packages as well. Here's a temporary workaround that automatically deletes _empty files. Doesn't seem to create any problems:
npm install --save-dev concurrently
npm install --save-dev nodemon

And then in your package.json (for Windows) update scripts:
"scripts": {
    "dev": "concurrently \"nodemon --watch build/chrome-mv3-dev/_empty*.js --exec del /f build\\chrome-mv3-dev\\_empty* \" \"plasmo dev\"",
    "build": "plasmo build",
    "postbuild": "del /f build\\chrome-mv3-prod\\_empty*",
    "test": "plasmo test"
  },

It worked, thanks so much!

"scripts": {
"dev": "concurrently "nodemon --watch build/chrome-mv3-dev/_empty*.js --exec del /f build\chrome-mv3-dev\_empty* " "plasmo dev"",
"build": "plasmo build",
"postbuild": "del /f build\chrome-mv3-prod\_empty*",
"test": "plasmo test"
},
But this refreshes the page everytime! Which make building ui complex.


Won't install under Ruby 2.3.0

Not sure if this is related to #165 but when I gem install byebug -v '8.2.2' I get the following:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory<EMAIL_ADDRESS>
/home/fred/.rvm/rubies/ruby-2.3.0/bin/ruby -r ./siteconf20160325-18907-cff2tg.rb extconf.rb
creating Makefile
current directory<EMAIL_ADDRESS>make "DESTDIR=" clean
current directory<EMAIL_ADDRESS>make "DESTDIR="
compiling locker.c
compiling context.c
compiling byebug.c
compiling threads.c
compiling breakpoint.c
linking shared-object byebug/byebug.so
/usr/bin/ld: cannot find -lgmp
collect2: error: ld returned 1 exit status
make: *** [byebug.so] Error 1
make failed, exit code 2

If I switch over to Ruby 2.2.1 (I use RVM) the gem installs without any problems

No, I don't think so... It seems like a problem with your ruby 2.3.0 installation or even a bug in ruby. Try installing another gem with C extensions, nokogiri for example. Does it fail too?

Yes, nokogiri fails too. Again, no problems under 2.2.1. You're right, it must be my installation or that specific ruby build. In any case, I'll close this down, thanks.

No problem.


Multiple bugs in handling of iOS "crushed PNGs"

Faulty handling of ADAM7 interlacing
Small mistakes were made when translating the C source to Java:

incorrect calculation of row filter bytes
incorrect processing of IDAT chunk

Reproduce by processing any "crushed" file which uses ADAM7 interlacing.
Fixed with #1854
Problems rewriting IDAT chunk

should check if rewriting is needed
produces multiple copies of same "uncrushed" chunk if input has multiple chunks

Reproduce by processing files where the IDAT chunk doesn't need to be rewritten and processing any file with multiple IDAT chunks.
Fixed with #1874
Problems with compression

doesn't check too much compressed input
incorrectly truncates compressed output at  64 kB (INITIAL_REPACK_SIZE)

Reproduce by processing any file where the compressed data in IDAT is larger than the image size and any image where the compressed output would exceed 64 kB.
Fixed with #1875

This should be merged in now.  Please verify and reopen if you see any issues.


emacs got a black window now

In the original Ubuntu 14.04, emacs is fine.
I'm using VcXsrv now.

I've only tested alwsl with Xming. But even then, I can reproduce this and then some. emacs outright crashes:
X protocol error: BadRequest (invalid request code or no such operation) on protocol request 130
When compiled with GTK, Emacs cannot recover from X disconnects.
This is a GTK bug: https://bugzilla.gnome.org/show_bug.cgi?id=85715
For details, see etc/PROBLEMS.
Fatal error 6: Aborted

I'll investigate. ATM this is low-priority because the management utility isn't even finished yet. In a few days, the alwsl distro (i.e. the rootfs) will get an update. Please watch this issue in case I need more info after that.

This is also happening to me. I'm using Xming and a fresh installation of alwsl.


chore: update otel v1.0.0 => v1.6.1

CHANGELOG

Codecov Report

Merging #4 (17bed38) into main (2b539ea) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main        #4   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           21        21
  Lines          261       261
=========================================
  Hits           261       261

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 2b539ea...17bed38. Read the comment docs.


engine: orm client for resourcemeta don't support project isolation

What did you do?
orm client for resourcemeta don't support project isolation
What did you expect to see?
No response
What did you see instead?
orm client for resourcemeta don't support project isolation
Versions of the cluster
Dataflow Engine version (run df-master -V or df-executor -V):
master

/assign @maxshuang

/bug minor


python311Packages.dacite: 1.8.0 -> 1.8.1

Diff: https://github.com/konradhalas/dacite/compare/refs/tags/v1.8.0...v1.8.1
Changelog: https://github.com/konradhalas/dacite/blob/v1.8.1/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 238244 run on x86_64-linux 1

46 packages built:

home-assistant-component-tests.brother
home-assistant-component-tests.gios
home-assistant-component-tests.nam
home-assistant-component-tests.roborock
python310Packages.brother
python310Packages.brother.dist
python310Packages.dacite
python310Packages.dacite.dist
python310Packages.gios
python310Packages.gios.dist
python310Packages.home-assistant-chip-clusters
python310Packages.home-assistant-chip-clusters.dist
python310Packages.nettigo-air-monitor
python310Packages.nettigo-air-monitor.dist
python310Packages.python-fx
python310Packages.python-fx.dist
python310Packages.python-roborock
python310Packages.python-roborock.dist
python310Packages.qiling
python310Packages.qiling.dist
python310Packages.soundcloud-v2
python310Packages.soundcloud-v2.dist
python310Packages.zadnegoale
python310Packages.zadnegoale.dist
python311Packages.brother
python311Packages.brother.dist
python311Packages.dacite
python311Packages.dacite.dist
python311Packages.gios
python311Packages.gios.dist
python311Packages.home-assistant-chip-clusters
python311Packages.home-assistant-chip-clusters.dist
python311Packages.nettigo-air-monitor
python311Packages.nettigo-air-monitor.dist
python311Packages.python-fx
python311Packages.python-fx.dist
python311Packages.python-roborock
python311Packages.python-roborock.dist
python311Packages.qiling
python311Packages.qiling.dist
python311Packages.soundcloud-v2
python311Packages.soundcloud-v2.dist
python311Packages.zadnegoale
python311Packages.zadnegoale.dist
scdl
scdl.dist


Wrong Parameter suggestion in IntelliSense when using Decorator

Using a decorator with *args and **kwargs as params should display the parameters of bar(), not of the decorator.
def foo(*args):

    def _foo(fn):

        def __foo(*args, **kwargs):
            fn(*args, **kwargs)

        print("Return callable")
        return __foo

    print("Registered")
    return _foo

@foo("arg")
def bar(a, b, c):
    print("Function called with %i, %i, %i" % a, b, c)

bar(1, 2, 3) # <-- Should show a, b, c in the IntelliSence, not *args, **kwargs

Actually, since decorators are totally able to change the parameters of a function, we really ought to display what the wrapped function expects.
Though I guess we could try and detect when it's doing simple parameter forwarding, at least when the @wraps decorator (or functools.wrapped) is used.

You mean functools.wraps? Yes, that would also work as a proper workaround.

Yes, it appears to ignore the expected behaviour of functools.wraps, certainly intellisense isn't displaying the docstring of the decorated function, which is pretty frustrating.


Autowired annotation

@Autowired Annotation: By employing this annotation, parameters, properties, and setters will be automatically wired based on their types. This will simplify dependency injection and improve code modularity.
Example
export class NorAgentApp {

    @useAutowired()
    public static async run (
        @autowired('args')
        args: readonly string[],
        @autowired('stateService')
        stateService ?: AgentStateService,
        @autowired('parsedArgs')
        parsedArgs ?: ParsedCommandArgumentObject,
        @autowired('destroyService')
        destroyService ?: DestroyService,
    ): Promise<CommandExitStatus> {
        console.log('Hello World');
    }
}

TODO

[x] AutowireUtils
[x] Implementation for method main function decorators

For further insights and references, please refer to the following resources:

Spring Autowire

This is not perfect but step forward.


[Question] How is documentation for ACME dns01 providers generated?

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?
I'm working on a project that uses traefik and the dns01 acme provider. In a setup script, I'd like to assist users in setting the correct provider name and environment variables.
I'm wondering how docs/content/https/acme.md is generated. Is it manual or does some kind of automation pull the providers and env vars from go-acme/lego?
My guess is the former, in which case my plan is to parse traefik's go.mod to find the correct go-acme/lego version, then parse env vars from the corresponding provider source code.
This isn't especially robust, so any thoughts or input would be appreciated. Thanks!

Hello,
the Traefik documentation is not generated but the lego documentation is generated.
For the lego documentation you can take a look here: https://github.com/go-acme/lego/tree/master/internal/dnsdocs

Thanks!


@angular-redux/{router,form} peerDependency on @angular-redux/store should be ^10.0.0

This is a...

[x] feature request
[ ] bug report
[ ] usage question

To give some more insight:
"dependencies": {
    "@angular-redux/router": "^10.0.0",
    "@angular-redux/store": "^10.0.0",
}

yields
[3/4] Linking dependencies...
warning " ><EMAIL_ADDRESS>has incorrect peer dependency "<EMAIL_ADDRESS>


unifiedpush-common-proxies: 1.0.0 -> 1.1.0

Motivation for this change
Upstream update. Changes since 1.0.0:

Allow configuration using environment variables
Fix missing IPv6 support
The matrix gateway response now has an empty slice instead of nil
Improve error logging in gotify

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

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

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

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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 147078 run on x86_64-darwin 1

1 package failed to build:

unifiedpush-common-proxies

Thanks for the review, Can you check if version 1.0.0 from nixpkgs master builds on darwin?

Both versions build without problem on darwin with sandbox disabled.

@smancill do you mind if I merge this? I can't really tell from your reviews if this would break anything for darwin users, or just keep the status quo.

It doesn't build when sandox = true
It builds with sanbox = false (the default for darwin as I understand)

I don't think many darwin users have the sandbox enabled, so I guess it's ok to merge.
I am not sure what's the configuration on Hydra, that's why I commented that it fails to build with sandbox enabled.

The only thing I am interested in is if this change breaks anything.
You gave me the following info:

sandbox enabled
sandbox disabled

before change
???
builds

after change
doesn't build
builds

So I can still not tell if there is any setup that works with the old version, but doesn't work with the new version.

I cannot comment about that, I was just doing a round of nixpkgs-review on several PR, and I commented that the build was broken with the sandbox. That's all.


fix: Convert UUID DIDs to lower case UUID [DEV-1705]

Task linked: DEV-1705 Fix resource UUIDs (uppercase / lowercase error)

@ankurdotb Do you have any questions about signatures for now?


Removed conditon from build job in workflow

Context
A condition was added to the build workflow to prevent duplicate runs when labels were added.  The same effect is now achieved with workflow concurrency.
Changes proposed in this pull request
Removed condition from build workflow.
Guidance to review
Check workflow runs as expected.
Link to Trello card
https://trello.com/c/NLziz08t
Things to check

[x] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[x] This code does not rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] Required environment variables have been updated added to the Azure KeyVault

 Do not trigger build multiple times on dependabot PRs


loadClass signatures missing from ClassLoader #774

Placeholder implementation which would allow programs which use this functions to still compile.
The proposed placeholder implementation returns null.

TeaVM is an ahead-of-time compiler that's incapable of dynamic capabilities of JVM like class loading, so it's unlikely that TeaVM ever obtains support of class loading. If you have a project that uses some missing methods like this, you can write a TeaVM plugin that patches your classes.

You are mentioning a TeaVM plugin to patch classes ? I tried to find documentation about this, but could not find it on the TeaVM documentation. Would there be a link to a documentation or an example ?

There's no documentation. There's an interface TeaVMPlugin. You just implement it and use ServiceLoader convention to register it. What you need it to implement and register ClassHolderTransformer. Use emit API (see ProgramEmitter) to generate bodies of new methods or take bodies from other methods and copy them into new bodies. For example, in you case it can look like this:
public class ClassLoaderTransformer implements ClassHolderTransformer {
    @Override
    public void transformClass(ClassHolder cls, ClassHolderTransformerContext context) {
        if (cls.getName().equals(ClassLoader.class.getName())) {
            var method = new MethodHolder(new MethodDescriptor("loadClass", String.class, boolean.class, Class.class));
            var pe = ProgramEmitter.create(method, context.getHierarchy());
            pe.constantNull(Class.class).returnValue();
        }
    }
}

another example is:
public class ClassLoaderTransformer implements ClassHolderTransformer {
    @Override
    public void transformClass(ClassHolder cls, ClassHolderTransformerContext context) {
        if (cls.getName().equals(ClassLoader.class.getName())) {
            var method = new MethodHolder(new MethodDescriptor("loadClass", String.class, boolean.class, Class.class));
            var templateMethod = context.getHierarchy().getClassSource().get(ClassLoaderTransformer.class.getName())
                    .getMethod(new MethodDescriptor("loadClassTemplate", String.class, boolean.class, Class.class));
            var programTemplate = templateMethod.getProgram();
            var program = ProgramUtils.copy(programTemplate);
            method.setProgram(program);
        }
    }

    @SuppressWarnings("unused")
    private Class<?> loadClassTemplate(String name, boolean initialize) {
        return null;
    }
}

There are plenty examples of plugins in TeaVM source code, actually, runtime is implemented as a set of plugins.


⚠ GitLab Server has degraded performance

In 258cce7, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11198 ms

Resolved: GitLab Server performance has improved in 2f2c7a8.


Add fixes for COJ Gunslinger on Steam

Add wmp11 to fix cutscenes
Limit to 31 cores

Please let me know if I missed something. Thanks!
wmp11 and 31 cores fixes are due to user reports:
https://github.com/ValveSoftware/Proton/issues/366
https://www.protondb.com/app/204450
It seems like both wmp9 and wmp11 work, so we should prefer the newer version.
I am using wmp11 and it works normally.

@R1kaB3rN Hi there. Could you please clarify for me if the following is needed for future contributions? Thanks in advance.
#pylint: disable=C0103

from protonfixes import util

The first statement is not strictly necessary when it comes to applying fixes, so users shouldn't need to worry about it.
As for the second statement, it depends but you will most likely need it to do anything useful since all the functionality to apply a fix are currently in that file.


pyslang.Token object has no attribute 'identifier' in ConcatenationList

I have a port connection that is a concatenation, something like:
.a({b, c, d})

In pyslang, I can trace this to the a connection, with expr.expr.expr.expressions containing a SyntaxNode(SyntaxKind.SeparatedList) with the objects for b, c, and d contained. However, when I try to loop over the objects to extract the values, like so:
values = [token.identifier.value for token in connection.expr.expr.expr.expressions]

I get a AttributeError: 'pyslang.Token' object has no attribute 'identifier'
If I try to access the value directly, like expressions[0].identifier.value, it returns the value correctly, and without error. I am not sure why trying to iterate through it is not giving the same results.
I also tried with a standard for loop instead of a list comprehension, but it did not change the results.

I realized I was not processing the comma tokens properly  :facepalm:


wip: build browser and server in parallel

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#350  👈
#349
#344 : 1 other dependent PR (#347 )
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @hi-ogawa and the rest of your teammates on  Graphite


Try to snap month and/or day in header date to 01 if not in valid range.

EDF does not specify what to do if the month or day is not in a valid range
so if it is not this snaps the month or day to "01" and tries to parse again.

Rather than using exception handling to determine the issue here, I'd do something like
function parse_header_date(date_str::AbstractString)
    dt = tryparse(DateTime, date_str, dateformat"dd\.mm\.yy HH\.MM\.SS")
    dt === nothing || return dt
    m = match(r"^(\d{2})\.(\d{2})\.(\d{2}) (\d{2})\.(\d{2})\.(\d{2})$", date_str)
    if m === nothing
        # Maybe it would be better to return `missing` here? Not sure.
        throw(ArgumentError("Malformed date string: expected 'dd.mm.yy HH.MM.SS', " *
                            "got '$date_str'"))
    end
    day, month, year, hour, minute, second = parse.(Int, m.captures)
    if year <= 84
        year += 2000
    else
        year += 1900
    end
    month = clamp(month, 1, 12)
    day = clamp(day, 1, daysinmonth(year, month))
    hour = clamp(hour, 1, 24)
    minute = clamp(minute, 1, 60)
    second = clamp(second, 1, 60)
    return DateTime(year, month, day, hour, minute, second)
end

This ensures that all values are in range, since any one of the six values in play here could be the culprit if parsing fails.

As a very minor aside, per this point in the engineering practices, the branch name prefix here should be ks. :slightly_smiling_face:

Nice, I didn't know about Dates.daysinmonth, hence repeatedly trying to parse and see if the date was valid.
That's both clearer and more general.


Add kc token ee tests

@ldimaggi Can you get the KC token from the OSIO ui rather than it being pushed in as credential? That would mean more automation and free you from asking someone to update credentials every 30 days or so.

@ldimaggi, I agree with @vpavlin. You are supposed to obtain offline tokens for test accounts once then you can store them as secrets because they don't expire. Then you need to use these offline tokens to obtain access tokens in your tests. In this case you won't need to update secrets.

Thanks! How do we obtain/generate offline tokens?

@ldimaggi see my email to Radim (you was in cc:). I just forwarded that email to you again in case you can't find it.

Do we want to keep this PR open?

We can close this one - thanks!
On Tue, Sep 19, 2017 at 8:47 PM, Karanbir Singh<EMAIL_ADDRESS>wrote:

Do we want to keep this PR open?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/almighty/almighty-jobs/pull/274#issuecomment-330713243,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAnOPflARwPZiSQod2vYqvewXyCfuOrTks5skGCAgaJpZM4PHawj
.

--
Len DiMaggio<EMAIL_ADDRESS>JBoss by Red Hat
314 Littleton Road
Westford, MA 01886  USA
tel:<PHONE_NUMBER>
cell:<PHONE_NUMBER>
http://www.redhat.com
http://community.jboss.org/people/ldimaggio


Add "API" module which generates liborbit.so

Add module that defines the Orbit programming interface and generates
the shared library that is dynamically loaded by user code in order
to interact programmatically with Orbit.
This the first part of a bigger change in the manual instrumentation API.
This PR copies src/Orbit.h into src/Api/include/Api/Orbit.h and reimplements the
API as a shared library, liborbit.so, which is dynamically loaded on the first api
function call. The new version will coexist with the old one until it is fully in place,
at which time the old Orbit.h will disappear. For the review, I'd suggest comparing
both Orbit.h versions.
The main things to review are:

"Api" project to generate liborbit.so
Dynamic loading logic to src/Api/include/Api/Orbit.h (lines 305-440)

Code that was moved around:

Existing EncodedEvent class from Orbit.h to EncodedEvent.h
All of the Orbit.h api section (macros + function prototypes)

Note that the new Orbit.h API is now in "C". The plan is to be able to use it from both
C++ and C. In C++, the logic to dynamically load liborbit.so is directly in the header file
for ease of integration (a single .h file is all the user code needs). For a "C" project
however, the dynamic loading logic can't live in the header file, it will live in Orbit.c but this
is beyond the scope of this PR. See b/180976430.

For a "C" project
however, the dynamic loading logic can't live in the header file, it will live in Orbit.c but this
is beyond the scope of this PR. See b/180976430.

I remember this from back in the days of experimenting with Perfetto. Very annoying.

Thanks for the review @dpallotti !


Create/Edit color token modal does not show color swatch

Issue:
When creating or editing a color token the color swatch is not shown on entering values as raw values or using references
Reproduction:

Definition of done:
When creating or editing color tokens the color swatch should show the corresponding color. This is true for both raw values and reference values if the value is valid. This is not true if the raw value is not a correct raw value or the reference value is broken.

Do we think this is related to: https://github.com/orgs/tokens-studio/projects/34/views/3?pane=issue&itemId=58094445 ?


Caldav backend implementation

We have this fancy interface https://github.com/mikedeboer/jsDAV/blob/master/lib/CalDAV/interfaces/iBackend.js, but AFAICT we don't have any "backends" which implement it. For my purposes, an in-memory backend would work for testing.

Is there an appropriate implementation now?


svg file displayed incorrectly with TikZ on linux

This issue seems to only appear on linux (here: arch).
This is the code I ran using python -m manim mwe.py -s inside the manim folder:
from manimlib.imports import *

class TikzMobject(TextMobject):
    CONFIG = {
        "stroke_width": 3,
        "fill_opacity": 0,
        "stroke_opacity": 1,
    }

class ExampleTikz(Scene):
    def construct(self):
        circuit = TikzMobject(r"""
            \begin{tikzpicture}
                \draw (0,0) -- (1,0);
                \node at (1,0) {sometext};
            \end{tikzpicture}
            """
            )
        self.play(Write(circuit))
        self.wait()

Without any further configuration, the compilation fails due to an error with dvisvgm. After some searching online, the issue can be fixed by using \documentclass[preview,dvisvgm]{standalone} in the preamble. Now, if I check the corresponding .svg file using inkscape, everything looks the way it should be (same with .tex and .dvi). However, there appears to be some problem when creating a video/image with the svg file, as it looks like that:

This separation of text and lines happens with e.g. circuitikz or chemfig as well.
Interestingly, in contrast to many other issues here, the error (probably) happens after executing manimlib/utils/tex_file_writing.py

Please post/link the svg file.

The .svg file should be all right.
svg_file.tar.gz


Board definitions not being updated on first start

@carlosperate Upon restarting Ardublockly the I/O pins list is not refreshed. This is particularly noticeable if an ESP based board is selected in preferences.
Below is the result after restarting Ardublockly once the settings are modified.
If you could point me in the direction as to where I should be looking I could try and fix it.

I fixed that requesting the boards in the Ardublockly.init function in ardublockly.js and then calling Ardublockly.changeBlocklyArduinoBoard like in the settings.


How to open https url?

can't open https url

It would be more helpful if you provided a proper description of what actual build script you use and what command you execute.
You can also check the configure script for details. Look for "needed for https support". Certain required modules aren't enabled by default.

I want to open "https://prclive1.listenon.in/" url and get PCM data.

I tried to build openssl with FFMPEG. But I can not
I tried gnutls also. But failed..
Can you help me to build any of them (openssl or gnutls) with FFMPEG?

@basaktamal , sorry, I'm currently completely out of capacity.

you need to add ssl library to enable ffmpeg to open https url, I am working on it.

Now you could try the development branch, enable mbedtls, then it should be ok.

As of v2.8 the https urls should be supported.


Pare down and limit use of secondary indices

only update them under the partial affinity path
drop one of them entirely in lieu of some smaller sub-objects on PartialRange
fix a potential bug under reapSinglePeer

r @raynos @rf
cc @kriskowal

legit.


Inquiry: ScriptBridge example/documentation

Hello,
I am trying to inquire if there is an example anywhere in the codebase on how to use the ScriptBridge in KarateBDD features. Tried to peruse the documentation and didn't see any references.
Please let me know.
Thank You

the scriptbridge ends up as the karate object at run time, and the methods on it are documented here. otherwise the java side is not designed to be used directly: https://github.com/karatelabs/karate#the-karate-object
you can use stack overflow if you have more questions


Krane run

Problem
Add the krane run command, https://docs.google.com/document/d/1oInUsKplYGNWTymPY48xtDCx3x4Cwc-phcEKUkt2v4U/view# has details on flags that need to be supported.
Ensure that new & run use the same conventions as the other tasks, if there is a mismatch that needs to be fixed it can be done in a second PR.
This is blocked by #524.
Possible solution
Build a thor task that calls RunnerTask.new. See #530 for thoughts about --verify-result=false.
Acceptance criteria

The command must work with all flags
The command should have tests.

Additional context
#256 is the tracking issue for the new CLI.

I'll cut an issue for -f and try to get time to hack on it myself.


Add konjtide's file

created a branch, created a file and made a commit, and opened a pull request

top!


Fix sidebar crashing when no elements are active

closes https://github.com/zuramai/mazer/issues/278

LGTM!


python-language-server completion matches can be inaccurate

The python-language-server suggestions can be inaccurate, returning all kinds of matches which don't match the preceding word. We should address this by filtering the matches in Vim too, after the results come back from the LSP server. Here is an example:

I found the cause of this and I can fix it. I'll push a commit when I can for it.

https://github.com/w0rp/ale/commit/2696cff3b80204754b1c8b9effe92e25ba7dfba2 Commit here, needs tests.


Add alpine support when layering sshd on top

Signed-off-by: Csaba Palfi<EMAIL_ADDRESS>

Updated version of #141 rebased with master


How to exclude React packages from production build?

I need only native web-components without react libs in build file. Is it possible to do that?
My Vite config:
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    // generate .vite/manifest.json in outDir
    manifest: true,
    rollupOptions: {
      // overwrite default .html entry
      input: '/src/index.jsx',
    },
  },
})

index.jsx:
import ReactDOM from "react-dom/client"
import r2wc from "react-to-webcomponent"
import 'vite/modulepreload-polyfill'

const Greeting = () => {
 return
Hello, World!

}

const WebGreeting = r2wc(Greeting, React, ReactDOM)

customElements.define("web-greeting", WebGreeting)

Rollup has the option external to exclude files or dependencies from the bundle: https://rollupjs.org/configuration-options/#external
You can use something like this:
    rollupOptions: {
      external: ['react'],
      output: {
        globals: {
          react: 'React',
        },
      },
    },


Feature request: Session management

Hi, I think your repo is cool. It just that I want to save history, maybe for every interactive chat answer, I'll save it somewhere. Thanks for making this repo!

Can you describe the user interface you'd like to see in more detail?


importsNotUsedAsValues is wrong

@kdy1 This is not the behaviour of tsc under "importsNotUsedAsValues": "preserve". The correct behaviour is to never preserve completely unused import identifiers. The above branch should always be used.
I think ImportNotUsedAsValues should be removed since it's a misunderstanding of the equivalent tsc option.
Originally posted by @nayeemrmn in https://github.com/swc-project/swc/pull/1060#discussion_r491990064
It's a breaking change.

@kdy1 What if I don't remove the option, but disassociate it with any behaviour for now? The behaviour it's currently associated with should unconditionally be "remove".

I think it's not correct. I think it should at least panic if an option which causes wrong behavior.
Actaully decorator pass does it, because decorator metadata for current proposal is not implemented yet.

@kdy1 Nevermind, I can fix it to cause the correct behaviour.

@nayeemrmn Sounds great!


Documentation in the dev branch needs to be updated

For the additional / updated args.

@whatageareyouin probably a good time to incorporate all the recent changes into the main branch once the documentation has been updated. #12 and #6 may take some time to implement.

@whatageareyouin probably a good time to incorporate all the recent changes into the main branch once the documentation has been updated. #12 and #6 may take some time to implement.

Great idea. I'll have a go at updating the documentation and merging everything into main today.


CHAOS-5497 Linux JVM method latency

Linux JVM method latency

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://664c7cf32328900db161499c--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://664c8f9967c7dc15f4ae6f64--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://664ed4f05d99cc9e13ac4911--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://664ee9051d3f20bcb62c7180--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://664f342a3b6f4a0983957d09--harness-developer.netlify.app


FIX :: cannot find transport (#854)

I have the same issue #854.
And I checked PR for solving #855.
But, how about this solution?
I think it's a simple solution.
I hope this issue gets resolved soon. Thank you.

Thanks for contribution. Sorry noticed your fix too late. Fixed in https://github.com/mrniko/netty-socketio/commit/206f33006befaedfe47153a42ea2b4c7bfe301ee


Client Allocation Request for: coinjunda

Client Allocation Questions
Core Information

Name: coinjunda
Website / Social Media: https://pf.kakao.com/_eLxaxjT
DataCap Requested: 5TiB
Addresses to be Notarized: f1cgrr3i6fsl433x2jxfamw7lpcggwt5duelal7wa
Notary Requested: philippbanhardt

Hey @janggoony - thanks for your request. Can you kindly add more information / context here on:

yourself , e.g. include links to social media / news mentions etc
your history working on IPFS / Filecoin, e.g. notable contributions to the community, type of engagement shown over time etc
type, size, source and your relationship with the data you (and by extension other Discover participants) are looking to store on Filecoin, e.g. public data vs private data, who owns the data / license, etc
how you intend to store the data on Filecoin, e.g. redundancy, location / miner preferences, etc

Thanks

We run a crypto information service community called 'coinjunda' in South Korea since october 2019
https://pf.kakao.com/_eLxaxjT

We started mining in July 2020, (we are sealing 30TB a day)
also we started participating in slingshots last month.
It hasn't been long since we've been involved in slacks, but we are planning to actively participate in the bug report and so on

We've been committed to the Crypto Market for about three years. Therefore, we have a lot of data related to crypto. Especially we have stored curated public dataset "Public Blockchain Datasets", "Top 100 Crypto Invester Dataset" as a Slingshot competitor .The total amount of data will be 10TB and will make 5 to 10 replications

I plan to find various minors regardless of geographhical location by using the slack.
I promise not to gain undue advantage from any force and entities

When can I get confirmation?

When can I get confirmation?


Unskippable loading screen if the coordinator is down

I don't think this happens in all scenarios where the coordinator is down/unreachable, but I definitely ran into this using the test app.
We should not block app users from using the app if the coordinator is down. They should at least be able to force-close and use the on-chain wallet.

I think this happens when the user is registering for the first time.

Very possible. Let me verify this, but we can close it if that's the case.


Adds APIs to lazy load agent level histogram data

This is an attempt to reduce response size when querying complex server maps with a large number of agents.
A new API for server map has been added that does not serialize agent-level histogram data, which accounts for the majority of the response size. Application-level histogram data could also be included in this exclusion, if response size needs to be further trimmed.
In order to account for these changes, 2 APIs have also been added to fetch agent-level node histograms and link histograms.

Codecov Report

Merging #3210 into master will decrease coverage by 0.14%.
The diff coverage is 23.97%.

@@            Coverage Diff             @@
##           master    #3210      +/-   ##
==========================================
- Coverage   39.27%   39.12%   -0.15%
==========================================
  Files        2042     2049       +7
  Lines       67188    67448     +260
  Branches     9331     9375      +44
==========================================
+ Hits        26388    26391       +3
- Misses      38200    38454     +254
- Partials     2600     2603       +3

Impacted Files
Coverage Δ

...nt/web/service/map/processor/RpcCallProcessor.java
72.83% <ø> (ø)

...ice/map/processor/AcceptApplicationLocalCache.java
95.23% <ø> (ø)

...eb/service/map/processor/LinkDataMapProcessor.java
100% <ø> (ø)

...nt/web/service/map/processor/WasOnlyProcessor.java
100% <ø> (ø)

...p/pinpoint/web/service/FilteredMapServiceImpl.java
0% <0%> (ø)
:arrow_up:

...vercorp/pinpoint/web/controller/MapController.java
0% <0%> (ø)
:arrow_up:

...service/map/processor/SourceApplicationFilter.java
0% <0%> (ø)

...ce/map/processor/DestinationApplicationFilter.java
0% <0%> (ø)

...point/web/view/NodeHistogramSummarySerializer.java
0% <0%> (ø)

...navercorp/pinpoint/web/service/MapServiceImpl.java
0% <0%> (ø)
:arrow_up:

... and 42 more

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 176b9f9...8b8ad1a. Read the comment docs.


Version for Apple TV?

Is there any chance of a version for Apple TV? It would be good to be able to decrypt Apple TV apps on device the same as iOS, so they can be tweaked and installed on other devices.
Many thanks!

I’m also looking for a jailbroken Apple TV. Any chance to have one some how?


Memory leak: registration_handleRequest

In registration_handleRequest (registration.c), prv_getParameters is called which allocates memory for all kind of information like name,lifetime and also version.
In some code paths (actually in all code paths), version is never used again after comparing it and never free`d again therefore.
One way to fix this is shown below:
            // version must be 1.0
            if (strlen(version) != LWM2M_VERSION_LEN
                || lwm2m_strncmp(version, LWM2M_VERSION, LWM2M_VERSION_LEN))
            {
                lwm2m_free(version);
                lwm2m_free(name);
                if (msisdn != NULL) lwm2m_free(msisdn);
                return COAP_412_PRECONDITION_FAILED;
            }

            // BUGFIX: Free version
            lwm2m_free(version);
            version = NULL;

version is no longer a dynamically allocated variable so the issue no longer exist.
Fixed by Registration version differences for LWM2M 1.1.
@sbernard31 @sbertin-telular If you agree please close


Link discord users with mc users

If this ever gets implemented, it could be used for example to:

Chat and send commands as if the person is on the server for linked accounts


DLPacker_weights.h5

File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5f.pyx", line 102, in h5py.h5f.open
FileNotFoundError: [Errno 2] Unable to synchronously open file (unable to open file: name = '/DLPacker/dlpacker/data/DLPacker_weights.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)

no information or explanation to reproduce


Shell exit before process cleanup

The shell exits sometimes before the processes are cleaned up. This sometimes has a side effect of leaving processes orphaned.

Process cleanup is working as good as possible using node-pstree.
https://www.npmjs.com/package/node-pstree


no info about rewrite_prov.py and how to use it

no info about rewrite_prov.py and how to use it

commit 82b050a should not be linked to this but to #27

info has been added


Added salt files to manage the admin node

Since kubic-project/velum#185, the admin node is managed by Salt. For
now we handle it in the same way as the CA node.
Signed-off-by: Miquel Sabaté Solà<EMAIL_ADDRESS>

See kubic-project/caasp-container-manifests#57

I've copy-pasted stuff from the ca directly. This is probably not the best approach ...

I'm not sure I understand what this PR is supposed to be doing?

This is all specific to the ca node, the admin node doesn't require any of this.

I think salt/admin/init.sls should just be blank, or not even exist.

As long as we have an identifiable salt-minion (with id: admin, even with roles: admin too), probably created by the activate.sh script, and we can update our salt-states in the future to target it, we are fine.

I don't think we want any of this for the admin node, since all this is only ca-related.

The current contents of the files are unrelated to what the admin should do. We can add salt files for the admin node whenever we want, when we have something specific to do in it, as long as the salt-minion running in the administration dashboard node is connected to the salt-master (with the correct id/roles grain).

I would drop this PR, at least for now, until the admin has specific logic to run.

Thanks for the review. I agree, I submitted this PR along with the one with kubic-project/caasp-container-manifests#57, because this was what I more or less used for kubic-project/velum#185. As discussed on IRC, this is not really the way to go, and instead we are moving towards having it on the host directly like the other salt minions.
Since, as you are saying, this brings nothing useful at the moment, we can happily drop this PR (I should've marked this PR as WIP...).

I'm not sure I understand what this PR is supposed to be doing?

Hopefully kubic-project/terraform#72 is more clarifying 😅. As discussed for kubic-project/velum#185, we are having the admin node as a salt minion as well, since this way we'll be able to perform some operations like obtaining the tx_* grains, or rebooting the node in a transparent way. Since that PR, Velum already handles this minion id, and ignores it as it's done for the ca.


[Event Request] Table 1003 "Job Planning Line" - OnBeforeUpdateReservation

Please add an OnBeforeUpdateReservation() event in Table 1003 "Job Planning Line":
local procedure UpdateReservation(CalledByFieldNo: Integer)
var
    ReservationCheckDateConfl: Codeunit "Reservation-Check Date Confl.";
    IsHandled: Boolean;
begin
    if (CurrFieldNo <> CalledByFieldNo) and (CurrFieldNo <> 0) then
        exit;
    IsHandled := false;
    OnBeforeUpdateReservation(Rec, xRec, CalledByFieldNo, IsHandled);
    if IsHandled then
        exit;

    [...]

The new event:
[IntegrationEvent(false, false)]
local procedure OnBeforeUpdateReservation(var JobPlanningLine: Record "Job Planning Line"; var xJobPlanningLine: Record "Job Planning Line"; CalledByFieldNo: Integer; var IsHandled: Boolean)
begin
end;

Thanks!

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Add support for CFGF_DEPRECATED and CFGF_DROP option flags

Fix issue #24

CFGF_DEPRECATED causes a deprecated warning message for an option
CFGF_DEPRECATED | CFGF_DROP causes a deprecated option to be dropped

Note: CFGF_DROP must currently be used with CFG_DEPRECATED to have
an effect on the option.
Signed-off-by: Sebastian Geiger<EMAIL_ADDRESS>Signed-off-by: Joachim Nilsson<EMAIL_ADDRESS>

I should update the documentation a bit for these two new option flags, and add some blurb to the changelog, but I believe @lanoxx patch from #24 is more than OK for inclusion.

Looks good. Thanks for cleaning up the patch.

@lanoxx No problem. Thanks for good work, and the audit! :smiley: :+1:


Doing no graphics in @gfx, stalls processing the full @gfx section

This is probably not a big issue and should not keep you from going to sleep sometimes (as far as I'm concerned):
When you have for example the following code in the @gfx section, processing of all code in that section stops. In this example gfx.debug will not increase:
@sample
gfx.debug_sample += 1;

@gfx
gfx.debug += 1;

// Uncomment this for letting things run 'normal'
/*
gfx_x=10;
gfx_y=10;
tmp=#;
sprintf(tmp,"Just to do something %d", gfx.debug);
gfx_drawstr(tmp);
*/

You can see in the editor whether gfx.debug and gfx.debug_sample (the last one will keep increasing) are increasing or not:

BTW: I'm not trying to find as many bugs as I can find and I'm also not implying they al must be fixed at once, but you people seem really determined to make this plugin a good plugin and therefore I will report what I run into. Maybe at some time I find the strength to set up an environment that I can compile this plugin myself and be a little more constructive. One can always hope...

The view would skip repaints when the view is unchanged, as an optimization; but this optimization has been implemened with a logic error, which should be now fixed in 6dd9cf2.

It works fine now. Thanks


cgo_helpers.h wont compile

I found a case in gpgme that doesn't seem to generate cgo_helpers.h quite right. I've created a minimal example of it (no dependence on gpgme) to demonstrate.
gpgme.yml:
---
GENERATOR:
  PackageName: gpgme
  Includes: ["gpgme.h"]
PARSER:
  SourcesPaths: ["gpgme.h"]
TRANSLATOR:
  Rules:
    global:
      - {action: accept, from: "^gpgme_"}

gpgme.h:
typedef unsigned int gpg_error_t;
typedef gpg_error_t gpgme_error_t;
typedef gpgme_error_t (*gpgme_io_cb_t) (void *data, int fd);
typedef gpgme_error_t (*gpgme_register_io_cb_t) (void *data, int fd, int dir,
						 gpgme_io_cb_t fnc,
						 void *fnc_data, void **tag);

And here's the error:
$ rm -rf gpgme/ && cgogen gpgme.yml && go build ./gpgme
  processing gpgme.yml done.
# github.com/proglottis/autogpgme/gpgme
could not determine kind of name for C.fnc

clang errors for preamble:
In file included from gpgme/cgo_helpers.go:9:
./cgo_helpers.h:14:75: error: unknown type name 'fnc'
unsigned int gpgme_register_io_cb_t_de500e8c(void* data, int fd, int dir, fnc fnc, void* fnc_data, void** tag);
                                                                          ^
1 error generated.

The fnc fnc argument has the wrong type.

@proglottis much thanks for the report, it should be OK now! Be careful though with these callbacks.

Also, please check out this Makefile to make life easier ;)
https://github.com/xlab/cgogen/wiki/Makefile-template


Matterport3D for DirectionNet

Could you please tell which scan from Matterport is used for the pretrained model provided?
I requested for the dataset, and I have been given a script to download it. If you could specify the command that you used to download some particular scan, that will be even better.

Where can I get this 'pano' directory from. It contains iamges from Matterport3D dataset, but which scan to be exact?
https://github.com/arthurchen0518/DirectionNet/blob/eca4a4522bafe71b093a4eca4a6917e86f80f2ee/dataset.py#L206


Website cannot be detected while seeding

Description
I can't get tenancy to detect what is the current website when running database seeding.
php artisan tenancy:db:seed --class SomeCustomSeeder

Actual behavior
In the custom seeder:
$website = app(Environment::class)->tenant();  // NULL
$uuid = DB::getDatabaseName(); // e9743498cb3440b79622183a622f79fe

Expected behavior
In the custom seeder:
$website = app(Environment::class)->tenant();  // Website object
$uuid = DB::getDatabaseName(); // e9743498cb3440b79622183a622f79fe

Information

hyn/multi-tenant version: 5.4.latest
laravel version: 5.8.latest
database driver and version: MySQL
php version: 7.4

tenancy.php config
use Hyn\Tenancy\Database\Connection;

return [
    'key' => env('TENANCY_KEY', null),

    'models' => [
        /**
         * Specify different models to be used for the global, system database
         * connection. These are also used in their relationships. Models
         * used have to implement their respective contracts and
         * either extend the SystemModel or use the trait
         * UsesSystemConnection.
         */
        // Must implement \Hyn\Tenancy\Contracts\Hostname
        'hostname' => \Hyn\Tenancy\Models\Hostname::class,
        // Must implement \Hyn\Tenancy\Contracts\Website
        'website' => \Hyn\Tenancy\Models\Website::class
    ],
    'website' => [
        /**
         * Each website has a short random hash that identifies this entity
         * to the application. By default this id is randomized and fully
         * auto-generated. In case you want to force your own logic for
         * when you need to have a better overview of the complete
         * tenant folder structure, disable this and implement
         * your own id generation logic.
         */
        'disable-random-id' => false,
        /**
         * The random Id generator is responsible for creating the hash as mentioned
         * above. You can override what generator to use by modifying this value
         * in the configuration.
         *
         * @warn This won't work if disable-random-id is true.
         */
        'random-id-generator' => Hyn\Tenancy\Generators\Uuid\ShaGenerator::class,
        /**
         * Enable this flag in case you're using a driver that does not support
         * database username or database name with a length of more than 32 characters.
         *
         * This should be enabled for MySQL, but not for MariaDB and PostgreSQL.
         */
        'uuid-limit-length-to-32' => env('LIMIT_UUID_LENGTH_32', true),
        /**
         * Specify the disk you configured in the filesystems.php file where to store
         * the tenant specific files, including media, packages, routes and other
         * files for this particular website.
         *
         * @info If not set, will revert to the default filesystem.
         */

        // Disable tenancy disk as it doesn't handle public and private disks

        'disk' => false,
        /**
         * Automatically generate a tenant directory based on the random id of the
         * website. Uses the above disk to store files to override system-wide
         * files.
         *
         * @info set to false to disable.
         */
        'auto-create-tenant-directory' => true,
        /**
         * Automatically rename the tenant directory when the random id of the
         * website changes. This should not be too common, but in case it happens
         * we automatically want to move files accordingly.
         *
         * @info set to false to disable.
         */
        'auto-rename-tenant-directory' => true,
        /**
         * Automatically deletes the tenant specific directory and all files
         * contained within.
         *
         * @see
         * @info set to true to enable.
         */
        'auto-delete-tenant-directory' => true,
        /**
         * Time to cache websites in minutes. Set to false to disable.
         */
        'cache' => 10,
    ],
    'hostname' => [
        /**
         * If you want the multi tenant application to fall back to a default
         * hostname/website in case the requested hostname was not found
         * in the database, complete in detail the default hostname.
         *
         * @warn this must be a FQDN, these have no protocol or path!
         */
        'default' => env('TENANCY_DEFAULT_HOSTNAME'),
        /**
         * The package is able to identify the requested hostname by itself,
         * disable to get full control (and responsibility) over hostname
         * identification. The hostname identification is needed to
         * set a specific website as currently active.
         *
         * @see src/Jobs/HostnameIdentification.php
         */
        'auto-identification' => env('TENANCY_AUTO_HOSTNAME_IDENTIFICATION', true),
        /**
         * In case you want to have the tenancy environment set up early,
         * enable this flag. This will run the tenant identification
         * inside a middleware. This will eager load tenancy.
         *
         * A good use case is when you have set "tenant" as the default
         * database connection.
         */
        'early-identification' => env('TENANCY_EARLY_IDENTIFICATION', true),
        /**
         * Abort application execution in case no hostname was identified. This will throw a
         * 404 not found in case the tenant hostname was not resolved.
         *
         * @see https://hyn.readme.io/v3.0/docs/tenancy#section-hostnameabort-without-identified-hostname
         */
        'abort-without-identified-hostname' => env('TENANCY_ABORT_WITHOUT_HOSTNAME',true),
        /**
         * Time to cache hostnames in minutes. Set to false to disable.
         */
        'cache' => 10,
    ],
    'db' => [
        /**
         * The default connection to use; this overrules the Laravel database.default
         * configuration setting. In Laravel this is normally configured to 'mysql'.
         * You can set a environment variable to override the default database
         * connection to - for instance - the tenant connection 'tenant'.
         *
         * @see https://hyn.readme.io/v3.0/docs/tenancy#section-dbdefault
         */
        'default' => env('TENANCY_DEFAULT_CONNECTION'),
        /**
         * Used to give names to the system and tenant database connections. By
         * default we configure 'system' and 'tenant'. The tenant connection
         * is set up automatically by this package.
         *
         * @see src/Database/Connection.php
         * @var system-connection-name The database connection name to use for the global/system database.
         * @var tenant-connection-name The database connection name to use for the tenant database.
         */
        'system-connection-name' => env('TENANCY_SYSTEM_CONNECTION_NAME', Connection::DEFAULT_SYSTEM_NAME),
        'tenant-connection-name' => env('TENANCY_TENANT_CONNECTION_NAME', Connection::DEFAULT_TENANT_NAME),
        /**
         * The tenant division mode specifies to what database websites will be
         * connecting. The default setup is to use a new database per tenant.
         * In case you prefer to use the same database with a table prefix,
         * set the mode to 'prefix'.
         *
         * @see src/Database/Connection.php
         */
        'tenant-division-mode' => env('TENANCY_DATABASE_DIVISION_MODE', 'database'),
        /**
         * The database password generator takes care of creating a valid hashed
         * string used for tenants to connect to the specific database. Do
         * note that this will only work in 'division modes' that set up
         * a connection to a separate database.
         */
        'password-generator' => Hyn\Tenancy\Generators\Database\DefaultPasswordGenerator::class,
        /**
         * The tenant migrations to be run during creation of a tenant. Specify a directory
         * to run the migrations from. If specified these migrations will be executed
         * whenever a new tenant is created.
         *
         * @info set to false to disable auto migrating.
         *
         * @warn this has to be an absolute path, feel free to use helper methods like
         * base_path() or database_path() to set this up.
         */
        'tenant-migrations-path' => database_path('migrations_tenant'),
        /**
         * Seeds the newly created tenant database based on this Seeder.
         *
         * @info requires tenant-migrations-path to be in use.
         *
         * @warn specify a valid fully qualified class name.
         * @example App\Seeders\AdminSeeder::class
         */
        'tenant-seed-class' => null,
        /**
         * Automatically generate a tenant database based on the random id of the
         * website.
         *
         * @info set to false to disable.
         */
        'auto-create-tenant-database' => true,
        /**
         * Automatically rename the tenant database when the random id of the
         * website changes. This should not be too common, but in case it happens
         * we automatically want to move databases accordingly.
         *
         * @info set to false to disable.
         */
        'auto-rename-tenant-database' => true,
        /**
         * Automatically deletes the tenant specific database and all data
         * contained within.
         *
         * @info set to true to enable.
         */
        'auto-delete-tenant-database' => true,
    ],
    'folders' => [
        'config' => [
            /**
             * Merge configuration files from the config directory
             * inside the tenant directory with the global configuration files.
             */
            'enabled' => false,
            /**
             * List of configuration files to ignore, preventing override of crucial
             * application configurations.
             */
            'blacklist' => ['database', 'tenancy', 'webserver'],
        ],
        'routes' => [
            /**
             * Allows adding and overriding URL routes inside the tenant directory.
             */
            'enabled' => false,
            /**
             * Prefix all tenant routes.
             */
            'prefix' => null,
        ],
        'trans' => [
            /**
             * Allows reading translation files from a trans directory inside
             * the tenant directory.
             */
            'enabled' => false,
            /**
             * Will override the global translations with the tenant translations.
             * This is done by overriding the laravel default translator with the new path.
             */
            'override-global' => false,
            /**
             * In case you disabled global override, specify a namespace here to load the
             * tenant translation files with.
             */
            'namespace' => 'tenant',
        ],
        'vendor' => [
            /**
             * Allows using a custom vendor (composer driven) folder inside
             * the tenant directory.
             */
            'enabled' => false,
        ],
        'media' => [
            /**
             * Mounts the assets directory with (static) files for public use.
             */
            'enabled' => true,
        ]
    ]
];

I can confirm this bug, however I was able to retrieve all current website data in array form using this command inside my seeding class:
$website = DB::connection('tenant')->getConfig();

This is not a bug.  When seeding, the tenant is not fully identified, but only the database connection is configured.
To get the tenant, you need to fetch it manually using the ID retried from the database config.

Ok we finally got the proper way to get the website during seeding
$website = app(\Hyn\Tenancy\Repositories\WebsiteRepository::class)->findByUuid(config('database.connections.tenant.uuid'));

The solution to this is to simply let tenancy to do the work for you. I don't really care who the tenant is when doing seeding.
Artisan::call('tenancy:db:seed --class LocalesSeeder');

Can this be closed then?


Allow Subscription without Annotations

We have a project where we would love to use MBassador. In our use case, though, we'd prefer to avoid the use of annotations to mark hander methods, preferring instead the more 'old-fashioned way' where we have listeners that implement a particular interface.
More specifically, we have a class like this
public interface OurSpecialListener{
public void onEvent(Event e );
}
and then classes implement this interface in order to listen.
Is there a way to use MBassador in this situation?  For a greenfield project, we agree that the annotations way is cleaner, and we're completely sold that the inner workings of MBassador is awesome, so we'd like to get the performance benefits, but stay compatible with our current listener structures

Surfing through other issues, it appears that this request might solve this need:
https://github.com/bennidi/mbassador/issues/67
If so, let me know and I will close thise one.

It's true. #67 would provide you with a convenient solution. Unfortunately, I currently lack the time to implement this enhancement. Maybe there is someone who wants to pick up that issue? Most of the work would have to be done within the MetadataReader. It shouldn't be too hard to do but a bit of pain since the Java reflection API really is far from convenient.

Ok Closing this one, #67 captures the need.


Sandbox / Carousels: MainPageCarousels / InitializeComponent: SkiaButton_Tapped signature

No method SkiaButton_Tapped with correct signature found on type Sandbox.Views.MainPageCarousels'

XAML:
<draw:SkiaButton
  Tapped="SkiaButton_Tapped"

c#:
private void SkiaButton_Tapped(object sender, AppoMobi.Maui.Gestures.TouchActionEventArgs e)

Fix:
private void SkiaButton_Tapped(object sender, SkiaGesturesParameters e)

Has chaanged the signature indeed, might have not upgraded code in all the samples.. Thanks for pointing this out, will correct this one shortly. Meanwhile you could use the intellisense to correct to the correct signature if you want.

There is a similar line in MainPageDrawers, but the method is not currently called, so it doesn't complain.

Fix will get pushed soon.


Support colons in attributes

Hello,
I'm submitting this issue because I haven't been able to find a related support topic in the docs.  I apologize is this is an inappropriate forum.  I need to create an xml attribute that looks like this: d2l_2p0:material_type="contentmodule".  I've been manipulating all of my data as js objects and then converting them to XML at the end of the process with your library (thanks!).  Mostly, I've been using JS statements like this jsonBeforeConfertedToXML._attributes.title = 'myTitle'. Of course, if I try to make the attribute jsonBeforeConfertedToXML._attributes.d2l_2p0:material_type = 'myMaterialType' JS complains about the colon.  I understand that the colon syntax is an XML convention for describing namespaces, but just don't know how to implement it in JS so that it converts cleanly to XML with this library.
Thank you for your help.  I can repost this elsewhere and close the issue if necessary.

To understand the problem better, please provide minimal sample input and the output generated by this library. Or please provide the expected output if you cannot get any proper output from this library.

I have the same issue, but, instead of this:
jsonBeforeConfertedToXML._attributes.d2l_2p0:material_type = 'myMaterialType
I'm pretty sure JS let's you use this notation interchangeably:
jsonBeforeConfertedToXML._attributes["d2l_2p0:material_type"] = 'myMaterialType
This notation works in my namespaced model - in both directions.
Thanks so much @nashwaan for this awesome library.
I assume that moving namespaces into a "namespace" attribute at the same level of the namespaced element would be possible - similar to how you allow the parent to be injected - but U guess we risk collisions if two elements from different namespaces have the same name.


NOT READY fix(#1975): remove console warning for deprecated props

Before (the change)
console warning for aria*

console warning for variant="nocolor"

After (the change)
No such console warnings anymore.
Make sure that you've checked the boxes below before you submit the PR

[x] I have read and followed the setup steps
[ ] I have created necessary unit tests
[x] I have tested the functionality in both React and Angular.

Steps needed to test
To test the variant="nocolor"
Add the code below in Angular playground and toggle the commented line to see the console warning
<!-- <goa-icon-button icon="close" size="small" variant="nocolor"></goa-icon-button> -->
<goa-icon-button icon="close" size="small" variant="dark"></goa-icon-button>
<goa-icon-button icon="close" size="small" variant="color"></goa-icon-button>

Discussed with Chris and Vanessa and confirmed that we need these properties, just suppress the console warning for ariacontrols and ariaexpanded.
The closest tothe  varaint="nocolor" is variant="dark", sample code is in the description.

I still got the console error for  variant="nocolor" for both react and angular

@lizhuomeng71
The variant="nocolor" option is deprecated but still available.... however if devs use it (like you did in your example) it will give the console warning. What I have done in this PR is to remove all such occurences in "our codebase" and replace it with variant="dark", but there is nothing stopping you from using variant="nocolor".

issue is verified on react and angular,

:tada: This PR is included in version 1.17.0-alpha.87 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.0.0-alpha.5 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add name to logger.autodir for different runs and simplify

I already had a previous pull-request about the same issue. This time summon the courage I try to convince you again about this feature. (see mnist-embedding.py for example). Sometimes, one uses the same training script (ResNet-18 vs. ResNet-50, mnist-embedding.py 'cosing' vs. mnist-embedding.py 'triplet'). But the runs all are tagged by the common scheme:
mynetwork0512-133348
mynetwork0515-094639
mynetwork0515-094924
mynetwork0515-095128
mynetwork0515-095232
mynetwork0515-095259
mynetwork0515-095339
mynetwork0515-095424
mynetwork0515-095619
mynetwork0515-095722
mynetwork0515-095751
mynetwork0515-100318
mynetwork0515-101107
mynetwork0515-101613
mynetwork0515-101841
mynetwork0515-102313
mynetwork0515-103231

while they are completely different. There are two other ways of solving this issue:

use different files.py (ugly way duplicating code)
always set the logger.dir manually by logger.set_logger_dir. But this does not give the interactive menu about backup, new, delete, ...

With logger.auto_set_dir(name=some_value) the list is much more understandable:
mynetwork:ideaA0512-133348
mynetwork:ideaA0515-094639
mynetwork:ideaA0515-094924
mynetwork:ideaB0515-095128
mynetwork:ideaB0515-095232
mynetwork:ideaB0515-095259
mynetwork:ideaC0515-095339
mynetwork:ideaC0515-095424
mynetwork:ideaC0515-095619
mynetwork:ideaC0515-095722
mynetwork:ideaC0515-095751
mynetwork:ideaD0515-100318
mynetwork:ideaD0515-101107
mynetwork:ideaB0515-101613
mynetwork:ideaD0515-101841
mynetwork:ideaD0515-102313
mynetwork:ideaA0515-103231

If logger.set_logger_dir sees an existing directory, it will still give an interactive menu

Do you really want us to write
os.path.join('train_log', basename[:basename.rfind('.')]) all the time instead of a parameter?

 But "auto" is not so smart either.
I can totally see that adding a "name" option would make things easier, but what if I have to store to a different directory (this is happening to me now because of disk space)? Another "dir" option? What if someone doesn't like "train_log" (#266 seems to suggest so)? Another option?

What about TENSORPACK_LOGDIR. You already have TENSORPACK_DATASET and TENSORPACK_PIPES or so.

That said, I'm OK with making a function for "getting the basename for the entry point" into utils. It's just 3 lines but not trivial lines..
To try new ideas I just rename the main script. I used to modify the scripts in-place until I realize it's hard to stay on track. I ran idea1-run1, idea2-run2... in parallel, and the next morning I forgot what exactly is idea1 and run1.
I've seen some scripts from openai, where every time something is run, a git diff is created to the log directory. That could be also a solution to my problem..

That git diff is only working, when one is regularly doing commits :-)
Ok, maybe the word idea is misleading.
Currently, I am directly facing a problem, where I can easily adjust a hyper-parameter about e.g. the depth of the network and I just find it convenient to have a function which adds a suffix to the path. Still, my current solution with pen and paper is not optimal.

An environment variable for log directory may not be a good idea, because I don't always want logs in the same place -- for small experiments I prefer them in the current directory. Env vars should be used for something that's always the same.
Imaging I don't have this function at all and someone sends a PR to add the same auto_set_dir, I certainly wouldn't like it because it's personal preference: current dir + "train_log" + basename. I think it's already a mistake to bake in my own preference -- clearly now it doesn't work for everyone (including you, #266, and me as well).
I don't know now what's the best thing to do about it. I guess one thing is to reduce the use of it in examples so others know the existence of set_logger_dir. Adding an option to partially fix the awkwardness might be OK, but the fix is very partial -- I still have the directory problem.

About the path issue: What about adding yet another argument "root" with Default "./train_log/"?

More options can be added of course.. but the point is that essentially people want to customize every part in the path. Using the more general interface is the clean solution for users to understand what to do, rather than adding more and more options and explaining in the doc how the actual path is made from those options.
Anyway I think the name options is OK.


Elasticsearch Reports 503 Service Unavailable

I have a 6 node cluster running ES 1.5.2.  All 6 nodes are data nodes with 3 nodes set up to be allowed as masters.  When I installed the tempest plugin and restarted ES, all of the nodes would respond with 503 curl calls.  I tried restarted each of the nodes, but the problem didn't resolve itself.  I was forced to uninstall the plugin.  After a uninstalling the plugin and restarting the nodes, all 6 came up without any issues.
Because of my environment, I can't copy and past logs.  I'll provide what I can by manually copying the seemingly relevant parts.
While the plugin was installed, the elected master node (host4) had the following in the logs:
[2015-07-09 18:08:05,260] [INFO] [com.datarank.tempest.allocator.LocalMinimumShardsAllocator]  [host4] Unable to allocate [<index_name>] [5] [p], ignoring.
The above line repeats for all of the indexes, then I see:
[2015-07-09 18:08:05,281] [INFO] [com.datarank.tempest.allocator.LocalMinimumShardsAllocator]  [host4] Exiting allocateUnassigned, 0 unassigned shards and 650 ignored unassigned shards remaining.
[2015-07-09 18:08:05,282] [INFO] [com.datarank.tempest.allocator.LocalMinimumShardsAllocator]  [host4] Rebalancing.
[2015-07-09 18:08:05,282] [INFO] [com.datarank.tempest.allocator.LocalMinimumShardsAllocator]  [host4] 0 unassigned shards and 650 ignored unassigned shards remain, exiting rebalance.
I later see the following (which is repeated for every index):
[2015-07-09 18:08:17,956] [ERROR] [discovery.zen               ]  [host4] unexpected failure during [zen-disco-join (elected_as_master)] Index [<index_name>]: Shard [2] routing table has wrong number of replicas, expected [1], got [2].
If there are specific log messages you would like me to look for, let me know and I will provide more information.  Unfortunately I am not able to provide the logs in their entirety.

Giving this a look today - I suspect it's versioning related, and if so we'll create a branch for 1.5.2. Just in case though, could you post your ES settings file?

elasticsearch.yml (removed commented info for brevity):
cluster.name: mycluster
node.name: "host01"
master servers have node.master: true set properly
node.master: false
node.data: true
I have 2 zones configured, zone1 and zone2
node.rack: zone1
index.number_of_shards: 12
index.number_of_replicas: 1
path.data: /grid/disk06/elasticsearch/data,/grid/disk07/elasticsearch/data
plugin.mandatory: analysis-phonetic,mapper-attachments
transport.tcp.compress: true
indices.recovery.max_bytes_per_sec: 400mb
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.unicast.hosts: ["host04","host05","host06"]
script.disable_dynamic: false
added for kibana
http.cors.enabled: true
http.cors.allow-orgin: http://host01:9200
added for tempest
cluster.routing.allocation.type: com.datarank.tempest.allocator.LocalMinimumShardsAllocator
And here is the output of GET /_cluster/settings (routing settings were part of an effort to adjust the default routing):
{
"persistent" : {
"indices" : {
"recovery" : {
"max_bytes_per_sec" : "400mb"
}
},
"cluster" : {
"routing" : {
"allocation" : {
"enable" : "all",
"balance" : {
"index" : "0.95f",
"primary" : "0.95f",
"shard" : "0.95f"
}
}
}
},
"discovery" : {
"zen" : {
"minimum_master_nodes" : "3",
"publish_timeout" : "1m"
}
}
},
"transient" : { }
}

Here's what's happening: tempest is building a model and then attempting to move shards in your ES cluster to match the model, right? However, ES (specifically the AllocationDeciders) is saying that the modeled moves aren't valid on your cluster. There are a number of reasons that this can happen, but I strongly suspect in your case that it has something to do with index-level routing settings.
Have you set any index-level routing settings? Possibly corresponding to your zones? I know prior to tempest, pretty much the only way to balance a cluster of heterogeneously-sized indexes was to use index.routing.allocation and cluster.routing.allocation settings to attempt to spread larger indices evenly across the cluster (which in some use cases can require continuous cluster monitoring and tweaking, as you might know). However, tempest doesn't consider these settings when building a model (#2), since they're mostly used as a hacky way to do what tempest does anyways.
If you remove index-level allocation and awareness filtering, I suspect tempest will do its thing beautifully. If you're working within a production environment and have multiple indexes, you might want to take a snapshot first so you don't have to go back in and restore those settings if you want to continue using the default ES balancer.
If the problem isn't the index-level allocation settings, we can debug ES's AllocationDeciders and see why it's not letting tempest allocate shards where it wants within your cluster.

Thanks for the reply.  I am not using index-level allocation, only the cluster routing allocation shown above.

Well I'll be darned! I've created a branch with some extra debug info that should help us figure out why ES is preventing allocation. There's a zip in the top level if you're not using maven to build locally.
Look for messages like the following:
[2015-07-14 16:01:10,158][INFO ][com.datarank.tempest.allocator.LocalMinimumShardsAllocator] [charybdis_node_0] Unable to allocate [index_0][0][p]: [YES(shard is not allocated to same node or host)][NO(node does not match index include filters [tag:"someTagNoNodeHas"])][YES(shard is primary)][YES(below primary recovery limit of [4])][YES(all allocations are allowed)][YES(all allocation is enabled)][YES(no allocation awareness enabled)][YES(total shard limit disabled: [-1] <= 0)][YES(primary shard can be allocated anywhere)][YES(enough disk for shard on node, free: [361.4gb])][YES(no snapshots are currently running)]ignoring.
The "NO" with explanation is what we're really interested in.

I will try to test this as soon as I can.  Unfortunately, I will be out on vacation until the 27th.  I will give the debug version a test when I get back.  I've already downloaded it.

I also encountered this situation after intalling this plugin in my 4node es(1.6) cluster.

@gnuhpc If you'd like to give the debug version I posted above a shot and post your master node's logs here, that'll give us the information we need to debug the problem and figure out what's keeping ES from allowing the allocations.

I still have this as a todo item as well.  I've just been busy.  I hope to test this in the next week or so.

I added tempest to our QA cluster yesterday and all seemed to work well, but I am getting this error below when it's trying to allocate today's index (we have daily indices obviously). We have 1 replica enabled and shards have EC2 availability zone restrictions. This didn't seem to cause an issue yesterday when rebalancing the cluster. I believe I also saw the issue below when trying to uninstall the plugin, so I might be stuck. Still working on that. Thanks.
[2015-09-15 13:55:02,782][DEBUG][action.admin.indices.create] [search-master02.qa1.us-east-1.local] [global.y2015m09d15.v3] failed to create
org.elasticsearch.cluster.routing.RoutingValidationException: [Index [global.y2015m09d15.v3]: Shard [0] routing table has wrong number of replicas, expected [1], got [2], Index [global.y2015m09d15.v3]: Shard [1] routing table has wrong number of replicas, expected [1], got [2], Index [global.y2015m09d15.v3]: Shard [2] routing table has wrong number of replicas, expected [1], got [2]]
        at org.elasticsearch.cluster.routing.RoutingTable.validateRaiseException(RoutingTable.java:98)
        at org.elasticsearch.cluster.routing.allocation.AllocationService.reroute(AllocationService.java:165)
        at org.elasticsearch.cluster.routing.allocation.AllocationService.reroute(AllocationService.java:148)
        at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:469)
        at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:374)
        at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:188)
        at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:158)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Thanks @cmoad, I'm looking into it now. I suspect it's caused by a disconnect between ES's allocation restrictions and tempest's modeled allocation restrictions. If that's the case, your issue might be fixed when #14 is fixed (tempest will simply continue attempting to find valid allocation destinations for unassigned shards). Will fix as soon as possible.

Hi
I'm seeing the same errors described here with the shard routine table:
Shard [3] routing table has wrong number of replicas, expected [1], got [2]
I am using ES v1.7.1 with Tempest 1.0.0.  Any updates on a fix for this issue?
Thanks!

This is fixed in Tempest 2.x


switzerland: add rules for all cantons

Information based on https://en.wikipedia.org/wiki/Public_holidays_in_Switzerland
For the days that are shared across multiple cantons, I built a base Switzerland calendar with opt-out and opt-in days for cantons to set.
Raising this in non-final state in case it may already be useful to others, I'll complete the checklist later on once I'm done moving to Luzern which is one of the best cantons from a public holiday PoV :)

[ ] Tests with a significant number of years to be tested for your calendar.
[x] Docstrings for the Calendar class and specific methods.
[x] Use the workalendar.registry_tools.iso_register decorator to register your new calendar using ISO codes (optional).
[ ] Calendar country / label added to the README.rst file.
[ ] Changelog amended with a mention like: "Added <country> by @pseudo (#)". Note Please do NOT change the version number here. It's the project maintainers' duty.

nice try, but your tests are failing apparently ;o)

@brutasse do you need help to fix this branch?

@brunobord I do lack a bit of time to refactor the tests (the ones based on the base switzerland calandar are a bit too simplistic) and for proper coverage I'd need 2-3 years for all cantons… mostly mechanical, but time-consuming. Maintainers can push to my branch if they're up for it, otherwise it'll take a while :)

Ok, I think I'll take your branch over when I can.
Don't worry about that, it'll be fine.
Thanks for the update!

@brutasse  Currently working on Switzerland, based on your work... I've got a question: does that make sense to have a Switzerland calendar without it being a Canton? Would anybody use a "generic" Switzerland calendar, do you think?

@brunobord a generic Switzeland calendar could be provided but it'd make sense for it to only contain the federal holiday, that is, 1st of august - even though 3 more days are common to all cantons.
In the context of Workalendar, a user could think it'd be a good "average" Switzerland calendar so I'm not sure it would be super valuable in practice. How does it work for other federated states?

Well, there's a test suite for the USA, because historically, there was only this one for the US. Then it expanded as tests for each State and sub-variants (counties, cities, etc). But there are a lot more Federal days in common for the USA (a bit less than 10, IIRC), so it made sense to have a "USACalendarTest" and mixins for specifics.
Starting off what you've just said, I think I'll leave the Switzerland class like this: it'll be tested through the Cantons test suites, but would only be available if someday you want to build your own calendar for your yet-to-be-named Canton, or else. The coverage results would tell me if all cases are already covered.

Release 9.2.0 uploaded on PyPI. Happy upgrading!

https://github.com/peopledoc/workalendar/releases/tag/9.2.0
https://pypi.org/project/workalendar/9.2.0/

:tada: thanks a lot @brunobord!


Can we consider doing a rebase+merge? I can help rebase it. We aren't that much diverged

What for? Is it that bad to have a merge commit?

But be my guest. Feel free to do open a new branch and try. I just thought it wasn't worth our time

git rebase main wip --interactive

worked for me. Only one conflict to resolve. And it will also drop 1096d5f and acb4718