API to modify variant in generated module metadata

I am building a Kotlin Multiplatform version of an existing Kotlin-based binary. In order to prevent duplicate classes from appearing on the consumer's classpath, I would like to modify the module metadata such that the variant for Android points to the existing dependency coordinates rather than the ones which I have built. All other variants in the module metadata should be unchanged.
As present I can create this behavior as the consumer of a dependency with metadata rules and the like, but as the publisher there does not seem to be any way to hook into the outgoing JSON.
Currently I am hooking into the task which generates the module metadata and doing a brittle-but-effective text-based replacement:
tasks.named("generateMetadataFileForKotlinMultiplatformPublication").configure {
  doLast {
    String find = file('module_find.txt').text
    String replace = file('module_replace.txt').text

    File file = outputFile.get().getAsFile()
    String text = file.text

    int start = text.indexOf(find)
    if (start == -1) {
      throw new RuntimeException("Unable to locate module_find.txt contents in module JSON ($file)")
    }
    int end = start + find.length()

    String newText = text.substring(0, start) + replace + text.substring(end)
    file.text = newText
  }
}

This allows me to alter the metadata JSON to point at an external artifact for particular variants.
 {
   "name": "releaseApiElements-published",
   "attributes": {
     "org.gradle.usage": "java-api",
     "org.jetbrains.kotlin.platform.type": "androidJvm"
   },
-  "available-at": {
-    "url": "../../compose-runtime-android/0.1.0-square.15/compose-runtime-android-0.1.0-square.15.module",
-    "group": "app.cash.redwood",
-    "module": "compose-runtime-android",
-    "version": "0.1.0-square.15"
-  }
+  "dependencies": [
+    {
+      "group": "androidx.compose.runtime",
+      "module": "runtime",
+      "version": {
+        "prefers": "1.0.4"
+      }
+    }
+  ]
 }

This feature request is for the use case, not the result. I would be happy with some kind of dependency substitution-like API for the outgoing module metadata which allowed me to express this replacement at a very high level. However, I also would be happy with a lower-level hook into the JSON generation that even was a low as providing mutable access to a JSON object tree.
I could maintain the module metadata file by hand and publish the file as part of my Maven upload rather than allowing Gradle to generate it, but this is arduous since it is based on so much of the project structure and its properties whereas all I want to do is replace a small part.
I previously asked about this on the Gradle slack (https://gradle-community.slack.com/archives/CA7UM03V3/p1625167565381100) and have also searched the Gradle source looking for a solution but so far have found none.

Hey,
Could you share more around why you cannot express that in the build itself?
We are really not keen on opening up an API for mutating the produced file. Instead we believe that use cases should be supported from the build itself.

So I mentioned this to Jake on Twitter, I think that what he's trying to do can be done with the standard APIs. If you put yourself into the "how I modify Module Metadata" mindset, or "I get this pom.xml, how do I patch it?", then it doesn't really fit the Gradle model. Instead, you should think "how do I create a publication which contains what I need". And therefore, the question isn't "how to mutate" anymore, but "how to build custom components" and you can find the docs here: https://docs.gradle.org/current/userguide/publishing_customization.html#sec:publishing-custom-components
I would then suggest to add a cross-reference in the docs, so that people looking for "how to mutate POM/Gradle Module Metadata" would have a hint that they should instead create a custom publication.

Thanks Cédric. Yes I am still trying to get it to work (been short on time).

Not an ideal scenario, but it seems like compileOnly dependencies could work in the short term for this as well.

Closing this as without more details, there is no plan to have an API to mutate the generated Gradle module metadata. Instead you should have public APIs to modify what is to be published to get the right output generated.

@JakeWharton Perhaps you actually want https://docs.gradle.org/current/userguide/component_capabilities.html? You could declare that your app.cash.redwood:compose-runtime provides capability androidx.compose.runtime:runtime.
It might be tricky/impossible to get resolution to automatically prefer the androidx library for downstream builds, though. So perhaps that's not quite what you want.
@melix I couldn't sniff out any trail starting on https://docs.gradle.org/current/userguide/publishing_customization.html#sec:publishing-custom-components that lead to information that would help with this; see https://jakewharton.com/multiplatform-compose-and-gradle-module-metadata-abuse/ for the actual goal. There might be a trail, but it's not well marked and seemingly involves many clicks through types in method signatures in API docs.

Side rant
I have this problem a lot with Gradle API docs, but I'm not sure what would help with that. I suppose the root cause is that Java doesn't have a tradition of grouping many things (including multiple types) that get used together into reasonably-sized "modules" like, say, Haskell does, but just treats each type as an island, and the documentation tools reflect this, so you end up having to cross-reference between oodles of doc pages when an API has oodles of often-small types like Gradle's does in order to get any idea how the pieces are supposed to fit together.
I guess one thing that could help would be a way to generate "quick reference" pages that would basically collect copies of the summary material (mostly the Method Summary tables) from the doc pages for selected types. I wonder if javadoc can be extended to generate custom page types ...

To close the loop, I got out of this business.
However, JetBrains and Google are still in this business and they apparently have chosen to use internal Gradle APIs to manipulate the existing components: https://github.com/JetBrains/compose-multiplatform-core/blob/d9aec78d04bf59f82c5ae82ce0f662e3f9b7b9c9/buildSrc/private/src/main/kotlin/androidx/build/AndroidXComposeMultiplatformExtensionImpl.kt#L228-L302.
I was very happy to switch to be a consumer of this artifact rather than a publisher having to worry about creating it!


Link 'not registered' to the same dialog as 'sign the constitution'

When a member is not registered the member client shows a blue bar on the bottom of the page, the bottom of a page is often the source of ui bugs so can we add the same link to 'not registered' as a fallback

yes. i think it doesnt hurt so i will add it

is that ok?

yes thanks


Move TestIdentity variable in the 'test' package

In its current form, the TestIdentity variable is part of the account package, which makes it usable anywhere in the code rather than limitating its usage to the tests.
We should move this declaration into the test package in a dedicated account_test.go file.

Originally reported as a comment on https://github.com/almighty/almighty-core/pull/716#discussion_r99543405 by @hectorj2f (giving credit to the owner ;-))


Install dependecies with pure devcontainer

fix #118
Add the "postCreateCommand": "dotnet restore",.
I test on my local computer (I don't have codespaces)

Hi @Benjioe,
Thanks for taking the time to look at this. Sadly, the issue is not with .net dependencies for the project. The issue is with c# compiler and other dependencies for visual studio code itself. I will clarify in the issue.


2.0.0 requirements and readme update

Hello @jrzkaminski! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file tests/test_Integrational.py:

Line 146:121: E501 line too long (156 > 120 characters)
Line 187:121: E501 line too long (156 > 120 characters)
Line 229:121: E501 line too long (156 > 120 characters)
Line 242:24: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
Line 273:121: E501 line too long (160 > 120 characters)


SAMZA-1359: Handle phantom container notifications cleanly during an RM fail-over

Improved our container handling logic to be resilient to phantom notifications.
Added a new metric to Samza's ContainerProcessManager module that tracks the number of such invalid notifications.
Add a couple of tests that simulate this exact scenario above that we encountered during the cluster upgrade. (container starts -> container fails -> legitimate notification for the failure - container re-start -> RM fail-over -> phantom notification with a different exit code)
As an aside, there are a whole bunch of tests in ContainerProcessManager that rely on Thread.sleep to ensure that threads get to run in a certain order. Removed this non-determinism and made them predictable.

@santhoshvenkat1988 @jmakes Review please!


CoDICE lo-sw-species-counts test data

Change Summary
Overview

This PR contains changes to implement newly acquired CoDICE lo-sw-species-counts test data and produce a corresponding L1a CDF
New Files

imap_processing/tests/codice/data/lo_fsw_view_5_ccsds.bin

New lo-sw-species-counts test data

Deleted Files

imap_processing/tests/codice/data/sample_science_data.bin

Old test data that is not needed anymore

Updated Files

imap_processing/codice/cdf_attrs.py

Some update CDF attributes for lo-sw-species-counts data

imap_processing/codice/codice_l0.py

Added (back) parameter for specifying XTCE file to use for decom, so that different types of packets can be decommed instead of just housekeeping

imap_processing/codice/codice_l1a.py

Removed code for producing simulated data, as that is no longer needed with the newly acquired test data
Changes to produce CDF file for lo-sw-species-counts

imap_processing/codice/constants.py

Added lists for variable names for species, used for lo-sw-species-counts CDFs

imap_processing/tests/codice/test_codice_l0.py and imap_processing/tests/codice/test_codice_l1a.py

Updated tests to reflect new xtce_document parameter

Tests are failing because the test data size is different from what the packet definition expects -- I will need to modify the packet definition to use variable-length data.


2.5.7

Changed

feat: validate with python script, display print message

Fixed

fix: validate script missing indents in html report
fix: validate with python script, display lineno error

Codecov Report

Merging #861 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #861   +/-   ##
=======================================
  Coverage   80.98%   80.98%
=======================================
  Files          34       34
  Lines        2529     2529
=======================================
  Hits         2048     2048
  Misses        481      481

Flag
Coverage Δ

#unittests
80.98% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Added browser guide to readme

Helps people who want to build this into the browser

ACK

LGTM.
If browser use is more common we should include a build browser script and tests. I tested in Firefox 37 just now and everything works.


How to I upload images into a AWS s3 using bootsy

I would like to have images uploaded into the AWS s3 but I am not sure where to start on this
Thanks

See #218


Diagnostics broken for files created with code new_file.py

Environment data
Pylance: v2020.10.2

OS and version: MacOS 10.15.7
Python version (& distribution if applicable, e.g. Anaconda): Python 3.7.3

Expected behaviour
Recognise docstrings either """ or '''
Actual behaviour
Error:
String literal is unterminated

"""
Some text
Input:

Output
[[A,B,1],
[B,C,4],
[C,E,1],
[D,E,5]]
"""

class Solution:
    def __init__(self):
        pass
    def get_result(self):
        pass

If remove the array in the docstring:

There's no indentation.
If I type out the class Solution manually, Pylance stops complaining but that means I cannot use my VSCode snippets for other snippets.
Python snippets:
    "Default solution": {
        "prefix": "mysolution",
        "body": [
            "class Solution:",
            "    def __init__(self):",
            "        pass",
            "    def get_result(self):",
            "        pass",
            ],
        "description": "My solution default setup"

After pasting the output array back in the docstring, the error in the docstring goes away:

I'm not able to repro the problem from the code snippets that you've posted above.
I suspect there is a bad character token in that snippet. Perhaps a non-breaking line feed or something similar. By copying and pasting the text, this bad token is getting stripped out.
Are you able to run the Python code successfully? Or does the Python interpreter also indicate that there's a problem with this code?

Thank you @erictraut for your reply. I've tried switching back to pylint without changing anything and my code works normally so I suspect the problem is caused by pylance doesn't recognise the docstring.
I've also checked the snippet and couldn't find any bad token. VSCode does a good job at checking errors in snippets so I don't think the snippet is the issue. I include a screenshot of my snippet here.

Non-ASCII characters aren't an error; VS Code doesn't have a problem with using them. But the Python language (and therefore the parsers) may not accept certain characters.
I've seen this happen before when copying out of say, Word, or when there's an IME enabled and the wrong type of whitespace or quotations are being inserted.
Can you place exactly the code that has the problem somewhere, like a git repo?

Thank you @jakebailey for your answer. I suspect that's the case. I copied the text to put in the docstring from this link. It's text from LeetCode. The funny thing is it doesn't make pylint show that "warning", only pylance. I'm not sure it's a good or bad thing.
However, I typed in the snippet myself and pylance doesn't seem to accept the snippet printed out by VSCode as it shows "warning" and marks my .py red.
I've tried to start a new file without the text and pylance accepts the snippet. However, even after removing all the docstring in the old file, pylance still shows the warning for my snippet and marks he old file red.
I've also tried a different combinations of text. In the photo below, I just typed the text myself into the docstring so no copy-paste at all:

pylance's behaviours seem inconsistent.

A few things to try:

If you save the file, then reload the editor so that it opens the file again, does it happen?
If you roll back to 2020.10.1, does the bug reproduce? In the VS Code extension menu, there's an option to install old versions.

I'm wondering if there's something wrong with the new incremental text support.

@jakebailey

I saved the file, then reloaded the editor then the old file doesn't show the warning but when I created new .py files, the same thing happened again. pylance is even confused by my snippet name:

pylance for some reasons, shows myclass (which isn't my snippet prefix) isn't defined. myclass is not written anywhere in my files.

I rolled back to 2020.10.1 and so far I haven't seen the warning. I've tried:

Create new file, type in docstrings.
Use docstrings from snippets.
Use code from snippets
So far 2020.10.1 works for me.

OK, then the next thing to look at is the LSP trace to figure out what edits are happening.
Can you set "python.trace.server": "verbose" with 2020.10.2, reload, do the repro, then copy the contents of the language server output window to a gist or log file attachment?
Just to double check, does this only happen when you use a snippet to insert the text?

@nguyendviet , what encoding is used for these files? If you look in the lower right part of the VS Code window, you should see the encoding ("UTF-8", etc.).

@jakebailey, I wonder if this is related to the incremental (delta) text update support that you implemented in 2020.10.2?

Yes, that is my assumption (https://github.com/microsoft/pylance-release/issues/527#issuecomment-717529300).

I used the document given in the LSP client, but it appears some use the one used in VS Code itself instead (https://github.com/microsoft/vscode-textbuffer). Perhaps it's better in some way, at the very least consistency...

@erictraut : It's "UTF-8".
@jakebailey & @erictraut Thank you for your prompt responses. Please let me know if I can provide more details.

See https://github.com/microsoft/pylance-release/issues/527#issuecomment-717548402, the LSP logs would be helpful.

See #527 (comment), the LSP logs would be helpful.

@jakebailey Sorry I missed that one. I'm actually setting it up. I'll let you know asap.

@jakebailey

Can you set "python.trace.server": "verbose" with 2020.10.2, reload, do the repro, then copy the contents of the language server output window to a gist or log file attachment?

LSP logs:
$  cd /Users/viet/webdev/algorithms ; /usr/bin/env /usr/local/opt/python/bin/python3.7 /Users/viet/.vscode/extensions/ms-python.python-2020.9.114305/pythonFiles/lib/python/debugpy/launcher 50160 -- /Users/viet/webdev/algorithms/test/test_pylance.py
this is a test

Code:
"""
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
"""

class Solution:
    def __init__(self):
        pass
    def get_result(self):
        pass

print("this is a test")

Just to double check, does this only happen when you use a snippet to insert the text?

No, it happens when I type the docstrings myself. In the photo, I typed the docstrings:

I did a few more tests:

The warnings stop showing after reloading VSCode.
The warnings show up in newly created files even when I type in docstrings with either """ or ''' (photos).

The warnings go away if I remove the docstrings and type the text back with or without snippets.

Those aren't the LSP logs, that appears to be the output of the "Python" output window. You want the output of the "Python Language Server" window with trace mode enabled. It should be a huge amount of text (so don't paste it into the issue; use gist or a file attachment).

@jakebailey Sorry about that. I did LSP logs a while ago but with js.  Can you help me with this?
I've been searching online for how to enable trace mode for python and to add python.trace.server but haven't been able to find the answer anywhere.
Here's my launch.json and I get Property trace is not allowed.:
{
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "protocol": "inspector",
            "trace": true,
},

I've added "python.trace.server": "verbose", to my settings.json but it seems like it's deprecated.

You want it in the settings, not the laucnh config. Ignore the warning. Check the "Python Language Server" output and there should be quite a lot of JSON being printed. Then you can reload to get a full trace.

@jakebailey Got it. Thank you. Here's [the gist]() of the log after running a .py file with the warnings.

Very strange. This is the sequence of edits:

"" (0, 0) - (0, 0)
" (0, 1) - (0, 2), replacing the last quote, probably an artifact of typing over VSC's auto-quote pairs
" (0, 2) - (0, 2)
\n (0, 3) - (0, 3)
T
h ... (and so on)

This all should work, we'll have to try and replicate this; the incremental text lib should have handled this.

Also, the file is opened as untitled:/Users/viet/webdev/algorithms/test/test_pylance.py first, then later is reopened as file:///Users/viet/webdev/algorithms/test/test_pylance.py. This untitled file behavior must be new; an untitled file shouldn't have a name...

@jakebailey Here's what I did:

Open VSCode, create a new file, type in docstring and type some random text, save it.
After I'm done with the file test_pylance.py, test_pylance_2.py, etc. I remove them.
Then I create new files with the same name again because the issue seems to appear only in newly created files. Maybe that's why there's an untitled file reopened as test_pylance.py.

I hope this helps.

@jakebailey : I haven't seen any updated so I tried the following and it seems like it solved the problem (somehow):

Updated to latest Pylance: problem persisted.
Uninstalled everything on VSCode by Microsoft: Pylance, Python, IntelliCode, C++, Java, etc...
Reinstalled

No update, sorry. I haven't had time to figure out what's going on here.

No update, sorry. I haven't had time to figure out what's going on here.

No worries. It looks like no one else has this bug. Since VSCode keeps asking me to install Pylance and update to the latest one for IntelliCode and I also use Python library by MS, I found a workaround: whenever I create a new .py file and have this bug, I just reload the whole window and it stops showing the red underlines.

Hi @judej . Thanks for asking. This issue has been fixed.


Create NuGet for new contribs (Entity, WKB)

#13
See Pros/Cons of having different librairies and packages.
(a dev who wants only MSSQL conversion and does not uses EF should not be imposed such payload)

NuGet packages released. Thanks @alvaromongon !

welcome!


Installation on Windows

Hi,
Thanks for your package, it runs perfectly on macOS.
However, I have trouble installing the package on Windows, here is what I did:

download and extract the source code from pypi.
add '-DMS_WIN64' flag in the setup.py to avoid a error.
create a wheel and install.

No error until I import the module in python, it shows:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: DLL load failed while importing indexed_bzip2: The specified module could not be found.

I wonder are there any dependencies that are missing on windows? or what could cause the trouble here? Thanks in advance!

In short, it hasn't been tested for Windows yet because I thought that fusepy also isn't supported on Windows.
The error itself looks like the problem is with the indexed_bzip2 module. However, I don't understand why you have that because I catch Import errors.
I'm suspecting, you are installing some old version of ratarmount for which I did not set the tags for the supported operating systems correctly. Can you check the installed version of ratarmount, e.g., with pip?
Are you using the Windows Subsystem for Linux (WSL), or did you install Python some other way? I assume you did install ratarmount itself with pip?
The log for pip would also be helpful because it contains the installed version numbers and whether it installs from source or from pre-compiled binaries (the latter shouldn't be available for windows for indexed_bzip2).

Hi,
I didn't install the ratarmount module since I am only looking for a replacement of bz2 built-in module with random access.

Are you using the Windows Subsystem for Linux (WSL)

No, I'm using the windows 10 on a virtual machine.

did you install Python some other way?

Python is installed via a installer from python.org.
Python 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32
Here is my pip list:
Package       Version
------------- -------
appdirs       1.4.4
Cython        3.0a6
distlib       0.3.1
filelock      3.0.12
indexed-bzip2 1.1.2
indexed-gzip  1.6.1
numpy         1.20.3
pip           21.1.2
setuptools    56.0.0
six           1.15.0
toml          0.10.2
virtualenv    20.4.2
wheel         0.36.2

FYI, I used mingw to compile indexed_bzip2, could this be the root cause of this error?

Updates:
I found the solution when I searching in the cython repo.
Simply add those link args in the setup.py, I can get a well-functioned indexed-bzip2!
      link_args.extend(['-static-libgcc',
                        '-static-libstdc++',
                        '-Wl,-Bstatic,--whole-archive',
                        '-lwinpthread',
                        '-Wl,--no-whole-archive'])

Again, thanks for your work, I am closing this issue.

Sorry about the confusion before. For some reason, I assumed the issue was opened in the ratarmount repo.
Thank you finding and sharing a solution! The only argument, which looks problematic is -lwinpthread, I need to add that depending on the current OS as it probably won't work on Linux.

Hi @mxmlnkn, I do notice a bunch of errors when I installing the latest version on Windows.
The first error is:
error: enumerator value for '__pyx_check_sizeof_voidp' is not an integer constant
     enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
            ^~~~~~~~~~~~~~~~~~~~~~~~

And it can be resolved by adding a flag I mentioned in the OP:

add '-DMS_WIN64' flag in the setup.py to avoid an error.

This is what I did in my setup file:
https://github.com/noonchen/STDF-Viewer/blob/266cdaded4512f22d5fb59bbf78621cf9826d64a/deps/cystdf/cystdf_amalgamation_setup.py#L68-L69
The second error happens during linking:
mingw32/bin/ld.exe: cannot find -lvcruntime140

I encountered this error myself when building my project, and I found the solution in SO, I uploaded the .def and .a file in my repo and modified the setup file as follow:
https://github.com/noonchen/STDF-Viewer/blob/266cdaded4512f22d5fb59bbf78621cf9826d64a/deps/cystdf/cystdf_amalgamation_setup.py#L63
This fixed all the issues I found when building my Cython module using mingw, hope it helps 😊!

Could you please write down some detailed steps as to how you set up your system and toolchain? It doesn't have to be overly detailed. It should just which program was installed from where and which shell you are using for compilation.
I have a Windows VM and want to reproduce it but I don't use Windows very often. I already have two different possible environments for installing indexed_bzip2, namely, one with powershell + msvc, one with msys2 and the last one using WSL2 with Ubuntu. Msys2 itself also has multiple environments (mingw32, mingw64, ucrt,64 msys64, clang64) but I'm not yet at the point where I understand how to switch between those. It's insane how many vastly different ways there seem to be to set up Python/C++ toolchains! And for some things like Python, you can install it through the Microsoft store or with the simple installer but I'm not sure whether that makes a difference. It's utter chaos not even comparable to different Unix distributions!
I guess for the -DMS_WIN64 it does not matter because non-mingw compilations will simply ignore that macro definition. But for example my setup with msvc obviously does not like the -O3 and -std=c++17 options and wants the Windows slash argument notation /O3 and /std:c++17.

Sure thing.

install python from https://www.python.org/.
install MinGW from http://mingw-w64.org/doku.php/download/mingw-builds, I chose the POSIX thread during the installation.
create distutils.cfg inside the distutils module in order to tell python to use mingw to build code, simply run this script in CMD:

python -c "import os, distutils; f=open(os.path.join(os.path.dirname(distutils.__file__), 'distutils.cfg'), 'w'); f.writelines('[build]\ncompiler = mingw32\n\n[build_ext]\ncompiler=mingw32'); f.close()"

add a patch to cygwinccompiler.py located in the same folder as distutils.cfg we created above, otherwise, python would raise an error that the compiler version is unknown.

--- a/cygwinccompiler.py	2021-05-03 23:11:33.000000000 +0800
+++ b/cygwinccompiler.py	2021-08-18 18:02:02.000000000 +0800
@@ -80,6 +80,8 @@
         elif msc_ver == '1600':
             # VS2010 / MSVC 10.0
             return ['msvcr100']
+        elif int(msc_ver) >= 1900 and int(msc_ver) <= 1999:
+            return ['vcruntime140']
         else:
             raise ValueError("Unknown MS Compiler version %s " % msc_ver)

This concludes the environment setup, you can run setup.py to build indexed-bzip2 on Windows.

Here is the build task I created for windows, hope it helps.
https://github.com/noonchen/STDF-Viewer/blob/266cdaded4512f22d5fb59bbf78621cf9826d64a/.github/workflows/build.yml#L70-L101

That helps!

That cygwincompiler patch though. Why can't they fix this upstream :/
I tried to add your usecase to my CI but I can't get it to compile because of vcruntime140.dll missing at the link step. The one added in the patch. Am I understanding this correctly that you fixed this by adding the libvcruntime140.a binary to your repository? I kinda don't wanna do that. There must be a better way. I added the -DMS_WIN64 flag for now. I'll also try to upload wheels for windows to PyPI. That should make compiling from source on windows in such a  hacky way obsolete, I hope.

Am I understanding this correctly that you fixed this by adding the libvcruntime140.a binary to your repository? I kinda don't wanna do that.

Yes.
You don't really have to add the .a file in your repo.
You can copy this dll from System32/ to MingW's search path, i.e. the folder where gcc.exe is placed, then, MingW can find vcruntime140.dll during the link time.
I don't know any other ways to suppress this error, please tell me if you find one 😊.

Well, I tried to solve this by simply adding System32 directly to the search paths but after that it linked but I got a lot of undefined references errors for things like fopen and that's where I gave up yesterday.
python3 -m pip install --global-option=build_ext --global-option="-LC:\Windows\System32" dist/*.tar.gz

Alternatively, you might be able to add it with the environment variable LIBRARY_PATH.

Well, that's beyond my knowledge 😅, sorry I don't have any suggestions other than manually copying or creating xxx.a file.

That's ok. But I pushed add flag to master and I even (accidentally) pushed binaries for Windows and macOs to PyPI and Anaconda. It would be good to know if anything of that works for you.

Changes are on master and will be in release 1.3.0.


Consider renaming "$include" -> "$only"

We've gotten feedback from multiple people that the semantics of "$include" are confusing. We should discuss changing it to "$only" or something else more intuitive.

This issue has been moved to dart-lang/pub#920.


2.0.0.m1

Fixes #ISSUSE_ID.
update stress-test.md to 2.0.0.M1
Changes proposed in this pull request:

Coverage remained the same at 84.846% when pulling e49ea18f8d0afbfddc5b5e570c19655023620108 on yue530tom:2.0.0.M1 into 9a0a0a2ec362a43b4586a1c0b4cd8f4302f8dc5e on dangdangdotcom:2.0.0.M1.


Congestion control and setsockopt

Are there hooks for getsockopt and setsockopt ?
How do I do that.
Also can we access underline congestion control ?
Any call backs ?
Appreciate help.

You can use
sock = UDTSocket()
sock.UDT_CC = SomeClass

But I'm not sure if you want that. As it will expect a C++ derived class which is probably not even remotely what you want...


Azure DNS Validation Failes with (400) Bad Request

When using manual validation on dns-01 with azure since the latest upgrade, the TXT records are not able to be validated?
Service Principal has access,
DNS is fine and domain HTTP configured on IIS on server side.
Error with redacted details below
PLEASE NOTE THE ISSUE IS A BAD REQUEST BEING SEN TO AZURE DNS FROM WINACME? No other issues, unless I am missing something i the command sent
wacs.exe --target manual --host "HOSTNAME" --reuse-privatekey --ocsp-must-staple --siteid X --certificatestore My --validationmode dns-01 --validation azure --azuretenantid <TID> --azuresubscriptionid <SID> --azureclientid <CID> --azuresecret <SECRET> --azureresourcegroupname <RSG>;
THE RESPONSE:
`[VERB] Starting commit stage
[DBUG] [HTTP] Send PUT to https://management.azure.com/subscriptions/SID/resourceGroups/RSG/providers/Microsoft.Network/dnsZones/domain/TXT/_acme-challenge.domain?api-version=2018-05-01
[VERB] [HTTP] Request content: {"properties":{"TXTRecords":[{"value":["VALUE]}]}}
[VERB] [HTTP] Request completed with status BadRequest
[VERB] [HTTP] Response content: {"code":"BadRequest","message":"The request was invalid."}
[EROR] Error updating DNS records in domain
Azure.RequestFailedException: Service request failed.
Status: 400 (Bad Request)
Content:
{"code":"BadRequest","message":"The request was invalid."}
Headers:
Cache-Control: private
Date: Tue, 18 Apr 2023 16:40:35 GMT
Server: Microsoft-IIS/10.0
X-Content-Type-Options: REDACTED
Strict-Transport-Security: REDACTED
x-ms-request-id: REQUESTID
X-Powered-By: REDACTED
x-ms-ratelimit-remaining-subscription-resource-requests: REDACTED
x-ms-correlation-request-id: REDACTED
x-ms-routing-request-id: REDACTED
Content-Length: 58
Content-Type: application/json; charset=utf-8`

This should be fixed in build 1497, which I've just added to the release page at https://github.com/win-acme/win-acme/releases/tag/v<IP_ADDRESS>9

I can confirm this is fixed.
Ik hou van je werk! Het heeft onze organisatie enorm geholpen! Bedankt


Upgrade git-commit-id-maven-plugin to 8.0.0

The issue with submodules has been fixed. What was bothering some of us on other projects using James as a submodule has been fixed and released in this new version, among other things, cf: https://github.com/git-commit-id/git-commit-id-maven-plugin/releases/tag/v8.0.0
I think that should content everybody :)
cc @chibenwa , @jeantil

nice and we even got
https://github.com/git-commit-id/git-commit-id-maven-plugin/pull/700: Only injects properties into every reactor project once
as a small bonus :D


BCMOHAD-13629||ERROR when saving new flow

Deployment Tracker:
Flow : duplicate_phn

New Pr is created closing this one


MSTEST0013: Flag cases where assemblycleanup is set on generic test class

Summary
With the change that will be introduced through the fix of #2419, assembly cleanup should be improved to also raise an issue when it is defined on a generic test class.
AB#1976481

AssemblyCleanup does't have an inheritance param


Load angular2-polyfills via a script tag

See https://github.com/angular/angular/blob/master/modules/angular2/docs/bundles/overview.md#required-polyfills and grief it causes otherwise: https://github.com/angular/angular/issues/5980

I created a polyfill/vendor/application chunks to allow the developer to determine where the code should live. The developer may want to include other polyfills in which case they need to know what polyfills are always being used. The developer may want to go to production and does not want to bundle long-stack-trace-zone with their app


Update UIs to React 16

After recent controversy with their BSD "+ Patents" licensing, FB decided to relicense React to plain MIT starting from v16 (commit for ref).
Also a bunch of tech changes which are probably more interesting. Main of course being the entire rewrite of React internals (Fiber) while keeping the same API.
Main thing that needs addressing from 15->16 is the change in behaviour with uncaught runtime errors. React 16 now unmounts the entire shadow DOM if an error is encountered. New lifecycle method componentDidCatch allows you to catch these and render out custom views in those cases. ErrorBoundary container and RuntimeError view written as part of this PR to address this behavioural change. We can expand on RuntimeError view later to provide an easy way for users to report runtime errors (maybe link to these issues or something). Currently hooked up with both Overview and Options UIs; Popup UI left out for now as it was being weird.
Also we were using a really old version of react-datepicker package which relied on the deprecated React.createClass function, which finally got removed in React 16. Hence that package needed to be updated, but they slightly changed the way component state handling works. Fixed up for now, but need to make a change somewhere to ensure NLP queries still convert to a date string.
TODOs:

[x] write runtime error boundary logic + basic view
[x] hookup error boundaries with main UIs
[ ] make sure NLP queries written in date pickers still get converted to date string on blur, enter press, etc.
[x] see if error boundary can be hooked up to popup UI script
[x] update jest to @^21.2.1 (related as FB also relicensed that in the same way; no current code changes, but may be important for work related to #102 to be aware of)

Almost all done now, just need to finish off updating the date picker code. Not really React-related, but the update forced us to update to a newer version of the date picker package, which had some behaviour changes (mainly: moved from being an uncontrolled to a controlled state component).
The date picker code, done months back, is unnecessarily complicated (using both internal + redux state for the date pickers, when it should just be able to use one state) - at least with the latest version of the date picker lib - so I think better to just rewrite this to achieve the same behaviour as previously instead of wasting time trying to hack the old code into the new lib behaviour.
For reference:

NLP queries typed directly in the date picker inputs need to be converted to dates (if valid NLP queries), or removed (if invalid); happens on blur event


Fix names for unit tests to match .gitignore

Issue # (if available):
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

:exclamation: No coverage uploaded for pull request head (unit_test_ignore@9ab4ef8). Click here to learn what that means.
The diff coverage is n/a.


ORC-322: [C++] Fix writing & reading timestamp

Currently C++ and Java version have different behaviors in reading and writing values of timestamp type. This patch ensures C++ reader/printer will behave the same as their parities on the java side and also ensures C++ reader and writer obtain same timestamp values in the TimestampVectorBatch.

@omalley @majetideepak can you please take a look at this patch? @stiga-huang and I think there's an issue with the C++ reader and writer which may have correctness issue.
@majetideepak can you also verify whether Vertica and Arrow have issues with timestamp values using C++ reader? Thanks!

@wgtmac and @stiga-huang you are right that the C++ and Java writers must write the same value to a file for a given input timestamp value. Looks like the Java side writes the timestamp values provided as is in local time (no conversion) and writes the writer timezone in the footer (however, stats are in UTC). We must do the same for the C++ writer as well if not already.
ORC-10 adds GMT offset when reading the values back. Therefore, the C++ reader always returns values in UTC. The current behavior of ORC reader for timestamp values is the same as SQL TimestampTz.
To get the same values back ( aka SQL Timestamp), you need to convert the values read back to local time.
If you read a timestamp column from an ORC file and plan to write it immediately, you must first convert the values to the local time before writing.

Thanks @majetideepak for comment!
On the Java side, the input timestamp in writer TimestampColumnVector is in UTC. It leverages java.sql.Timestamp which knows the local timezone info so that it can PRINT in local timezone. You can print millis variable in line 109 in TimestampTreeWriter.java to verify this. The name of SerializationUtils.convertToUtc(localTimezone, millis) in line 113 is kind of confusing, because the result is not the current timestamp in UTC but adds an offset to local timezone which I think it is also a problem.
ORC-10 has fixed the bug without writer timezone. The original design is to be resilient to move between different reader timezones. However this caused an issue in C++ between different daylight saving timezones and writer timezone is forced to be written. ORC-10 adds GMT offset is actually converting the value to local timezone so that ColumnPrinter can print the same time in local timezone. This causes a new problem that C++ reader gets timestamp value in local timezone, not UTC and it is different from java reader. I believe this is why @owen has created ORC-37. SQL type TimestampTz is a new type other than traditional SQL type Timestamp, I don't think it is a good idea to mix ORC timestamp type with TimestampTz and there is another open issue for it: ORC-189
It is very confusing that an input timestamp written using Java writer is read differently via C++ reader. I think we need to fix it and this can also resolve ORC-37. What do you think?

The utc value fromlong utc = SerializationUtils.convertToUtc(localTimezone, millis); is only used to update the statistics and not the values. The epoch is also w.r.t to local time and not UTC.
This is an API breaking change and I would wait for @omalley to comment on this before checking this in. We should definitely document in detail the behavior of Timestamp values.

I haven't looked at the details of this patch. I do note that I had messed up the Java side for timestamps before 1970 with nanos in the range of 1 to 999,999. sigh See ORC-306.

@omalley @majetideepak @stiga-huang After second thought, I have changed this PR not to break backward compatibility and now TimestampVectorBatch has the same meaning in writer and reader. Please take a look when you have time. Thanks!

@omalley @majetideepak @wgtmac Thanks for your follow up on ORC-322! If I understand these correctly, the convention is that TimestampColumnVector should only accept timestamps in local time. Timestamp values stored in ORC file are local_timestamp - local_orc_epoch. TimestampColumnVector got from the java reader has timestamps in local time. However, TimestampColumnVector got from the c++ reader has UTC timestamps.
If so, the c++ writer doesn't need to minus gmtOffset for each timestamp, because after shifting the values in ORC file are utc_timestamp - local_orc_epoch.
If not, I think the bug in ORC-320 should still be fixed (ORC-322 is aimed to fix ORC-320). The root cause of ORC-320 is that gmtOffsets got in writer and reader can be different, though they're using the same Timezone.
To be specific, the writer gets gmtOffset by timestamp ts, then writes down ts - gmtOffset (Let's ignore the orc epoch since it's the same in writer and reader). The reader use ts - gmtOffset to get gmtOffset2, then read out ts - gmtOffset + gmtOffset2. However, gmtOffset2 may not equal to gmtOffset.
Thanks for your patience reading this long comment!

@stiga-huang Yes, you're right. Java TimestampColumnVector always use local timezone. But C++ reader uses UTC in TimestampVectorBatch. I get your point for different gmtOffsets. Let me try to reproduce it.

@wgtmac To reproduce ORC-320, you can try timestamps in the description under America/Los_Angeles timezone.

Sorry, I am confused after reading the discussions above. The key question I have is - do we implement ORC TIMESTAMP as SQL "TIMESTAMP with Timezone" or "TIMESTAMP without Timezone"? It seems to me that we implement it as the later one. That's why we went for a rather complicated design that involved local epoch and logics to handle DST while moving between time zones. But @majetideepak comment above stated that we wanted to implement TIMESTAMP as TIMESTAMP with Tz with ORC-10. This contradicts what I saw in Java reader implementation in which timestamp value is adjusted per reader time zone (TreeReaderFactory.java line 987 to 992).
So if my understanding is correct, which means TIMESTAMP should be implemented as TIMESTAMP w/o Tz, then the current C++ reader has a bug that it always adjusts to gmt rather than the reader timezone (ColumnReader.cc line 339, 340).
@omalley is probably the best person to answer this question...

I also think that we should adjust the value being read from the C++ reader w.r.t to the reader and writer timezones (if they are different) like the Java reader implementation. The current C++ behavior is definitely inconsistent with Java (which does things the right way).

I have finally changed this patch to always use local timezone in TimestampVectorBatch for both C++ writer and reader which is consistent with java code. Please take a look. Thanks! @omalley @majetideepak @stiga-huang @xndai

So the semantics of the current timestamp type are that it does not change with the reader's timezone. It should always come back the same. If you put '2018-03-23 12:34:56.789' in, it should always come back exactly the same.
The easiest way to get that effect is to use UTC in the ColumnVectorBatch, so that is what we do. This is different from the Java side because there we needed to use Java's Timestamp class,  which always uses local.
We are going to add a new type that is "timestamp with local timezone" in ORC-189. That is for the instance in time where timezone is taken in to account.
The encoding of timestamps in ORC 1.x is overly complicated because I messed it up and we've tried to maintain backwards and forwards compatibility. In ORC 2 we'll just use UTC for encoding both types.

Yes I agree with what you've said. The only problem of using UTC in the C++ ColumnVectorBatch is that there is an issue for C++ writer to convert timestamp in the DST back to local timezone. This will cause data correctness issue.
BTW, since you've mentioned ORC 2.0, what's the plan for decimal encoding? And what's the timeline for its development and release? Thanks!
@omalley

IMO the ideal approach of achieving the timestamp semantics is to have the caller pass in session timezone, and the reader return timestamp batch based on that. That would be similar to what we do with Java reader today except that Java reader assumes current thread timezone as session timezone, which in some case can be wrong. The other option is we return timestamp in a fixed timezone (such as GMT as C++ reader does today) and the behavior needs to be documented as part of the interface. The caller can always convert it to session timezone accordingly. But currently the Java and C++ reader behaves differently which can be misleading.

LGTM. @wgtmac 's fix will work, but I still think we need to keep same behavior for C++ and Java in long run.

LGTM. We just need to document that users should pass in UTC timestamps when using the c++ writer.
Thanks, @wgtmac!

@majetideepak Can you take a look again? This patch enforces UTC timestamps are used everywhere in C++ and does not affect current C++ reader. Thanks!


Rationale for when to show "========== ERRORS ========="?

When I try to compile the program
import Graphics.Element

main = Graphics.Element.show

I get:
Detected errors in 1 module.
==================================== ERRORS ====================================

-- BAD MAIN TYPE ------------------------------------------------------ Test.elm

The 'main' value has an unsupported type.

3│ main = Graphics.Element.show
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I need an Element, Html, (Signal Element), or (Signal Html) so I can render it
on screen, but you gave me:

    a -> Graphics.Element.Element

When I try to compile the program
import Graphics.Element

main = Graphics.Element.show (1+"s")

I get:
Detected errors in 1 module.
-- TYPE MISMATCH ------------------------------------------------------ Test.elm

The right argument of (+) is causing a type mismatch.

3│                               1+"s")
                                   ^^^
(+) is expecting the right argument to be a:

    number

But the right argument is:

    String

Hint: To append strings in Elm, you need to use the (++) operator, not (+).
<http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#++>

Hint: I always figure out the type of the left argument first and if it is
acceptable on its own, I assume it is "correct" in subsequent checks. So the
problem may actually be in how the left and right arguments interact.

Why is there the line(s)
==================================== ERRORS ====================================

in one case but not in the other?

I think I tried to fix it in 0.17 but I'm not certain. The idea is that if you have errors and warnings you should get it in between them. Or if you have errors in multiple files, you should get it in between them.
Overall though, I'm not certain, and I expect this to be fixed when I revamp the error reporting in elm-make to provide a coherent format for --report=json


Reproduction failed

I encountered this problem while reproducing my paper and cannot solve it. I hope to receive your help
The specific details are as follows：

The picture above is incorrect, that's all the details

没有提供描述。


Update link to LibFuzzer documentation

Old link was to an ancient LLVM version which said that Windows wasn't supported

Docs Build status updates of commit fa9f8dd:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/build/reference/fsanitize.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@corob-msft - Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


Bugfix: matomo domain env is incorrect

Another typo: this variable was changed from early on and it looks like the default Matomo template was never updated.

I can confirm this did correctly populate the the config.ini.php in my matomo container with the DOMAIN value specified in my .env file


Lost Funds on wallet 1 day after Fork

https://www.reddit.com/r/vergecurrency/comments/7vw0oe/problem_with_vergeqt_wallet_lost_funds/
can someone please help me. is this a known bug after the fork?

So first we need to get the story straight, because what I'm reading (I know you are German so you don't speak English perfectly, that's fine... just want to make sure we are talking about the same thing) .
i have a problem with some disappeared funds. i have downloaded the verge-qt wallet and depostied 0,90xvg and 3,301.256XVG from my binance account on it.  after 4 minuten, i withdrawled 1,10xvg to binance to check the speed.
the first withdrawal of 1,10xvg i send to my binance wallet. in the same minute 3,300.156xvg was send to an unknown address. see picture: https://www.pic-upload.de/view-34800329/t1.jpg.html
Did you send funds from BINANCE -> Verge QT or did you send from Verge-QT to Binance?
I believe we are talking BINANCE -> Verge QT... in that case...
You didn't seem to make 2 transactions from Binance to your Verge QT wallet.  You only made 1 transaction from Binance to your Verge-QT wallet of 1 XVG... right ?
When you sent your 1XVG from Binance ..
https://verge-blockchain.info/tx/857cba7a7e7c3c1a6216012126ebb73e878588c117e35d2f567e17de1349dbbf
Your 1 XVG was sent to:
https://verge-blockchain.info/address/DLQA3g6HwP7HMyLWZr5KPnhm8mKCTUg5ex
Perfect right?  It did what you wanted it to do.
Enter problem...
All the other funds, at the same time, went to a different wallet address:
https://verge-blockchain.info/address/DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW
You can see this happened on the SAME transaction listed above:
https://verge-blockchain.info/tx/857cba7a7e7c3c1a6216012126ebb73e878588c117e35d2f567e17de1349dbbf
The only logical explanation I can think of is that Binance owns the wallet and sent the 'remainder' of funds from your wallet to this wallet:
https://verge-blockchain.info/address/DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW
So I would take it up with Binance support.

Also --  I saw on your reddit that you had it happen again on

it happend again.
https://verge-blockchain.info/tx/57e802f7870d4da5fadd2b6d70073ceb8f25609ec764f3a7282314c1b2c3b4c7
i tried to send 0.02xvg to my binance wallet. and again there is a second transaktion to an unknown wallet. WTF????
whats going on here?

this address got the .78 XVG on February 7th @ 17:37:
https://verge-blockchain.info/address/DDa7CWYh3Xg2sT68ynBDwMotiAEftSt1er
On February 9th @ 13:41, that address sent all .78 XVG it had via tx:
https://verge-blockchain.info/tx/82d05cf0dd6928cdbe1167353fc35b5ef982f5ffa6315505e0e46cf95723670b
and .001 xvg of that transaction ended back with the mystery address:
DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW

You wanted to send 1 XVG to your binance account, this is your binance address:
https://verge-blockchain.info/address/DLQA3g6HwP7HMyLWZr5KPnhm8mKCTUg5ex
Your 1 XVG made it to Binance address
Thats right. i send 1,10XVG. 0.10XVG were the fee
Problem:
3300.156 XVG was sent to
https://verge-blockchain.info/address/DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW
Thats right. it was send the same second as my that for my binance wallet. i dont type that amount in the withdrawal fee or something...i just wanted zu send 1XVG zu Binance to check the speed
Your .02 XVG made it to your Binance wallet:
https://verge-blockchain.info/address/DLQA3g6HwP7HMyLWZr5KPnhm8mKCTUg5ex
via TX:
https://verge-blockchain.info/tx/57e802f7870d4da5fadd2b6d70073ceb8f25609ec764f3a7282314c1b2c3b4c7
Thats right
this address got the .78 XVG on February 7th @ 17:37:
https://verge-blockchain.info/address/DDa7CWYh3Xg2sT68ynBDwMotiAEftSt1er
Thats right, but this time the 0,78XVG got back to my wallet. its not lost. i first checked the blockchain explorer, not my wallet on feb. 9th
On February 9th @ 13:41, almost 2 days later, that address sent all .78 XVG it had via tx:
https://verge-blockchain.info/tx/82d05cf0dd6928cdbe1167353fc35b5ef982f5ffa6315505e0e46cf95723670b
see above
and .001 xvg of that transaction ended back with the same mystery address from my previous post:
DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW
https://verge-blockchain.info/address/DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW
thats right. i checked if the address DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW were a normal adress. all went well. i saw the right balance on my wallet
so what went wrong in the first 1XVG transaction on January 21st at 21:09?
i downloaded the wallet at http://vergecurrency.com/#wallets

could it be a change address failure? https://bitzuma.com/posts/five-ways-to-lose-money-with-bitcoin-change-addresses/

The change address is definitely what it feels like.  I moreso put that 'story' together so hopefully someone smarter than me can maybe figure out what happened.
But I've made partial transactions with verge-qt wallet and have never had the excess funds moved to a different address.  A new address gets created in my wallet.dat file, but no funds ever end up on the new address.
The hardfork occurred on:
6:48 PM - 23 Jan 2018
So..
Your first transaction that went weird occurred before the hard fork.  (January 21st)
Your second transaction that went weird occurred after the hard fork. (February 9th)
So it's hard to blame it on the hard fork here.  Maybe you didn't update the latest QT wallet on the 20th when it was released and the older wallet had some issues with 'change address' ?

And I hate to be a downer -- but the XVG funds are most likely gone.  It always comes down to 2 simple basic facts:
-There are XVG coins at https://verge-blockchain.info/address/DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW
-You do not have the private key for DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW or have it in your wallet.
That being said, there are 2 possibilities:

DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW is an address that no one has a private key for, meaning they will be stuck there for eternity.  Perhaps it was a bug in the QT wallet, perhaps it was something you did without knowing.
Some random person owns/has private key for DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW, stumbles on the coins they didn't ask for, does some research, and sends them back to you.

That being said -- at this point, all you can hope for is to know if anyone has any insight on WHY it happened, so other people don't make the mistake, or the QT Devs can fix a bug.
Your situation doesn't seem possible to duplicate, which makes it even harder to troubleshoot :(
If I were in your situation, I wouldn't trust my wallet.dat at this point -- and I would create an entirely new wallet.dat, and send all my funds to the new wallet.dat... and get rid of your old wallet.dat in case it's corrupt and unable to generate new addresses when you make transactions.

did you try seeing if DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW is an address in your electrum wallet?

no i did not see DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW im my electrum wallet. i did not know the private key of this address to import it.
heres the transaction "change addresse" failure:
https://verge-blockchain.info/api/getrawtransaction?txid=857cba7a7e7c3c1a6216012126ebb73e878588c117e35d2f567e17de1349dbbf&decrypt=1

just for S&G -- go to verge qt wallet ... do help -> debug window -> console
unlock your wallet using:
walletpassphrase "YOUR PASS PHRASE HERE" 300
then do a:
dumpprivkey DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW
It's a long shot... but maybe that address is stuck in your wallet and you get lucky and get the private key for it.

Never mind -- I see in another reddit post you made that someone already suggested you try that
https://www.reddit.com/r/vergecurrency/comments/7x8u2c/still_problem_with_my_qtwallet_maybe_bugged_no/

I little help (or an explanation what really happend) from a dev, would be very nice.
the 3300XVG where an invest and trust in their project....

So, no help from devs??

really this issue makes no sense. what wallet did you use when this happened?

seeing as how the 3300 coins are still sitting in that address, one has to assume it is a change address and you do indeed own it in your core wallet. you should not be able to see it in your receiving address list, but you can dump the private key to it.

If I had to take a guess ... I would say that you made a transfer, your coins went to the Change Address in your wallet ... then something happened and you restored an older copy of your wallet, which didn't contain the Change Address.
If there was a problem with the QT Client not handling Change Addresses ... @justinvforvendetta probably would have heard about it, and so many people would have lost coins, that he might have had to consider a potentially coin-destroying fork.

Do you have any backup copies of your wallet.dat file in between these dates:
January 21st at 21:09
February 9th @ 13:41

go to the debug console and run a:
listaddressgroupings
I see you posted this on the reddit thread a few days ago:

12:13:41 ￼ validateaddress DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW
12:13:41 ￼ { "isvalid" : true, "address" : "DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW", "ismine" : false, "account" : "unkown" }

i have done this with the backup wallets.

@justinvforvendetta please can you send me older versions of the verge-qt wallet?

an older version won't solve this. was he right in saying you restored your wallet.dat after you made that transaction? if so, he Is also right about you restoring from a wallet dat that didn't have that change address in it

now a new problem:
i have reset all. i deleted all verge files. downloaded the newest version. imported the 2 privat key i own.
now the wallet is missing 2 transactions:
https://www.pic-upload.de/view-34874311/19.02.2018.jpg.html
here a pic from 14.02.2018. there i had 6 transactions, and still some verge in my wallet
https://www.pic-upload.de/view-34842053/14.02.0181.jpg.html
now it semms that i dont have any xvg. but i did not make any transactions since 07.02.2018

It wouldn't be weird for a new wallet with only 2 addresses to have 4 transactions instead of 6.  Your old wallet probably had more addresses that had transactions on them.. and you didn't import all of them.

You couldn't import this address:
https://verge-blockchain.info/address/DCYjjXsGC4PNeccc2jS5YAs1JppUmnSEoW
which probably had the +2 transactions you are now missing

Open your old wallet up, go to debug console, type this:
listaddressgroupings
It will show you the addresses that have funds in them

Before you create a new wallet ... you always need to go to debug console and do a:
listaddressgroupings
You also need to confirm on the verge blockchain which addresses ACTUALLY have the funds... quadruple check.
Your wallet might have addresses with funds that you don't know about.  You need to do a "listaddressgroupings"  and confirm on the verge-blockchain.info.
Once you identify all the addresses that have funds, THOSE are the private keys you want.
You seem to be importing addresses that don't have any funds, and leaving your other addresses with the funds in older wallets.

You say there are "missing 0.5789xvg" ... what address has the 0.5789xvg on it?  You should be able to find the address in your older wallet by doing a "listaddressgroupings" and/or confirm on verge-blockchain.info.

Someone correct me if I'm off in this example:
Example -- you have this:
VergeWallet_A - 3000 coins
VergeWallet_B - 0 coins
VergeWalllet_Change - 0 coins
2500 XVG transaction made from A to B
New setup:
VergeWallet_A = 0 coins
VergeWallet_B = 2500 XVG
VergeWallet_Change = 500 coins
If you create a new wallet and only import A and B, your new wallet looks like this:
VergeWallet_A = 0 coins
VergeWallet_B = 2500 coins
So you lost 500 coins by not bringing over VergeWallet_Change
If you maintain the same wallet, you will be able to do a 'dumpprivkey' on A,B, and Change.
Then if you create a new wallet, you can import A, B, and/or Change... so your new wallet will have:
VergeWallet_A = 0 coins
VergeWallet_B = 2500 XVG
VergeWallet_C = 500 coins
and the process repeats every time you make a transaction.
This is why you always need to make a backup of your wallet.dat file every time you make a transaction .. and always make sure you know exactly every address with all your coins.


Uncaught Endroid\QrCode\Exception\GenerateImageException: Unable to generate image: check your GD installation

Hey there!
I was running my code on version 3.9.6 well.
require_once("qr-code/vendor/autoload.php");
use Endroid\QrCode\QrCode;
$qrCode = new QrCode("TEST");
$qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 127]);
header('Content-Type: '.$qrCode->getContentType());
echo $qrCode->writeString();

As I updated the package to version 4.0.0, a PHP fatal error has thrown:
[29-Mar-2021 15:07:36 UTC] PHP Fatal error:  Uncaught Endroid\QrCode\Exception\GenerateImageException: Unable to generate image: check your GD installation in /MY_SCRIPT_PATH/qr-code/vendor/endroid/qr-code/src/Writer/PngWriter.php:74
Stack trace:
#0 /MY_SCRIPT_PATH/qr-code/vendor/endroid/qr-code/src/Writer/PngWriter.php(61): Endroid\QrCode\Writer\PngWriter->createBaseImage()
#1 /MY_SCRIPT_PATH/qr-code/vendor/endroid/qr-code/src/Writer/PngWriter.php(30): Endroid\QrCode\Writer\PngWriter->createImage()
#2 /MY_SCRIPT_PATH/qr-code/vendor/endroid/qr-code/src/QrCode.php(397): Endroid\QrCode\Writer\PngWriter->writeString()
#3 /MY_SCRIPT_PATH/index.php(8): Endroid\QrCode\QrCode->writeString()
#4 {main}
  thrown in /MY_SCRIPT_PATH/qr-code/vendor/endroid/qr-code/src/Writer/PngWriter.php on line 74

Any idea about this error? The PHP version is 8 and GD extension is installed and enabled (checked by phpinfo()). Also, I've tested GD. It works fine.

Hi @sonqor I can not reproduce this issue, but the error states that the imagecreatetruecolor($width, $height) function does not create a valid image resource so you have to look in that direction. For instance you could try calling the imagecreatetruecolor function yourself with some width and height (completely outside any qr code context) and see if it fails. If it does I really think something is wrong with your GD installation. Or maybe you could try some different width / heights or different PHP patch version (I had some issues myself on earlier PHP 8 versions). Please let me know if you have any new findings.

Hi @sonqor I can not reproduce this issue, but the error states that the imagecreatetruecolor($width, $height) function does not create a valid image resource so you have to look in that direction. For instance you could try calling the imagecreatetruecolor function yourself with some width and height (completely outside any qr code context) and see if it fails. If it does I really think something is wrong with your GD installation. Or maybe you could try some different width / heights or different PHP patch version (I had some issues myself on earlier PHP 8 versions). Please let me know if you have any new findings.

Hi.
I checked imagecreatetruecolor with this code (from https://www.php.net/manual/en/function.imagecreatetruecolor.php)
No error occurred and the image created successfully.
But regarding the explanation you gave, why you couldn't reproduce this issue?
I have this problem in PHP version 8.0.2 and endroid/qr-code 4.0.0.
I think it should be a bug within PngWriter.php.
Thank you for taking the time to respond to me.

@endroid
I took another brief look at the package documentation and realized that I had to use the Color class. So I changed the code like this: -> setBackgroundColor (new Color (255, 255, 255, 127));
Thanks again for your help.


According to spec, rename serviceEndpoint to service

https://www.w3.org/TR/did-core/#services

PR: https://github.com/walt-id/waltid-ssikit/pull/269


set 'comm' of child context to something useful

per OSA scenario, runs end up with millions of "mitogen:foo@bar:1234" subprocesses that are totally useless for diagnosis. Connection methods like LXC/LXD/setns etc should include their identity in the remote_name= parameter.
This parameter has never been used, but it's been supported for years: https://mitogen.readthedocs.io/en/stable/api.html#mitogen.master.Router.local

Maybe something like "lxc:<container_name>:<get_default_remote_name()>", but even that is kinda dumb, because it's possible to see parent/child relationship in ps output because it's all on the same machine


Serious Error on Mac OS Big Sur 11.2.1 barring install

When attempting to install in Font Book on Mac oS Big Sur 11.2.1 I get the following prompt and I cannot install the color noto-emoji font.

Looks like this error is triggered because of the absence of the glyf table. This is the same reason Windows refused to install the font.
For now, please use NotoColorEmoji_WindowsCompatible.ttf, which will properly install on Big Sur.


May I request to get the "/hdd/sdb/SYNLA_Plus_4096.npy" which is used in the Train_Model.ipynb?

Thank you for your excellent work in Anime4K！
Now I am trying to learn and train the contents of the "Tensorflow" folder, so may I request to get the "/hdd/sdb/SYNLA_Plus_4096.npy" which is used in the Train_Model.ipynb?
I'd appreciate it if you would tell me~

Hi, the dataset can be found here: https://github.com/bloc97/SYNLA-Plus
However, it is used as an placeholder for that example, it is better to use real images for training. That dataset is mostly used for standardizing validation/testing across different architectures, or used with real images for data augmentation.


Ruimhu/fix cookie

Issue found by cookie scanner:
When analytics consent is denied, the _mid cookie still present.
-The original code already try to delete the _mid cookie when the consent deny is set. However, _mid will be regenerate periodly by gtm.js(google tag manager)
-Add fix(not allow cookie setter to set for _mid cookie to prevent _mid keep generate when user consent is denied.)

@microsoft-github-policy-service agree company="Microsoft"


Processing Shelley-era transactions, UTxO entries, and blocks

There will come a time when mempools might have both Shelley and Goguen type transactions. This would mean possibly accommodating Shelley-type transactions in Goguen blocks.
We might also need to process Shelley blocks during Goguen times. Like, for example, even just replaying them to get the current ledger state.
What is the best way to handle this?
How do we handle the fact that the UTxO will now have a different type of outputs?
I.e. they will have a creation slot number, and they may have a data value hash.
Would it make sense to have new constructors of TxOut, such as
TxOutG Address Value SlotNo | TxOutPlc Address Value HashData SlotNo | TxOut Addr Value
Also, to accommodate existing UTxO entries full of Coin, the type Value has to have Coin as one of its constructors too
data Value = (proper multicurrency Value constructor) | Coin Integer
How does the set of protocol parameters get updated?

To be honest, I don’t think it is a good idea to try to support nodes that can handle two types of transactions. I think, it adds a lot of complexity. I understand that switching over from Shelley to Goguen is also painful, but at least it is a one-time pain point.

Surely this is a very similar question to "how do we get from Byron to Shelley"? I assume Duncan has thought about this already.
Also, I think Goguen only really adds stuff, so presumably we can write a ShelleyTx -> GoguenTx function that preserves validity.

I hear there is a special "Shelley" or "Byron" tag depending on the era of the transaction. Where does this tag go? Who applies it? Does that mean it wont be possible to process Shelley transactions during Goguen? Do we still want to do this (i see above that Manuel is against the idea)? And if it is possible/desirable to do, what components need changing - is there anything but the ledger?

UTxO is translated to next-era UTxO
Shelley blocks are not acceptable after Shelley
Shelley-era transactions need to keep their era tag for deserialization during Goguen


config: default HTTPS for JSONSCHEMAS_URL_SCHEME

Based on https://github.com/inveniosoftware/invenio-jsonschemas/pull/41#discussion_r82697317 (cc @lnielsen @hachreak)

I'd be happy to do this


Date sort problem.

Unable to sort date as it should be,
tried YYYYMMDD but still no luck.

This isn't documented for whatever reason, but if you add a "number" parameter to your data-sort, it'll recognize the value as a number.
ex: Salary


Plugin without SBC

Hi guys
Could this be done without an SBC and have an Arduino / ESP pushing the results via http for the plugin to pickup

Probably yes. You could call the Duet RepRapFirmware API directly and set the weight value as a global variable, and then read it with a DWC plugin. It's a completely different approach than used in this project though.
I recommend jumping on the Duet forums - maybe somebody built something similar already.

thanks Kriechi - i will have a pole around


Question - Depth | Batch From Directory - Existing DepthMaps, Are they Regenerated?

Hi, just a query, maybe I'm stupid and missed something
Here are my settings, and I'm using the Depth | Batch From Directory option

I have 2000 images in my Input Directory that I set, and 2000 depth maps in my Output Directory that I set
When I run, the log does show that it picks up the Source and the Custom Depth Maps
So basically I'm trying to take an image, with a depth map and create a SBS image for 3D.
Does this regenerate the depthmap?   As 2000 iamges takes 60 minutes on a Ryzen 5 5500 , Geforce 1660 Super card ( Yes I know it's the low end ) but an hour to generate 2000 images when the depth is already created, seems I must be missing something
Please help :)

Well, try experimenting with smaller amount of images. If you generate from folder, and there is a file named "aaa.png", then the resulting depthmap will be saved into new folder as "aaa-0000.png". If you do select the "skip generation" checkmark, this file will be reused.

To reuse depthmaps, you need to generate and save them first.

A better description in wiki would be good for that.


Head yaw breaks with pehkui on 1.20.2 CPM version 6.13

So when I look left it turns fully to the right for some reason I have immersive portals which likes to break it instantly no matter what when I enter a portal but even without it, it still breaks most likely with pehkui since it never did it till I installed pehkui. please fix this cause I hate this and I just want my models to look nice not break with weird yaw animations snapping to the right when I look anywhere near the left. If there is a fix for it in survival without killing myself every time then tell me. Shields fix it but it seems like because i dont have a climbing anim it breaks when i climb

Duplicate of #527


Context menu glitches

When using the context menu, the cells might disappear or some other cells might be briefly visible. The feature works correctly but the result is ugly.
Issue type
Incorrect behavior
Environment information

Application version: 3.3.0 (but was affecting older versions as well)
iOS / tvOS version: Any
Device: Any

Reproducibility
Always reproducible
Steps to reproduce

Open the context menu for an item on the homepage.
Add to watch later.
Repeat a few times until the issue is observed.

I initially thought the issue was related to our host cell implementation, but this is probably not the case. Though our previous Objective-C implementation was different (we did not use collection view delegate methods, context menus were attached to views directly), we had the same issue. This was a hint that our host cell implementation is likely not the culprit.
This is also apparently not related to reloads occurring during transition animations. But removing all code within the action block fixes the issue. Maybe this is related to a subtle timing issue and we should make the block as lightweight as possible?

Confirmed as not related to our SwiftUI hosting code. When using a bare cell with a colored content view the glitch appears all the same.

We are not alone apparently, see:

UIKit: https://stackoverflow.com/questions/57997004/weird-animation-when-deleting-item-from-uicollectionview-while-uicontextmenu-is
SwiftUI: https://stackoverflow.com/questions/60358948/swiftui-delete-row-in-list-with-context-menu-ui-glitch

The delay seems an option to consider, or we could simply make a bug report to Apple and ignore this issue entirely.

Though SO posts mention a delay of 0.7 second works I used a delay of 1 second for more reliability (this is also the duration I measured for the context menu animation).
On feature/context-menu-glitches.

Nice workaround and thanks for details here.


How to draw point clouds and correspondences like this?

Hi,
Thank you for sharing your excellent work! I have read your paper recently, and I'm wondering how the draw the point clouds and correspondences like yours, which I think is really amazing.
I will be very appreciative if you can give me some idea about how to draw like this.
Thank you very much!

I use vedo to draw the point clouds and the correspondences in this fig. And each point are expanded to a small ball. You can refer to the vedo documents for details.

Got it,  thanks for your valuable advice.


[Sema] Disallow stored properties to have uninhabited types

Resolves: SR-8811
cc: @jrose-apple @CodaFi

Build failed
Swift Test Linux Platform
Git Sha - 7991aecfce7c5c015da90c441869977d9a1cac20

@jrose-apple how should we handle IRGen/generic_enums.swift and Reflection/TypeLowering.swift? Can we just add a simple case to the ir test? I'm not sure the intention of that test is to test the emptiness of an enum. With the reflection test, can we just remove the empty enum?

The condition IRGen/generic_enums.swift is testing for should now be structurally impossible to write down (used to be that you could lower metadata for a generic member that had no cases and get a crash).  You can stick a case in that Swift file and be good.
@slavapestov Can speak about the empty member in Reflection/TypeLowering.swift.

I think we can still contrive an uninhabited local by using generics:
struct Wrapper<T> {
  var value: T
}

struct HasEmptyMember {
  var empty: Wrapper<Never>
}

@jrose-apple how does this look?

Looks pretty good. I still don't love the diagnostic text, but I can't really think of something nicer, and this is probably pretty rare anyway. Any other onlookers have any remaining thoughts?
@swift-ci Please smoke test

@swift-ci Please test source compatibility

Build failed
Swift Test OS X Platform
Git Sha - 7991aecfce7c5c015da90c441869977d9a1cac20

Build failed
Swift Test Linux Platform
Git Sha - 7991aecfce7c5c015da90c441869977d9a1cac20

@jrose-apple is this ready for merge?

I wanted to see if @CodaFi or @brentdax had any remaining thoughts, but I guess they didn't. Or they can add them post-merge.

Thanks for doing this!

Maybe this makes sense as a warning, but it does not make sense IMO to make it an error to define properties with uninhabited types. The original motivating issue in https://bugs.swift.org/browse/SR-8811 indicates an issue with the unreachable code analysis, and while this makes it impossible to get into that situation, I think we should still look into the underlying issue, and reduce this to a warning.

@jckarter convinced me too in a side conversation. Mind doing a follow-up PR to downgrade it to a warning, @Azoy? (And rephrase the diagnostic a little.)

As a warning, I think it'd also make sense to follow the behavior of the Void warning, where we warn if a variable infers its type as some uninhabited type, but allow you to make it explicit.

@jrose-apple will do!

@jckarter which warning are you referring to? I looked through the diagnostics to find something for Void but couldn't find anything that seemed related.

This warning:
$ cat ~/foo.swift
let foo = print("hi")
$ xcrun swift ~/foo.swift
/Users/jgroff/foo.swift:1:5: warning: constant 'foo' inferred to have type '()', which may be unexpected
let foo = print("hi")
    ^
/Users/jgroff/foo.swift:1:5: note: add an explicit type annotation to silence this warning
let foo = print("hi")
    ^

Void is a typealias for ().

Yea, I had just expected void to be in the diagnostic name. Thanks!


Run "delete-yum-repos" during stage "upgrade: misc"

Removes the reposdir override in /etc/yum.conf.

@jupierce, for context the "delete-yum-repos" operation now cleans up after some /etc/yum.conf hacks that give us tighter control over yum repos during an upgrade (see https://github.com/openshift/openshift-ansible-ops/pull/4174).


FutureWarnings implemented for start and end years

Pull Request Checklist:

[x] This PR addresses an already opened issue (for bug fixes / features)
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[ ] HISTORY.rst has been updated

After merging to master and before closing the branch:

[ ] bumpversion (minor / major / patch) has been called on master branch
[ ] Tags have been pushed

What kind of change does this PR introduce?
This PR implements the datetime selection functions the @sbiner made mention of in  #189 to allow for time-based subsetting by months, days, etc.

Does this PR introduce a breaking change?
Yes. start_yr and end_yr will be moved to start_date and end_date which will allow users to pass str or datetime.date or datetime.datetime objects. FutureWarnings have been implemented to warn users of the impending changes.

Other information:

This PR fixes #189

Pull Request Test Coverage Report for Build 1076

29 of 29 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.08%) to 92.603%

Totals

Change from base Build 1058:
0.08%

Covered Lines:
1352

Relevant Lines:
1460

💛  - Coveralls


Why use Simulate.click instead of fireEvent.click?

I was wondering why are we using Simulate.click instead of using fireEvent.click?

Good spot, I was never happy with Simulate, updated in latest commit.
As an aside, should investigate whether we can roll the call to wait into a wrapper around fireEvent to provide a more convenient handling of vue-test-utils asynchronous updates


Opening a new tab in an existing instance from the command line

Hi team.
First: I want to congratulate you by this lightweight editor, it's a really quick editor.
Second: It's posible to open a file in a new tab of an existing instance from the command line??? It's an important feature for me because I live in the terminal!!!
Thanks in advance by your great work!!!
Josep.

I don't think that particular feature will work.
If you have already opened the lite. But there is another way / work around. Install the console plugin. Now you can list the files in the particular directory and the files are clickable.
Hope that helps :-) .

Thanks for the kind words @josepsanzcamp -- This isn't a feature I currently plan to support in lite, though you could add the functionality in a rudimentary way by having a plugin which periodically checks a file to see if it exists and loads the filename from that file if it does; you could then pair this with a simple shell script which creates the file from its arguments.

@rxi
I did not think it appropriate to open a new issue for this question.  Atom is my current daily driver, but its overkill for my needs, also very sluggish. Lite is a beautiful and quick editor, thank you for your work and sharing it!
I often open files with a gosearch front-end of mine.

Currently it just uses xdg-open to open the selected filepath,  atom handles opening the file in a new tab of an existing instance.

This isn't a feature I currently plan to support in lite, though you could add the functionality in a rudimentary way by having a plugin which periodically checks a file to see if it exists and loads the filename from that file if it does; you could then pair this with a simple shell script which creates the file from its arguments.

I am trying to envision how to implement a plugin that accomplishes something along these lines. Any more hints or parts of lites source I should be looking at? Perhaps having my search tool write the selected filepath to a fifo or file, and a plugin that watches for said fifo/file would be sufficient?
I'm loving your editor and would love even more to jump ship! Thanks for your time.


⚠ Bofrost.be has degraded performance

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

HTTP code: 200
Response time: 1857 ms

Resolved: Bofrost.be performance has improved in 45db583 after 41 minutes.


PEP 517 build management

Is your feature request related to a problem? Please describe.
Currently uses setuptools which is now deprecated.
Describe the solution you'd like
Use PEP 517 standard. - best practice.

So in conclusion PEP 517 is half-cooked and this PR should be deferred until things have improved.

Leave for a later version of python such as 3.9 perhaps

This link https://github.com/dib-lab/screed/pull/83/files is useful example


Create _index.de.md

Created german index file.

Please add this german index file to yours.

Should be right now.

Continued at #7


error creating x509 certificate: requested SignatureAlgorithm does not match private key type

Describe the bug:
I attempted to create a Certificate with the ecdsa keyAlgorithm and keySize parameters against a CA Issuer that is signed with an rsa key.  I get the following error in this scenario:
E1025 13:35:43.662646       1 controller.go:145] certificates controller: Re-queuing item "default/my-ecdsa-cert1" due to error processing: error creating x509 certificate: x509: requested SignatureAlgorithm does not match private key type
If I use a CA Issuer signed with an ecdsa key I do not get this problem.
I also do not get this problem using a Vault issuer that has an rsa signed CA cert.  From what I can tell the algorithm used to sign the CA cert should not require the same algorithm for the cert being signed.
Expected behaviour:
I think the CA Issuer with a RSA signed CA cert should be able to process CSRs that are signed with an ecdsa key.
Steps to reproduce the bug:
Create a CA issuer that uses rsa (default key algorithm) . Create a cert that uses ecdsa.  My sample looks like this:
[root@cabon1 tmp]# kubectl describe certificate my-ecdsa-cert1
Name:         my-ecdsa-cert1
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  certmanager.k8s.io/v1alpha1
Kind:         Certificate
Metadata:
  Creation Timestamp:  2018-10-25T13:19:46Z
  Generation:          1
  Resource Version:    5444672
  Self Link:           /apis/certmanager.k8s.io/v1alpha1/namespaces/default/certificates/my-ecdsa-cert1
  UID:                 a4e049f0-d858-11e8-9950-00163e01da8c
Spec:
  Common Name:  cabon1
  Dns Names:
    cabon1.test.com
  Issuer Ref:
    Kind:         Issuer
    Name:         cmtest-ca-issuer
  Key Algorithm:  ecdsa
  Key Size:       521
  Secret Name:    my-ecdsa-tls-1
Status:
  Conditions:
    Last Transition Time:  2018-10-25T13:35:43Z
    Message:               Error signing certificate: error creating x509 certificate: x509: requested SignatureAlgorithm does not match private key type
    Reason:                ErrorSigning
    Status:                False
    Type:                  Ready
Events:                    <none>

Environment details::

Kubernetes version (e.g. v1.10.2): 1.11
cert-manager version (e.g. v0.4.0): 0.5.0
Install method (e.g. helm or static manifests): helm

/kind bug

Thanks for your report.
Quick question: did you initially create your Certificate resource with the KeyAlgorithm set to RSA, and then later change it to ECDSA? I think there is a bug in our issuers which definitely could make this problematic.

I've opened #1012 to try and reproduce this

Looks like the test above is indeed failing - I'll try and take a look at this later this week, or early next 😄


docs: remove the duplicate word 'of'

remove the duplicate word 'of'
Describe this PR

Changes

What issue does this fix?

Any other relevant information

Thanks for the fix, @Kennytian


Unable to use docker buildx inside dind runner

Hi, I have set up some runners for my repository,
however it fails when trying to run docker buildx build ...
This is the output
docker buildx build -f Dockerfile .
unknown shorthand flag: 'f' in -f
See 'docker --help'.

Usage:	docker [OPTIONS] COMMAND

and I execute a shell into the runner and seems it has no buildx enabled for the docker.
is it possible to have the buildx installed for the docker on summerwind/actions-runner-dind ?

@nandiheath Hey!
Our default runner image contains only a subset of packages available in hosted version of the runner. See https://github.com/summerwind/actions-runner-controller#software-installed-in-the-runner-image. So you are very likely to need to install docker buildx extension on your own in your workflow. I thought there was a github action that does it for you.

https://github.com/summerwind/actions-runner-controller/blob/master/.github/workflows/build-and-release-runners.yml we actually use the setup action within the runner build and release workflow
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1
        with:
          version: latest

cool! Really thank you for the quick response!
I will try with the buildx-action. Much appreciated!


Merge pull request #1 from mybatis/master

update

m

m

Coverage decreased (-0.009%) to 87.319% when pulling f9942b316b78b2187a6cec65810aab6fbdadc18a on xumu1:master into 17ae4de75d3ba18b3938c9e833ede0c6ebdbb965 on mybatis:master.

Coverage decreased (-0.009%) to 87.319% when pulling f9942b316b78b2187a6cec65810aab6fbdadc18a on xumu1:master into 17ae4de75d3ba18b3938c9e833ede0c6ebdbb965 on mybatis:master.


Superhero endless loop (saturates one CPU core)

Describe the bug
Superhero seems to repeatedly go into some endless loop where it saturates one of my CPU cores.
I get a process (on Macbook Pro M1) called “Brave Browser Helper (Renderer)”  that uses 100-150% CPU and drains my battery.
If I kill that process I get a notification from Brave saying that Superhero has been killed and  an option to click there to reload it. I do that and for some time it’s fine, but after some period of normal usage, this thing happens again.
To Reproduce
My usage is just connecting and disconnecting to some daepp which uses the SDK (I am developing it at the moment). Haven’t even started to sign transactions yet. Sometimes I switch networks (mainnet/testnet).
Granted, I do that a lot (connecting and disconnecting) as I am currently developing this part.
Expected behavior
Superhero shouldn't go into this endless loop
Desktop (please complete the following information):

OS: Mac OS 12.6.3 on an M1 Pro, 32 GB RAM
Browser: Brave
Version: [Version 1.47.186 Chromium: 109.0.5414.119 (Official Build) (arm64)](https://brave.com/latest/)

Today I switched to Chrome and I can also report that it happens reliably in it as well with
Version 109.0.5414.119 (Official Build) (arm64)

This may have something to do with the permission Don't ask for login requests
Still not sure though, as I am experimenting with having the option on or off... and not sure that it does not happen when it's off


Set up a routing logic from contributor's tile to indv org page

Address #729

Added the routing on contributors' tile;
Set up the default Github Image if github image url is empty in Indv org page

Hey Travis, I like where this is headed but I'm gonna request a few changes.
1 - As a rule, don't include stuff not directly related to your issue. Changes to package.json, package-lock.json, createMuiTheme, etc. (If there is a good reason to include changes that are not part of an issue, at least then you should make a note about why you are including them. But I'm not sure that pertains here.)
2 - The link is available already simply by changing href={thumbnailInfo.organizationUrl} to href={`/organization/${organization.slug}\`} without going and modifying the getGithubInfo function!
3 - Once I click through to an individual org page, I get a serious error:
Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.

Can you work on that, too?
Thanks!

Hi Kevin,
Apologies for the unknown changes from other files. I accidentally included those changes in the branch. Will revert those changes and submit again. Thanks for the advice.


Small strokes

Hi, thanks for the great library! Small issue -- small strokes take up the whole screen. 丶for instance. Can't think of a simple fix and wondering if you have any suggestions.

Hey, sorry for the comically slow response! I just updated the datasource for Hanzi Writer to use https://github.com/skishore/makemeahanzi instead of ZDT. I think the new data source handles this better. Give it a try and let me know what you think!

Closing for now, feel free to repoen if this is still an issue.

Should be fine, I also switched to makemeahanzi for my project and it's great!


Add section on promises and deferreds.

Add a section on some gotchas about using promises and deferred objects. While these concepts are great and get rid of callback hell, they come with their own risks.

I think the text is confusing. The issue isn't with "using deferred" since fundamentally all of this is deferred and promises. The actual issue is that people superfluously wrap things that are already promises in manually-created promises. This is identical to people wrapping $element inside of angular.element() or people calling $scope.$apply() when there is already an $digest firing.
I would simplify the text to say that people should not wrap services that use promises in custom promises. They should learn how chaining works and leverage existing returned promises.

I see superfluous deferreds all the time. Not tragic but does betray a lack of understanding.
Is it worth saying anything about this in a style guide?
I guess I wouldn't mind but I don't think that's what it's for. I worry that people ask too much of this guide. It's about style, not everything you should know about JS or Ng. If it bloats we'll have lost our way and I fear it will lose effectiveness.

Maybe this belongs in another guide on Angular anti-patterns. I'll table this PR for now.


Gate certain features behind a context object.

What is wrong?
One of the main objectives of Fe is to be explicit and easy to audit. The EVM exposes certain features such as writing logs, creating  contracts or obtaining the current block number and it should be easy to determine from the signature of a function whether the function has the capabilities to use such features or not.
This is currently not the case, e.g we might currently have a function such as the following which - from it's signature - looks pure when in reality it does modify the blockchain (by emitting a log).
pub def looks_pure_but_isnt():
  emit SomeEvent()

The Context object
We propose to introduce a Context object which gates access to features such as:

emitting logs
creating contracts
transferring Ether
reading message info
reading block info

The Context object needs to be passed as a parameter to the function e.g. the example above would be rewritten as:
pub fn emits_event(ctx: mut Context):
  ctx.emit(SomeEvent())

Similar, creating a contract via create/create2 would also require to have access to the Context object:
pub fn creates_contract(ctx: mut Context):
  ctx.create2(...)

As well does reading  block chain information such as the current block number.
pub fn retrieves_blocknumber(ctx: Context):
  ctx.blocknumber()

There are a few special rules about the context object:

The Context object has a defined location in the parameter list. It either is the first parameter if the function does not take self (e.g. pub fn foo(context:Context)) or it comes second if the function does take self (e.g. pub fn foo(self, context:Context)). Any other index in the parameter list is a compile time error.

The Context object is automatically injected when a function is called externally but it has to be passed explicitly when the function is called from another Fe function e.g.

# The context object is automatically injected when this is called externally
pub fn amplified_block(ctx: Context) -> u256:
  # but it has to be passed along in this function call
  return retrieves_blocknumber(ctx) * 1000

fn retrieves_blocknumber(ctx: Context):
  return ctx.blocknumber()

Taking mut Context vs Context
As the eagle-eyed reader might have noticed the examples above either use  mut Context or Context. This proposal can be implemented independent of having support for mut in Fe but it would naturally benefit from having mut support because all functionality that modifies the blockchain such as creating logs or contracts would require to obtain a mut Context reference whereas readonly access such as ctx.blocknumber() does not need require a mutable reference to the context.
ABI conformity
The proposed system works nicely with the existing function categories in the ABI but offers even tighter rules for added clarity.

Category
Characteristics
Fe Syntax
ABI

Pure
Can only operate on input arguments and not produce any information besides its return value. Can not take self and therefore has no access to things that would make it impure
foo(val: u256)
pure

Read Contract
Reading information from the contract instance (broad definition includes reading constants from contract code)
foo(self)
view

Storage Writing
Writing to contract storage (own or that of other contracts)
foo(mut self)
payable or nonpayable

Context Reading
Reading contextual information from the blockchain (msg, block etc)
foo(ctx: Context)
view

Context Modifying
Emitting logs, transferring ether, creating contracts
foo(ctx: mut Context)
payable or nonpayable

Read Contract & Context
Reading information from the contract instance and Context
foo(self, ctx:Context)
view

Read Contract & write Context
Reading information from the contract instance and modify Context
foo(self, ctx: mut Context)
view

Storage Writing & read Context
Writing to contract storage and read from Context
foo(mut self, ctx: Context)
payable or nonpayable

Storage Writing & write Context
Writing to contract storage and Context
foo(mut self, ctx: mut Context)
payable or nonpayable

With the proposed system Fe would have nine different categories that can be derived from the function signatures that map to four different ABI types.

This brain dump is based on the PR discussion in #527 which offers more detailed reasoning and is worth a read.

This looks good as far as I can tell.

Currently we can read the address of the contract via self.address. I wonder if that should continue to be the case when the context object gets implemented or if it should be moved to ctx.address(). I think I'm leaning towards having it on ctx because there are a few similar cases that it would align nicely with. E.g. one could argue to introduce a self.balance to read the contract balance from but certainly balance_of(account: address) seems to be clearly suited to become a method on ctx.
To avoid any confusion I would say that they should all become context methods: ctx.address(), ctx.balance(), ctx.balance_of(account: address). This also has the nice side effect of not polluting the contract with any getters which leaves more room to developer :)
Thoughts?

I'm also leaning towards ctx.address().
I think any value that is not determined purely by the contract's code and past transactions should fall in the category of ctx, whereas values that are determined purely by the contract's code and past transactions should fall under self.
So, for example, say you deploy a contract and invoke some mut self functions with a series of txs. Since the mut self functions do not take ctx, you will arrive at some state that is deterministic with relation to the initial state. However, if you throw in a call to a function that takes ctx, the final state is not deterministic with relation to the initial state. I'm not sure that this sort of guarantee is valuable, but it seems logical.

Capturing from discord:
With #601 and #603, we're getting close to being able to define this in fe. Stuff like ctx.block_number(), ctx.msg_sender(), etc are doable now, but create and emit are tricky.
struct Context:
  _phantom: ()  // private field to prevent direct construction.
  // (Need to implement struct field visibility)

  pub fn msg_sender(self) -> address:
    unsafe:
      return std::evm::msg_sender()

  pub fn emit<E: event>(mut self, ev: E): // ?? takes any event type
    // Events aren't proper types at the moment. They can only be used with the `emit` stmt;
    // it's not possible to pass an event into a function right now.
    __magic_emit_intrinsic(ev)
    // ^ This needs to call the appropriate __log* fn depending on the number of idx fields.

  pub fn create<C: contract>(mut self, wei: u256) -> C: // ?? takes any contract type
    // Continuing to ignore constructor args. Dunno what to do about those yet.
    let (ctor_offset, ctor_len) = __contract_constructor_bytecode<C>()

    let mptr = std::mem::alloc(ctor_len)
    std::evm::code_copy(mptr, ctor_offset, ctor_len)
    return std::evm::create(wei, mptr, ctor_len)