Importing @matrix-org/matrix-wysiwyg with esm + typescript results in error due to exports in package.json

Problem
TSC spits out this error for any import:
error TS7016: Could not find a declaration file for module '@matrix-org/matrix-wysiwyg'. <EMAIL_ADDRESS>implicitly has an 'any' type.
  There are types at<EMAIL_ADDRESS>but this result could not be resolved when respecting package.json "exports". The '@matrix-org/matrix-wysiwyg' library may need to update its package.json or typings.

Steps to reproduce
Import the package in an esm module project with these compilerOptions (these are somewhat vitejs as an origin):
    "compilerOptions": {
        "experimentalDecorators": false,
        "emitDecoratorMetadata": false,
        "resolveJsonModule": true,
        "esModuleInterop": true,
        "module": "es2022",
        "moduleResolution": "Bundler",
        "target": "es2020",
        "noUnusedLocals": true,
        "sourceMap": false,
        "outDir": "./lib",
        "declaration": true,
        "jsx": "react",
        "lib": ["es2021", "dom", "dom.iterable"],
        "strict": true,
        "allowImportingTsExtensions": true,
        "isolatedModules": true,
        "noEmit": true,
    },

It seems like this export declaration makes tsc happy:
"exports": {
        ".": {
            "import": {
                "types": "./dist/index.d.ts",
                "default": "./dist/matrix-wysiwyg.js"
            },
            "require": {
                "types": "./dist/index.d.ts",
                "default": "./dist/matrix-wysiwyg.umd.cjs"
            }
        }
    },


Error calling CUDA mfem::forall() with MFEM as a third party library

Hello, I'm new here but have been developing a project based on MFEM for some months now.
My project  calls MFEM as a third party library using CMake as the build system.
I include MFEM as below:
find_package(MFEM REQUIRED)
after installing MFEM using CMake:
cmake -DMFEM_USE_CUDA=YES -DCMAKE_CUDA_ARCHITECTURES=86 ..
cmake --build . -j 15                      # Build MFEM
cmake --build . --target tests -j 15       # Build unit-tests
cmake --build . --target examples -j 15    # Build examples
cmake --build . --target miniapps -j 15    # Build miniapps
ctest --output-on-failure -T test         # Run the tests
sudo cmake --build . --target install         # Install header files

I recently parallelized my code, calling mfem::forall.
The content of the code is irrelevant here but I will include a test problem for the sake of completeness.
#include mfem.hpp
#include <mfem/general/forall.hpp>

int main(int argc, char **args) {
    // Print the device configuration.
    mfem::Device device("cuda");
    device.Print();

    int size = 100;

    mfem::Vector testVec;

    testVec.SetSize(size);
    testVec = 0.0;

    auto device_ptr = testVec.ReadWrite();

    testVec.GetMemory().PrintFlags();
    mfem::forall(size, [=] MFEM_HOST_DEVICE(int i) {
        device_ptr[i] += 5.0;
    });

    testVec.GetMemory().PrintFlags();
    auto host_ptr = testVec.HostReadWrite();

    testVec.GetMemory().PrintFlags();
    for (int i = 0; i < size; i++) {
        std::cout << host_ptr[i] << std::endl;
    }

    testVec.Destroy();
}

My code runs without errors and gives correct results in the device debug, CPU, and OpenMP configurations (given that MFEM has been built with -DMFEM_USE_OPENMP=YES). I have profiled the code and verified that the calls go through OpenMP when under this configuration.
Now, I try to build MFEM with CUDA using the above CMake commands.
The CUDA tests compile, run, and pass without any problems.
The header files are installed and find-able from my project.
However when building the project, the following error is thrown (along with several others, all of the same flavor):
/usr/local/include/mfem/general/forall.hpp: In function ‘void mfem::CuKernel1D(int, BODY)’:
/usr/local/include/mfem/general/forall.hpp:489:18: error: ‘blockDim’ was not declared in this scope
  489 |    const int k = blockDim.x*blockIdx.x + threadIdx.x;

showing that the internal CUDA variables are undefined.
when I build and open MFEM as a standalone project in CLion, this variable definition points to
/snap/clion/277/bin/clang/linux/x64/include/__clang_cuda_builtin_vars.h
Here is a more complete summary of the relevant CMake script components:
cmake_minimum_required(VERSION 3.22)
project(myProject VERSION 0.0.01 LANGUAGES CXX CUDA)

set(CMAKE_C_STANDARD 99 CACHE STRING "C++ standard to use.")
set(CMAKE_CXX_STANDARD 17 CACHE STRING "C++ standard to use.")
set(CMAKE_CXX_STANDARD_REQUIRED ON CACHE BOOL "C++ standard to use.")
set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE BOOL "C++ standard to use.")

include(FetchContent)
include(GNUInstallDirs)

find_package(MFEM REQUIRED)

 target_include_directories(myProject
        PUBLIC
        ${MFEM_LIBRARIES})

target_link_libraries(myProject
        PUBLIC
        ${MFEM_LIBRARIES})

        #....

# install and export

I've tried changing my function calls to only use the macros instead of calling the functions directly.
I've tried linking the MFEM library target with the CUDA directories:
enable_language(CUDA)
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --ptxas-options=-v")
target_link_directories(${MFEM_LIBRARIES} INTERFACE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})

as well as some other variations on setting NVCC as the compiler or including the CUDA toolkit and attempting to link it to both my project and MFEM, but I've run out of ideas and am becoming confused (I do not fully understand CMake).
It also seems that my CMake library configuration should not impact the MFEM build process, as including OpenMP internally to my project was not required to build and run the OpenMP configuration.
I find it odd that MFEM doesn't export the forall header. (I even tried editing the header export list to include it just to see what would happen. This didn't change anything.)
This made me question whether forall is intended to be called externally at all, but I have found examples of others doing the same in the Github issues and so assume that this is condoned?
This may or may not be more of a CMake question than an MFEM question, but I would greatly appreciate any light that anyone could shed on the issue.
Thanks a lot,
Owen

MFEM requires all files to be compiled with nvcc. Are you sure that your project files that use mfem_forall are compiled with nvcc? What's the output of make VERBOSE=1 of your project.

I think @jandrej is right -- all your source files that use mfem::forall need to be marked as CUDA sources when MFEM_USE_CUDA is true. This can be done with something like this: https://github.com/mfem/mfem/blob/c3eb769a2a316a68fd9a00448e20ca7cff4c8b7c/config/cmake/modules/MfemCmakeUtilities.cmake#L87-L90
Also, to setup the CUDA compilation commands you probably need to add something like this after find_package(MFEM REAQUIED):
if (MFEM_USE_CUDA)
    # optional:
    # set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER})
    enable_language(CUDA)
    # set CMAKE_CUDA_ARCHITECTURES on the command line or here:
    # set(CMAKE_CUDA_ARCHITECTURES 70)
    # The following flag is needed by MFEM's `mfem::forall` and other similar functions:
    set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-extended-lambda")
endif()

Regarding linking with CUDA libraries that are needed by MFEM: you don't need to do anything explicit for that -- the mfem target already has that information, so all you need to do is tell CMake to link your library or executable with mfem.

It would seem that this does it!
I had incorrectly assumed that setting the CUDA compiler and it's flags was adequate, but doing something like below gets the job done and the code now compiles with NVCC.
Thanks a lot for the help,
Owen
# Macro to set source files language to CUDA
macro(files_to_cuda EXE_SRCS)
    foreach(SRC_FILE IN LISTS ${EXE_SRCS})
        if (MFEM_USE_CUDA)
            set_source_files_properties(${SRC_FILE} PROPERTIES LANGUAGE CUDA)
        endif()
    endforeach()
endmacro()

# Collect all source files in src directory
file(GLOB_RECURSE SRC_FILES "src/*.cpp" "src/*.hpp" "tests/*.cpp" "tests/*.hpp" "main.cpp")

# Apply the CUDA property to all source files if MFEM_USE_CUDA is enabled
files_to_cuda(SRC_FILES)

# Create the library
add_library(myProject STATIC ${SRC_FILES})


Added queens.c

What does the program do ?
It allows the user to enter the positions of 8 queens and then checks whether queens are a threat to each other. If not, user wins
In what programming language it is written?
C

Thank you for participating  in hacktoberfest ❣ if you liked working on this repo you can share it with friends and star this project for helping others


Add a short description of the bug here

Thanks for forking this and working on those issues! I tried this out but encountered some issues.
OS: NixOS
What vim? (+ version): nvim 0.4.4
Reproduced in other variants of Vim? (Optional): N/A
(I actually tried this on vim 8.2.1522 and could not reproduce there, interestingly.)
Describe the bug
When starting nvim, I get the following error:
Error detected while processing function autopairs#AutoPairsTryInit[70]..autopairs#AutoPairsInit[33]..<SN
R>154_GetFirstUnicodeChar:
line    1:
E5070: Character number must not be less than zero

Steps to reproduce
Install and start.
Suggested fix
Something like this appears to have fixed the issue, but I haven't gotten around to testing this on any actual unicode characters... once I get around to that I'm happy to make a PR, if you're accepting any (:
diff --git i/autoload/autopairs.vim w/autoload/autopairs.vim
index c528092..9b077d5 100644
--- i/autoload/autopairs.vim
+++ w/autoload/autopairs.vim
@@ -98,11 +98,21 @@ endf

 " Idea by https://github.com/fenuks: https://github.com/jiangmiao/auto-pairs/issues/251#issuecomment-573901691
 fun! s:GetFirstUnicodeChar(string)
-  return nr2char(strgetchar(a:string, 0))
+  let l:nr = strgetchar(a:string, 0)
+  if l:nr == -1
+    return ""
+  else
+    return nr2char(l:nr)
+  endif
 endfun

 fun! s:GetLastUnicodeChar(string)
-  return nr2char(strgetchar(a:string, strchars(a:string) - 1))
+  let l:nr = strgetchar(a:string, strchars(a:string) - 1)
+  if l:nr == -1
+    return ""
+  else
+    return nr2char(l:nr)
+  endif
 endfun

Feel free to make a PR; gonna test the patch tomorrow either way though, regardless of whether there's a PR or not. Just for good measure, have you modified any of the pairs, or is it all default? Kinda sus it's related to the empty pairs, in which case it might be enough to do an empty check instead of this, or maybe both. Only repro in nvim is interesting though -- maybe there's differences in how they handle unicode?

Feel free to make a PR; gonna test the patch tomorrow either way though, regardless of whether there's a PR or not. Just for good measure, have you modified any of the pairs, or is it all default? Kinda sus it's related to the empty pairs, in which case it might be enough to do an empty check instead of this, or maybe both. Only repro in nvim is interesting though -- maybe there's differences in how they handle unicode?

Merged in your patch -- thanks!

Merged in your patch -- thanks!

Yeah, not really sure why it worked on Vim.. glad it works and that you merged it in!

Yeah, not really sure why it worked on Vim.. glad it works and that you merged it in!


German language not exported

Describe the bug
German exists in the source src/i18n/de.ts but doesn't get exported in src/i18n/index.ts and therefore doesn't get bundled.
Expected behavior
German is exported and bundled and can be imported from dist.

This is deployed in v2.7.1.


Pinecone retrieval improvements

Firstly thank you for the great library. I was interested in using the Pinecone retrieval component and ran into several issues, including:

Hardcoded api/env placeholders
Undeclared dependency (reasonably to not force pinecone install for other users)
Lack of support for multiple queries (used only results of first embedding)
Deprecated openai embedding kwargs
etc.

This aims to address these issues by overhauling the pinecone retrieval class in many ways: fixing the hardcoded keys, including the dependency as optional so you can use pip install dspy-ai[pinecone], and implementing similar behaviour to dsp.retrieveEnsemble to allow search against a query list, along with other code quality improvements.

This is really cool, thanks @msnidal
@drawal1 how does this look to you, will it still support what you need


Invoking serialize_bytes for &[u8] instead of serialize_seq

I'm trying to implement serializing bytes in my own crate, which using as a base serde module. So, I have a serializer in which has the next overridden method:
#[inline]
fn serialize_bytes(&mut self, data: &[u8]) -> Result<()> {
    let length = value.len();

    let mut header = vec![BertTag::Binary as u8];
    header.write_i32::<BigEndian>(length as i32).unwrap();
    try!(self.writer.write_all(header.as_slice()));

    let mut state = State::First;
    for element in data {
        try!(self.serialize_seq_elt(&mut state, element));
    };

    self.serialize_seq_end(state)
}

// tests
// ...
#[test]
fn test_serialize_bytes() {
    let empty_bytes_list: [u8; 0] = [];

    assert_eq!(
        term_to_binary(&empty_bytes_list).unwrap(),
        vec![
            131u8,
            109,                            // binary
            0, 0, 0, 0                      // length
        ]
    );

    let bytes_vec: [u8; 3] = [1u8, 2u8, 3u8];

    assert_eq!(
        term_to_binary(&bytes_vec).unwrap(),
        vec![
            131u8,
            109,                            // binary
            0, 0, 0, 3,                     // length
            97, 1,                          // 1
            97, 2,                          // 2
            97, 3                           // 3
        ]
    );
}

The basic signature for this function is described in serde here. After implementing special behaviour for this type of data, I'd written few tests, which checking correctness of this code. So, cargo test just note me, that those test are failing, because have a different headers. BERT specification for a binary type of data using tag with number 109. But in a result, I've taken a header with 108 number which is using for a list.
What can I do for that serializer will invoke serialize_bytes method instead of serialize_seq?

We don't yet support Rust's experimental impl specialization feature so right now &[u8] will get serialized the same as any other &[T], which is with serialize_seq instead of serialize_bytes. Support for specialization is tracked in #309.
For now your test will need to wrap the &[u8] in serde::bytes::Bytes which implements Serialize to go through serialize_bytes.
let bytes: serde::bytes::Bytes = b"testing"[..].into();

I filed #519 because there should be a better way to construct a Bytes :frowning:.

Yeah, that helped me. When specialization support will be have done, does serde-rs support either of &[u8] and serde::bytes::Bytes?
Thanks for the detail answer!

When specialization support happens, there will be no reason to have serde::bytes::Bytes anymore.
Currently we have this impl:
impl<T> Serialize for [T] where T: Serialize

Specialization will allow us to add this impl, which would conflict with the previous one before specialization:
impl Serialize for [u8]

Adding this impl is a breaking change because it affects the representation of &[u8] in formats that handle serialize_bytes differently from serialize_seq, so it needs to happen in a breaking Serde release like 0.9.0 or 0.10.0. In the same breaking release we will remove Bytes and ByteBuf.


Mismatched soname for libgrpc++

A symlink to libgrpc++.so.1.2.0 is created in the Makefile with the name libgrpc++.so.1. However, the soname of this library is set to libgrpc++.so.3 on the line above. This causes programs linked with libgrpc++ to fail with the error
./tests: error while loading shared libraries: libgrpc++.so.3: cannot open shared object file: No such file or directory
Creating the symlink manually fixes the problem (but I haven't checked if grpc actually works). I'm using OpenSUSE Leap 42.2, with source from the 'v1.2.0' git tag.
Note: I know very little about sonames, so this could be completely wrong. :-)

Eep, yes, thanks for the report.

FWIW, there's the same problem for libgrpc++_cronet.so.

It seems that this issue is still present in other places in the v1.3.1 Makefile. I also checked master and it's still present there, with libgrpc++.so.4 instead of libgrpc++.so.3. Can we make these use the vars so that they are guaranteed to match the soname?

There are several PRs addressing this issue (#13500, #11558, #10923, etc). Is there something fundamental blocking them from being merged? Happy to help if there's anything I can do, just seems redundant to open yet another PR.

A month ago I created a PR (#16832) to fix the same error but got no response either. Now I see that I was not the only one who tried fixing it. Looks like nobody from the maintainers cares.. All issues and PRs are assigned to @nicolasnoble and then they rot..

I just merged https://github.com/grpc/grpc/pull/16832 which should fix the problem. The good news is this we made it on time for the v1.17.x branch cut so the fix is going to be available in the v1.17.0 release (coming in about two weeks).
Sorry it took so long, we are trying our best to review things on time, but this time we really screwed up by failing to address 3 separate PRs for the same issue. I think partially the problem was coming from the fact that we are maintaining multiple build systems and each one is pretty complex (and requires a specific knowledge set that not everyone on the team has), so engineers on the team are careful in accepting build system changes (that have the potential to break lots of things and aren't always easy to test). We are thinking of how we can improve the process so things like this don't happen again.


Problem with scikit-learn version 0.16.1

Greetings,
I've got problem with scikit-learn version 0.16.1 with the parameter n_jobs used by kd_tree.
So your library seems to need scikit-learn version 0.17.0 then you should modify your requirements.
Update to scikit-learn version 0.17.0
sudo pip install --upgrade scikit-learn
Anyway, great job folks!
Claude Coulombe

You are right. Actually, Travis CI is synchronized with the version provided in conda.
We have to force the version

Thanks for the contribution. Solve in the PR refactoring the setup.py


Respect tools own config without pylama: prefix

This allows running each tool separately and all using pylama.
Currently you need to duplicate the configs, which makes it much more
painful then it needs to be.
Fixes #69

Coverage decreased (-0.4%) to 77.03% when pulling b98fdb04e2e03bf221c9f1bb6aa74829d6096dcc on maxnordlund:respect-tool-config into c07a906ed52f131bcdda67d84e493390c614b3ae on klen:develop.

This will be broken until #112 is merged as master is sadly broken right now.

@maxnordlund Thank you for the PR.


Fix the hash function for SILDebugScopes to handle the empty scopes

This PR was created for the fix to rdar://problem/31926379.

Explanation: Swift stores inline information as part of Scopes, LLVM stores it as part of Locations. Commit 5ea2d13f5e0 introduced a DenseMap for caching the non-inlined portion of a scope and it used the scope's parent SILFunction as part of the hash. This caused a collision for LLVM-only artificial helper functions  where the SILFunction is a nullptr. This patch fixes this problem by using the address of the SILDebugScope as a key if the parent function is nullptr.
Scope: The collision cause LLVM r302469+ to fail verification (I added the verifier check in the light of this problem) and cause corrupted DWARF output that crashes DWARF consumers on older versions of LLVM.
Radar: rdar://problem/31926379
Risk: Low.
Testing: Run dwarfdump --verify or symbols on programs compiled with debug info.

To make cherry-picking conflict free, this PR also includes an NFC refactoring. Let me know if a small but conflicting patch is preferable.

@swift-ci please test


Cleans up a few things

I will explain my changes in a canvas message, but this should get you back on track.

Thank you


req.hostname getting undefined when listening event 'upgrade'

Hello everyone.
First of all, I would like to wish a merry christmas and a happy new year to all the people who read this issue.
Recently I've been working with websockets and trying to route them through the 'node-http-proxy' package which does it with a good job. However, to route the websockets I need to listen to the .on event ('upgrade') and obtain its origin host to decide which proxy I will forward my socket to. In my test scenarios, running Express v 4.17.1 and node-http-proxy v. 1.1.9 when I try to connect using a browser websocket I receive the 'upgrade' event as expected but the req.hostname property is undefined while the req.headers.host property is set.
Any idea why this is happening? If this feature isnt supported yet, I would appreciate it if req.hostname was also available for the upgrade event.
My node.js version is 10.16.0

None of Express is available in the upgrade event, as that is outside of the Express framework itself (the event is from Node.js framework and so you are seeing only the items Node.js provides).


Fetching of dist archive for private packages is broken

Hi! 👋
Firstly, thanks for your work on this project! 🙂
I've noticed that lib was only using npm fetch to fetch metadata, but tarball should also be fetched using npmFetch so that private packages are working? It also slightly simplifies code (in my patch i assume i am not handling errors)
Here is the diff that solved my problem:
diff --git a/node_modules/self-hosted-shared-dependencies/lib/self-hosted-shared-dependencies.js b/node_modules/self-hosted-shared-dependencies/lib/self-hosted-shared-dependencies.js
index c09225d..8879a03 100644
--- a/node_modules/self-hosted-shared-dependencies/lib/self-hosted-shared-dependencies.js
+++ b/node_modules/self-hosted-shared-dependencies/lib/self-hosted-shared-dependencies.js
@@ -335,27 +335,8 @@ export async function build({
         });

         const tarballUrl = metadata.versions[matchedVersion].dist.tarball;
-        const requestStream = (
-          tarballUrl.startsWith("http://") ? http : https
-        ).request(tarballUrl);

-        requestStream.on("response", (responseStream) => {
-          responseStream.pipe(untarStream);
-        });
-
-        requestStream.on("timeout", () => {
-          reject(
-            Error(
-              `Request timed out to download tarball for ${p.name}@${matchedVersion}`
-            )
-          );
-        });
-
-        requestStream.on("error", (err) => {
-          reject(err);
-        });
-
-        requestStream.end();
+        npmFetch(tarballUrl, npmFetchOptions).then((res) => res.body.pipe(untarStream)).catch(reject);

         untarStream.on("end", () => {
           resolve();

Fix released in https://github.com/single-spa/self-hosted-shared-dependencies/releases/tag/v2.0.1


Addition of two features

Allows $.receiveMessage to target a window other than the current window
Fixes problem with non-awesome browsers that must rely on hash changes -- certain messages are longer than the typical maximum URL length of 2,000 characters. This PR includes a partitioning mechanism for these long messages, parting at 1,000 characters.

Withdrawn; fork is diverging too far from parent


Fetch Tasks based on email id instead of user names

In task.js change the getTasksForUser function to get tasks for a particular user my matching email address

I want to work on this .
Assign this to me


Dean bryen profile add

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

advocates/dean-bryen.yml
:white_check_mark:Succeeded
View

advocates/media/profiles/dean-bryen.png
:white_check_mark:Succeeded
View

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


In Firefox, Dropdown Menus in btn-groups with items wider than the button that triggers them have overflowing content

If a dropdown menu is contained in a .btn-group, and its content is wider than the button that triggers it, the width the of the menu reverts to the menu's min-width value, which is currently 160px.  This issue appears to be browser-specific; it works fine in Chrome and Edge, but breaks in Firefox.
The issue appears to be the .btn-group's position: relative style.  Changing this to position: static fixes the issue.  Granted, I'm sure .btn-group's position needs to be relative for other reasons, but it breaks wide dropdown menus in Firefox.
Repro example

Hi, i tried your sample in FF quantum but I couldn't replicate the issue

You can use our .position-static class to fix your issue see : https://getbootstrap.com/docs/4.0/utilities/position/#common-values
See my CodePen : https://codepen.io/Johann-S/pen/EoPWVE
Can you specify which release of Firefox ?

I'm using Firefox ESR v52.5.2 (64-bit).  I don't actually know what ESR is (I installed FF a long time ago and never use it), so maybe that's my issue.

FF v57 should work well in this case.

I'm unable to reproduce it in FF 52 :thinking:

Closing since we cannot reproduce in latest FF.


Collapse and Expand VerticalNav through code

I was wondering if there's a way to collapse and expand the VerticalNav through the code. Right now it's only possible by clicking on humbugger menu.
I noticed there are two methods (expandMenu and CollapseMenu) but both are private:
https://github.com/patternfly/patternfly-ng/blob/7a1904b00703dea20bff07d033ea62f843048745/src/app/navigation/vertical-navigation/vertical-navigation.component.ts#L629
Will be happy to send a PR if you're willing to make the methods public.

I don't have an issue making these methods public. However, I would like to first understand why you're opening/closing the menu programmatically?

The use case is to persist the NavBar state (collapsed/expanded) so the user won't need to collapse the NavBar every time the page reloads.
Please see the PatternFly example , collapse the menu and refresh the page.

That would do it. Thanks!

I added a new showMenuCollapsed attribute.
https://github.com/patternfly/patternfly-ng/pull/441


fix: resolution-qa-task-61 (#96)

Correction of the response to a mismatched code in account recovery.
Issue
This pull request refers to Issue #

[ ] Does not apply to this pull request

Description
Please include a summary of the change and which issue is fixed.
Types of changes

[ ] New feature (non-breaking change which adds functionality).
[ ] Bug fix (non-breaking change which fixes an issue).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).

What changed:

[ ] UI
[ ] Business rule
[ ] Documentation
[ ] Gradle or Build
[ ] Navigation
[ ] Tests
[ ] Resource files
[ ] Project architecture
[ ] Code style

Checklist

[ ] Have tested the changes.
[ ] Met all the acceptance requirements of this task.
[ ] Verified if branch is up-to-date with develop (if not - rebase it or merge it).
[ ] Resolve git conflicts

If any of the acceptance criteria are not met, please explain why below
What is the criteria? Why it is different?

@OdisBy aprova ai? O correto é fazer esse merge certo? Se tiver algo errado me da um toque


Delegate Mission Request: Builders grants program mission request

Delegate Mission Request: Builders grants program mission request
Delegate Mission Request Summary:
This mission request will allow the builders grants program that was run in previous seasons to continue in S5. This Mission Request focuses on continuing the builder’s grants process, as in seasons 3 and 4, to foster builder growth on OP Mainnet.
S5 Intent:
Aligned with Intent #2: Grow the Superchain
Proposing Delegate: Gonna.eth
Proposal Tier:
Ember
Baseline grant amount:
1.500.000 OP (50k OP Each)
Should this Foundation Mission be fulfilled by one or multiple applicants:
Multiple
Start date:
February 1st 2024
Completion date:
May 8th 2024
Apply Here
Specification:
How will this Delegate Mission Request help accomplish the above Intent?
This request aims to advance builder growth and enhance the Superchain’s ecosystem by providing grants to projects deploying on OP Mainnet. The focus is on supporting initiatives that foster builder experience, tools, and applications within this domain.
What is required to execute this Delegate Mission Request?:

Detailed proposals outlining initiatives to attract builders to Optimism must be submitted.
Applicant projects should align with the goal of growing the Superchain’s builders base, specifically on OP Mainnet.
Grant recipients will be accountable for executing proposed projects and delivering outlined milestones within the specified timeframe.

How should the Token House measure progress towards this Mission?

Submission of comprehensive project plans requesting a grant for the grants council to review.
Achieving project milestones as per the proposed timelines.
Updates to the Grants Council on project progression at the end (12 months).

How should badgeholders measure impact upon completion of this Mission?

Quantifiable increase in active builders deploying on OP Mainnet within the Superchain.
Enhancement in developer tools or experiences resulting from the funded projects.
Metrics showcasing the increased engagement and adoption of applications developed through these grants.

I'm confused are you looking to provide grants to people building as part of this request or providing grants to people to attract builders?

These projects were selected for these mission requests
https://app.charmverse.io/op-grants/community-builder-irl-age-of-empires-governance-platform-5307843531819139
https://app.charmverse.io/op-grants/easyretropgf-xyz-16908203122976806
https://app.charmverse.io/op-grants/page-6372885922099296
https://app.charmverse.io/op-grants/page-13415614066687764
https://app.charmverse.io/op-grants/page-7805364576656899
https://app.charmverse.io/op-grants/karma-gap-retropgf-project-discovery-and-impact-evaluation-008175679206510633
https://app.charmverse.io/op-grants/page-4129228981302593
https://app.charmverse.io/op-grants/namespace-47026143591884195
https://app.charmverse.io/op-grants/page-7128419920974485
https://app.charmverse.io/op-grants/xoptokens-enabling-xerc20-on-op-mainnet-messaging-layer-9043286328737232
https://app.charmverse.io/op-grants/page-13769815258717144
https://app.charmverse.io/op-grants/page-5782827753195403
https://app.charmverse.io/op-grants/radar-launch-future-pools-23476330616230623
https://app.charmverse.io/op-grants/migrate-inverter-network-10310452077197252
https://app.charmverse.io/op-grants/a-multichain-modular-privacy-framework-with-a-decentralized-compliance-network-4931843948755825
https://app.charmverse.io/op-grants/page-33341252653367004
https://app.charmverse.io/op-grants/ame-network-composable-social-network-8201927441390269
https://app.charmverse.io/op-grants/blockpi-account-abstraction-service-6499713590466969
https://app.charmverse.io/op-grants/bloom-metrics-the-optimism-impact-garden-8064181919524971
https://app.charmverse.io/op-grants/bonadocs-23948002871339513
https://app.charmverse.io/op-grants/building-an-on-chain-review-system-with-eas-745425000563134
https://app.charmverse.io/op-grants/dappbooster-frontend-starter-kit-5538923919258636
https://app.charmverse.io/op-grants/dappykit-superchain-42917102459787015
https://app.charmverse.io/op-grants/dark-forest-ares-2473027417469651
https://app.charmverse.io/op-grants/ethernaut-cli-5528017465072967
https://app.charmverse.io/op-grants/executable-an-intent-oriented-multi-tx-tool-011454040873412286
https://app.charmverse.io/op-grants/godot-engine-gdscript-sdk-for-connect-optimism-144384517023338
https://app.charmverse.io/op-grants/growthepie-application-level-analytics-for-the-superchain-250089520912399
https://app.charmverse.io/op-grants/in-depth-fee-tracker-for-op-chains-on-fees-growthepie-xyz-9750095618885746
https://app.charmverse.io/op-grants/page-528739678357524
https://app.charmverse.io/op-grants/namespace-7842790596987093
https://app.charmverse.io/op-grants/op-passport-9302219415326576
https://app.charmverse.io/op-grants/optimistic-crowdstaking-funding-more-builders-on-optimism-8173089535454674
https://app.charmverse.io/op-grants/polynomial-optimistic-indexer-1538697994300977
https://app.charmverse.io/op-grants/redprint-toolkit-an-interactive-code-generator-and-a-dev-framework-to-modify-deploy-opstack-s-contracts-9499729065142495
https://app.charmverse.io/op-grants/strands-optimism-integration-acceleration-6171257133376422
https://app.charmverse.io/op-grants/superchain-trading-tools-06248027711227655
https://app.charmverse.io/op-grants/tribuni-forum-proposal-alerts-summary-system-27035076138360314
https://app.charmverse.io/op-grants/unifra-open-infrastructure-for-everyone-9056352186275152
https://app.charmverse.io/op-grants/vain-an-open-marketplace-for-mining-vanity-eth-addresses-96344105785214


Add kagi.ts search-engine

This PR adds Kagi search engine support.

HOLY MOLY!
That was unexpected haha!

First off, thank you for you contribution!
It's always cool to see when someone dives into a codebase lacking documentation, figures things out and makes a contribution anyways.
General Thoughts
I didn't know that Kagi was a thing.
The concept of a paid search engine sounds really interesting to me. (But that's beside the point.)
I've tested this PR and things seem to be working nicely when it comes to blocking regular search results:
kagi-demo.webm
But I was not able to get the controlHandler to show up, and it seems that the target used in the entryHandler is not present on any of the available example pages.

https://github.com/iorate/ublacklist/blob/a663ffac52205a187878a4937576fef7cfad18de/src/scripts/search-engines/kagi.ts#L19-L21

This leads to a genuine question that I have in mind when it comes to adding support to this search engine.
Generally speaking, the process of debugging the behavior of uBlacklist involves reproducing a search query on your local machine, opening up Browser Developer Tools and inspecting the DOM.
But since Kagi is a paid service and I don't have a subscription (I'll assume iorate doesn't have one well), this could lead to us being unable to solve a bug report on our own.
Would you/someone from Kagi be willing to work on user submitted bug reports, if some issue arrises? (e.g. a change to Kagi's layout that broke the position of a controlhandler.)
Kagi Supports Blocking Websites
It seems that Kagi already has some interesting functionality when it comes to blocking results. Here's an excerpt from the main page:

Mute or prefer websites in your results.

Although, I can see the value of using uBlacklist with it, since there are other cool things provided by the extension, such as blocking results with regular expressions, highlighting them, etc.
I'm only mentioning this to know if you have an opinion about it.
Afterthoughts
Anyways, it's mostly up to iorate to decide things here, and nothing of what I said before is intended to invalidate the work on this PR.
I think it could be a cool thing if done properly.

But I was not able to get the controlHandler to show up, and it seems that the target used in the entryHandler is not present on any of the available example pages.

Thank you for the excellent suggestion regarding the example page (I forgot about that page). On the actual search page controlHandler works fine (you just need to be logged in). I will make sure to add the target element on the example page as well.

But since Kagi is a paid service and I don't have a subscription (I'll assume iorate doesn't have one well), this could lead to us being unable to solve a bug report on our own.

We have a Trial plan with 100 free searches (https://kagi.com/onboarding?p=choose_plan).

Would you/someone from Kagi be willing to work on user submitted bug reports, if some issue arrises? (e.g. a change to Kagi's layout that broke the position of a controlhandler.)

Of course.

Although, I can see the value of using uBlacklist with it, since there are other cool things provided by the extension, such as blocking results with regular expressions, highlighting them, etc.

This addition was based on a user suggestion to incorporate ublacklist support. You can read more here

We have a Trial plan with 100 free searches

Oh, that's actually pretty cool. I will try it later.

This addition was based on a user suggestion to incorporate ublacklist support. You can read more here

I see, it makes more sense now.

Thank you for your contribution.
I will review it later.

Thanks to @GeorgeIsInTheAir and @iorate.
I'm really glad that I hope for Kagi forum and here.
I'm really happy that both sides contributed.

One More Thing...
and more for macOS.

@GeorgeIsInTheAir GeorgeIsInTheAir
It doesn't seem to be working.

uBlacklist for Safari 8.8.2 with Safari 17.5 (196<IP_ADDRESS>.6) on macOS Sonoma.5
Even if it works with Orion, it may not work with Safari.
The update content of "[uBlacklist for Safari 8.8.2] (https://apps.apple.com/jp/app/ublacklist-for-safari/id1547912640)" is not synchronized with here, so I feel distrustful at uBlacklist for Safari 8.8.2.

@Chamiu
The extension has recently gone through a lot of changes in the back-end side of things (the grammar that is used for creating rules has been expanded.)
But it seems that there are some issues when it comes to the Safari version that are still being sorted out.
See #492 for more details.

@aug-dev Thanks guide.
There is a difference between the version number and the update content between the Safari version and the vanilla version, so I started trying Orion Browser by Kagi


Implement Basic Authentication with Passport.js and JWT

Description:
As part of our application's authentication system, we need to implement basic authentication using Passport.js and JWT (JSON Web Tokens). This will allow us to securely authenticate users and manage their sessions using JWT tokens.
Tasks:

Set up Passport.js and JWT dependencies in the project.
Configure Passport.js with the JWT strategy to handle authentication.
Implement user registration endpoint to create new user accounts securely.
Create a login endpoint that authenticates users and generates JWT tokens.
Implement a protected endpoint that requires JWT token for access.
Set up middleware to authenticate requests using Passport.js and the JWT strategy.
Handle logout functionality to invalidate tokens or sessions.
Implement password reset functionality for users who have forgotten their password.

Acceptance Criteria:

Users should be able to register and create new accounts securely.
Users should be able to log in and receive a JWT token for subsequent authenticated requests.
The protected endpoint should only be accessible with a valid JWT token.
JWT tokens should be properly validated, and expired or invalid tokens should be rejected.
Users should be able to log out and invalidate their session or token.
The password reset functionality should allow users to reset their password securely.

Additional Information:

Make sure to follow best practices for security, such as properly hashing passwords and securely handling JWT tokens.
Document the authentication API endpoints and any required input parameters or response formats.
Ensure that appropriate error handling is implemented for various scenarios, such as invalid credentials or expired tokens.

Related Dependencies or References:

Passport.js: link to documentation
JWT: link to documentation

Shall I work on this


Allow object deletion without psql

Even if a Job or Maintainer disappears from a YAML, it won't be deleted. Which is fine, but it might be nice to have a deletion process (maybe moxie-delete) that's somewhat analogous to moxie-load.

My only concern is that the delete operation will break anything with a FK constraint - but open to ways to do this!

For sure, something to ponder if we do implement this. Could just exclude jobs with FK ties, in the same way that we don't let triggered jobs enter the DB except if their trigger's already there.


[DOCUMENTATION] Cluster formation fails without cluster.initial_master_nodes configuration

I'm following the documentation about cluster formation and I was not able to create a cluster without adding cluster.initial_master_nodes configuration. This information it's not on the documentation and apparently setting node role to MASTER it's not enough for cluster formation for the first time.
How can one reproduce the bug?
Steps to reproduce the behavior:

Create 4 VMs running Ubuntu 20.04
Download and decompress the tarball on all VMs
Make the changes for every node on the file config/opensearch.yml as said in the documentation
Run ./opensearch-tar-install.sh on every node

What is the expected behavior?
A health cluster with 4 nodes (1: Coordinator, 1: Master, 2: Data)
What is your host/environment?

OS: Ubuntu 20.04
Version: 1.2.4

Do you have any screenshots?
The configuration in one of the nodes looks like this and the other nodes will just change name, roles and IP's:
# ======================== OpenSearch Configuration =========================
#
# NOTE: OpenSearch comes with reasonable defaults for most settings.
#       Before you set out to tweak and tune the configuration, make sure you
#       understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.opensearch.org
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: opensearch-master
node.roles: [ master ]
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
#path.data: /path/to/data
#
# Path to log files:
#
#path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# OpenSearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: <IP_ADDRESS>
#
# Set a custom port for HTTP:
#
http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["<IP_ADDRESS>", "[::1]"]
#
discovery.seed_hosts: ["<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
#cluster.initial_master_nodes: ["opensearch-master"]
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true

After running the install script, the cluster complains that master is not discovered yet and has not  previously joined a bootstrapped (v7+) cluster
[2022-02-23T14:52:06,461][WARN ][o.o.c.c.ClusterFormationFailureHelper] [opensearch-master] master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and [cluster.initial_master_nodes] is empty on this node: have discovered [{opensearch-master}{r8GyxEUzTu6yFc-t08nWng}{pyCyFxYAQ8yN6ExwkLJkEQ}{<IP_ADDRESS>}{<IP_ADDRESS>:9300}{m}{shard_indexing_pressure_enabled=true}]; discovery will continue using [<IP_ADDRESS>:9300, <IP_ADDRESS>:9300, <IP_ADDRESS>:9300] from hosts providers and [{opensearch-master}{r8GyxEUzTu6yFc-t08nWng}{pyCyFxYAQ8yN6ExwkLJkEQ}{<IP_ADDRESS>}{<IP_ADDRESS>:9300}{m}{shard_indexing_pressure_enabled=true}] from last-known cluster state; node term 0, last-accepted version 0 in term 0
[2022-02-23T14:52:08,584][ERROR][o.o.s.c.ConfigurationLoaderSecurity7] [opensearch-master] Exception while retrieving configuration for [INTERNALUSERS, ACTIONGROUPS, CONFIG, ROLES, ROLESMAPPING, TENANTS, NODESDN, WHITELIST, AUDIT] (index=.opendistro_security)
org.opensearch.cluster.block.ClusterBlockException: blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];

Setting cluster.initial_master_nodes: ["opensearch-master"] fixed the problem.

HI @peterzhuamazon - Can you please look at this and let me know if the solution is valid? (I know we've changed some terminology since this was written, so that would need to be adjusted, as appropriate.)

HI @soosinha, can you please review this and let me know if the solution is valid? Thanks.

Yes @hdhalter , for initial bootstrap of a cluster, we need to provide the setting cluster.initial_master_nodes. With the terminology change, the setting will be cluster.initial_cluster_manager_nodes and the value will be the list of cluster manager node names which should be used for the first election.
For the example listed on documentation page, the setting will be as below:
cluster.initial_cluster_manager_nodes: ["opensearch-cluster_manager"]

Please modify the documentation accordingly.

@vagimeli - Can you please update the documentation with this setting? Thanks!

@soosinha Is this simply a setting name change? If so, please provide me with the specific information we need to include in the documentation and where exactly we need to include this change in the documentation. The associated PR is #5712. Thank you.

This is not a setting change. This was a miss in the documentation for setting up a cluster.
We need to add the following information in the step 4 of Creating a Cluster here.
You need to specify the cluster manager nodes which will be used in the first election for cluster bootstrapping. In the current example, the setting would look like below:
cluster.initial_cluster_manager_nodes: ["opensearch-cluster_manager"]

Also change the step 4 title from "Configure discovery hosts for a cluster" to "Configure discovery hosts and initial cluster manager nodes for a cluster"


Connection pool initialization

In initialize function there is condition
while self.size < self.minsize:
where self.size is  self.freesize + len(self._used) and this leads to the fact that there will never be more than minsize connections in the dequeue, and maxsize connections count never be reached.
May be there should be condition like this:
while self.freesize < self.minsize:
?

I confirm that the maxsize is never reached.

Fix here: https://github.com/long2ice/asynch/pull/97

@AlexEbral , hello. Could you close this issue or is it still persistent?


fix: use channel to extract activity info from storage

Definition of Ready

[ ] I am happy with the code
[ ] Short description of the feature/issue is added in the pr description
[ ] PR is linked to the corresponding user story
[ ] Acceptance criteria are met
[ ] All open todos and follow ups are defined in a new ticket and justified
[ ] Deviations from the acceptance criteria and design are agreed with the PO and documented.
[ ] No debug or dead code
[ ] My code has no repetitions
[ ] Critical parts are tested automatically
[ ] Where possible E2E tests are implemented
[ ] Documentation/examples are up-to-date
[ ] All non-functional requirements are met
[ ] Functionality of the acceptance criteria is checked manually on the dev system.

@stebenz, @livio-a is this still helpful or should I close?

Closing. Feel free to reopen if still needed.


Minio backend bug in getting files

Behavior
Pachyderm backed by Minio in Google Cloud (and possibly elsewhere) is able to:

create repositories
put data into repositories

However, when you try to get versioned data out of PFS, the files always return blank, even though you can see that the file content was written to the object store (either via the Minio browser or via pachctl list-file and pachctl list-repo).
To Recreate
Deploy Minio

spin up a VM on GCE and deploy Minio via:

docker run -p 9000:9000 minio/minio server /export

get the Minio creds via

docker logs <container id>

Deploy k8s

set up the environment:

CLUSTER_NAME=pach-cluster
GCP_ZONE=us-west1-a
gcloud config set compute/zone ${GCP_ZONE}
gcloud config set container/cluster ${CLUSTER_NAME}

create the k8s cluster

gcloud container clusters create ${CLUSTER_NAME} --scopes storage-rw

update kubectl

gcloud container clusters get-credentials ${CLUSTER_NAME}

Deploy Pachyderm backed by Minio

create a persistent disk:

STORAGE_NAME=pach-minio-disk
STORAGE_SIZE="10"
gcloud compute disks create --size=${STORAGE_SIZE}GB ${STORAGE_NAME}

deploy pachyderm backed by minio (using pachctl 1.3.12)

pachctl deploy custom --persistent-disk google --object-store s3 ${STORAGE_NAME} ${STORAGE_SIZE} <minio bucket> <minio id> <minio secret> <public ip of minio VM>:9000

once pachyderm is up, port-forward

pachctl port-forward &

Put some data in PFS and try to get it back

create a repo in Pachyderm

➔ pachctl create-repo testminio
➔ pachctl list-repo
NAME                CREATED             SIZE
testminio           11 seconds ago      0 B

push data to the repo (in this case just the pachyderm README.md)

➔ pachctl put-file testminio master blah -c -f README.md
➔ pachctl list-repo
NAME                CREATED              SIZE
testminio           About a minute ago   9.92 KiB

list the file to make sure it was written with non-zero size

➔ pachctl list-file testminio master
NAME                TYPE                MODIFIED            LAST_COMMIT_MODIFIED   SIZE
/blah               file                45 seconds ago      master/0               4.96 KiB

examine the file in the Minio Browser to see it has content

try to get the file

➔ pachctl get-file testminio master /blah
➔

(this returns without error much return empty, where we would expect to get the content)

you can also use pachctl mount to mount PFS locally and browse the fs.  This also show blank files, although we know the content was written to the object store.

Thoughts

For some reason everything returned when getting files is empty.  Maybe a bug in the Minio client get functionality?

The Minio client works at least for putting files.  Is there something different about getting files?

Taking a look @dwhitena


Reorganize serve flags into flagsets

Description
The flags on spicedb serve --help are numerous. It makes parsing through them to figure out which ones are relevant and which ones you need pretty difficult.  This is the first step towards addressing that - we organize the flags into flagsets which provides a bit of logical and visual grouping.
Changes
Gonna annotate.
Testing
Review. ./spicedb serve --help and see that all of the expected flags are present and that they are organized more nicely.

@ecordell re: color: I think it's just on the far side of easy. I tried https://github.com/ivanpirog/coloredcobra and it isn't aware of flagsets, and I tried fatih/color on the flagset names but that only changes the label, not the entire string output:
gRPC Flags:
^ this is colored
      ^ this is not

I think it'd be possible to do it, but it'd require more manual intervention, so I'm gonna leave it for now and work on addressing your other comments.


Line breaks on different zoom levels of Browser

Hi @jerosoler I'm facing a issue of breaking of connection line between 2 nodes on 100% level of the browser, and working fine on 80%, but this zoom levels vary from system to system

this image is of my system on 100% level of the google chrome browser.
.css of this
.drawflow .connection .main-path {
fill: none;
stroke-width: 2px;
stroke: #000;
transform: translate(-9998px,-9999px);
}
but still facing a issue, provide some solution of this.
Thanks!

What version of drawflow use?
It looks like old css code.
View:

https://github.com/jerosoler/Drawflow/issues/218

Try new file: https://github.com/jerosoler/Drawflow/blob/master/src/drawflow.css


ts: Migrate settings_emoji.js to TypeScript.

This PR migrates settings_emoji.js module to TypeScript.

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

lgtm aside from that note about the sort function.

@zulipbot add "integration review"

Merged, thanks @Lalit3716!


Russian translation

OCP:

[x] Translate UI to Russian
[ ] Translate schema to Russian

OCP's tasks depend on finalizing the English text.
Quintagroup:

[ ] Add Russian as language option

We'll need to figure out how the code can access a Russian translation of the schema, which is not published with the OCDS documentation. That said, we can launch the Russian UI without it.

@sorenabell the Spanish and Russian UI translations are ready now

Yes, great. @yolile I noticed that translation didn't cover the FAQ block on the 1st step. We updated translation tags for this piece of text. It is displayed in Transifex now. Please update those lines too.

@sorenabell done for Spanish and Russian, thanks!

@sorenabell let me know when you would like me to have a look through and test.

It is already on production: https://flatten.open-contracting.org/#/upload-file?lang=ru

Ok I will test this in the morning. Can already see a couple of issues.

@sorenabell here are the places where I have found English text when it should be Russian.
On the upload page, second FAQ:

On the language options on the top right. I think if you are "in" the Russian version, then the alternative language options should also be in Russian

When the file is being uploaded the Cancel button needs to be in Russian

The heading text: "Select how to generate your tables"

On the download screen if you select "go back", then the pop up is in English - we need to check go back pop ups for all other pages too

On the select data page the text "total row count" needs to be in Russian:

On the customise tables screen as highlighted - this occurs for all tables in this step:

For most of these cases, the lines are either untranslated or unreviewed. But we will look into the others and drop-down.


[Fix] Redirect CLI login to support page and remove CLI login route

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

#3872  👈
#3871
main

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

Join @jnsdls and the rest of your teammates on  Graphite


Charsheet - State - Condition: Send to Chat creates double entry

When you click on a status / condition to post it to chat, it creates a double message.

Yeah it has to be twice there, so deaf people can understand.
Also seems like Sweety is treated like a slave.

We need a text to speech function for blind chars, too!
Plushtoast @.***> schrieb am Do., 8. Juli 2021, 23:56:

Yeah it has to be twice there, so deaf people can understand.
Also seems like Sweety is treated like a slave.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Plushtoast/dsa5-foundryVTT/issues/485#issuecomment-876771864,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AO7QFHYZK2JRD2YFTNTSSSDTWYNKTANCNFSM5AAINIBA
.


Network tab file needs explanation

The output from the network overview (https://conekt.legumeinfo.org/network/species/2) includes a download link.  It downloads a tab file with cryptic headers.  Either the headers need to be descriptive or a legend needs to be included in the file that explains the table.
The file that is downloaded is "network_3.tab".  Is the table made dynamically from the GlycineMine or is it a flat file.  If it is a flat file, is it up to date?  It looks like it is Wm82.a2 specific.  Should we have similar files for Wm82.a4, Wm82.a5, Wm82.a6, ...?
@StevenCannon-USDA @jd-campbell @adf-ncgr

This is probably mostly a question for @sdash-github, but I don't think GlycineMine is involved. I think this is basically the result of correlation/coexpression analysis, and probably needs to be updated whenever we decide new expression data ought to be included. I think the reason we used Wm82.a2 is that those were the gene models that were in the gene family phylotrees, which get used for cross-species comparisons in this tool.

The file is generated by the CoNekT utility.
PCC: Pearson Correlation Coefficient
HRR: Co-expression networks in CoNekT are based on Highest Reciprocal Rank (HRR) metric and is explained in the CoNekT paper below. https://academic.oup.com/nar/article/46/W1/W133/4990637#:~:text=Highest Reciprocal Rank (-,HRR,-) metric score of

The file is autogenerated by the CoNekT utility.
PCC: Pearless Correlation Coeffiecient
HRR: Co-expression networks in CoNekT are based on Highest Reciprocal Rank (HRR) metric and is explained in the CONekT paper below.
https://academic.oup.com/nar/article/46/W1/W133/4990637#:~:text=Highest Reciprocal Rank (-,HRR,-) metric score of

The point is NOT to force the user to have to get the paper to determine what those abbreviations mean or what the tool really does.  If you cannot modify the file before it is downloaded, then you must give some explanation of what is going on somewhere on the page or link to a page that explains what is going on.  Most users will not understand what the tool is or understand what it does by just its name "CoNekT"  or the "Species Overview" page that they see when you click on the link from "tools". Moreover they will not take the time to lookup the paper.  The tool must be self explanatory or have a link to a brief explanation If you want them to use the tool else they will get frustrated and go away. That text would include an explanation of the headers of any downloaded tab file. @adf-ncgr @sdash-github

Agree that this is the ideal expectation.
The UI of the CoNekT tool comes with the installation of the tool and as far as I know is currently beyond the scope of current development work at LIS. It will need some special and dedicated effort to achieve this in future.


CARDS-2287: Heracles: nightly export fails due to invalid date string

CARDS-2290: Heracles: s3 export does not include any forms modified after 23:30

@IntegralProgrammer Bugs fixed, please try again.

I'm OK with exporting all of yesterday's data.

I'm OK with exporting all of yesterday's data.

Okay, I like that as well as it is consistent with the scheduled-csv-export functionality. But to be completely consistent as well as to have the filenames make more sense, should we change https://github.com/data-team-uhn/cards/blob/517c67cc739c3234445c39e73a77ca85ca32b5f6/heracles-resources/backend/src/main/java/io/uhndata/cards/heracles/internal/export/ExportTask.java#L137 to yesterday's date as the data contained in the output JSON file is all data that was created/modified on the previous day and not within the first 30 minutes or so of the day that the export runs?

I'm OK with exporting all of yesterday's data.

Okay, I like that as well as it is consistent with the scheduled-csv-export functionality. But to be completely consistent as well as to have the filenames make more sense, should we change
https://github.com/data-team-uhn/cards/blob/517c67cc739c3234445c39e73a77ca85ca32b5f6/heracles-resources/backend/src/main/java/io/uhndata/cards/heracles/internal/export/ExportTask.java#L137
to yesterday's date as the data contained in the output JSON file is all data that was created/modified on the previous day and not within the first 30 minutes or so of the day that the export runs?

Yes.

With this change in place, we need to remember to update the NIGHTLY_EXPORT_SCHEDULE variable for Heracles to an earlier time.


Ornaments visual attribute classes should be members of att.altsym

Currently it's not possible to specify an alternative symbol for an ornament, even though the guidelines say (from the desc of @form on mordent): "Another attribute in the visual domain would be necessary in order to be completely explicit about which visual symbol is actually to be rendered."
The following attribute classes should be members of att.altsym:

att.mordent.vis
att.turn.vis
att.trill.vis

I would also suggest that this is a bug, not an enhancement: the element's description clearly states that there should be an attribute in the visual domain that is currently missing.


Need to a local dev environment

Hi,
I noticed that in order to be able to run the site locally one requires the access token from contentful.
As a suggestion, may be the dev environment can make use of dummy data rather than from contentful in order it easy for developers to get onboard for working in small issues.
Regards

Thanks 👍


Change zeit -> vercel due to name change

All of the packages are deprecated due to company name change

@hross do you want to resolve the conflicts and get the latest version here?

@hross do you want to resolve the conflicts and get the latest version here?

@hross ... I can also pick this up if you want

@hross ... I can also pick this up if you want

handling this in #238


Add border device in SDA Fabric

Prerequisites

[x] Have you tested the operation in the API directly?
[x] Do you have the latest Terraform provider version?

Describe the bug
(dnacenter_sda_fabric_border_device) Resource fails to Add border device in SDA Fabric
Expected behavior
API call should succeed and device should be configured as Border, Control Plane and Edge. If all three roles are included.
Screenshots
when '[' and ']' are used with "virtualNetwork":  the API fails:

terraform also includes '[' and ']' - so it fails.

However without '[' and ']'  it works:

Environment (please complete the following information):

DNAC = <IP_ADDRESS>
Terraform version: 1.2.1
Cisco DNA Center provider version: 1.0.2-beta
OS Version:

Additional context
It seems that's how this API is also documented on DNAC:

@artur-tekieli version 1.0.2-beta was published with a possible solution to your problem, please verify it's now working for you and let us know how it went.

@fmunozmiranda, I still see an error although its different:

The device is provisioned and assigned to site:

@artur-tekieli could you please try it again with version 1.0.4-beta?, I need your confirmation because on my part I need data to prove it, thank you.

@artur-tekieli could you export this env variable or include debug in provider configuration and show me all answer you have please?
Env Variable:
TF_LOG=DEBUG

Provider configuration:
provider "dnacenter" {
  debug = "true"
}

@artur-tekieli sorry for the delay, we had some problems when publishing, there is a new version in which your problem should be solved, check that the version you are using is 1.0.5-beta, also look at the example: https ://github.com/cisco-en-programmability/terraform-provider-dnacenter/blob/main/examples/resources/dnacenter_sda_fabric_border_device/resource.tf, if the change does not work for you it would be very important for us that you pass us your file test(tf file) along with the full response with DEBUG enabled.
Note:
Thanks for reporting, it helps us a lot.

@fmunozmiranda - I can confirm in my test that it works. Thanks.


Add Start9 (EmbassyOS) connector

They have both a LND and c-lightning option.

Would be great to always link mentioned services so people who don't know these can follow easier.
In this case I assume: https://github.com/Start9Labs/embassy-os

Yes sorry about that, I was busy when I wrote this so I just put a short description in.

No worries


Update imazing-mini to 2.3.2

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if updating a cask:

[ ] If the sha256 changed but the version didn’t,
provide public confirmation by the developer:

Codesigning verified locally as VirusTotal doesn't seem to work with this Cask

codesign -dvv iMazing\ Mini.app
Executable=/Volumes/iMazing Mini 2.3.2/iMazing Mini.app/Contents/MacOS/iMazing Mini
Identifier=com.DigiDNA.iMazing2Mac.Mini
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=12988 flags=0x0(none) hashes=398+5 location=embedded
Signature size=8911
Authority=Developer ID Application: DigiDNA SARL (J5PR93692Y)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=22 Jul 2017, 08:16:08
Info.plist entries=27
TeamIdentifier=J5PR93692Y
Sealed Resources version=2 rules=13 files=531
Internal requirements count=1 size=220

codesign -vv iMazing\ Mini.app
iMazing Mini.app: valid on disk
iMazing Mini.app: satisfies its Designated Requirement


[Feature Request] Organize Requests

I'm using Insomnia for a GraphQL server.
It would be super helpful if I could set it so that the name of the request on the left is the name of the query or mutation in the request. I can imagine a setting that enables this automatically, or an option on right click to do it quickly (or select all requests (not currently possible?) and right click to update all names.
Additionally, it would also be helpful if there was a way to sort the requests by name. And possibly organize them into folders?
Thank you!

Re-opening, still relevant


Use query parameters for report lost or stolen passport flow

This switches the flow to use query parameters as the response store instead of the URL path. This change is a part of a migration for all flows that previously used URL path to use query parameters. This also renames the nodes to be more human readable, as they will now show in the url.
⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠

Closing for now - as not a team priority for now. Should be revisit one day.


How to keep a mobile SPA user logged in for more than a day

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2.26.0
Wrapper Library
Not Applicable
Wrapper Library Version
None
Description
We have an existing B2B-type of mobile app built using Apache Cordova, basically a SPA running locally on the device. Some of our clients/users wants to log into our own service using their Azure accounts. The app doesn't need access to any special/other user resources in Azure AD / Graph.
After some trial and error we did managed to get login and logout working on both iOS and Android, using the redirect API (The discussion was here https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/4910).
The issue now is how to make sure users stay logged in without any interaction on their side, whether they open the app every day or not. The only cases where they would need to log in again is if the user is deleted, their password has been changed, or an admin has for ex. revoked their session(s).
The challenge is that I am not able to decode/understand related Azure online documentation and the 24h period doesn't make it easy to test what happens when due. Does one need to wait 24h before every attempt of cooking up a possible solution and testing?
Atm. the app is calling acquireTokenSilent for a logged in user that starts/comes back to the app. This works as expected on both OS's - it does refresh tokens. But if one hasn't opened the app for more than 24h this call fails at which point we are forced to take the user to the login page. Due to the problem with testability I don't yet have details on the error, but I suppose it's because of the expiration.
How are we supposed to approach or solve this?
MSAL Configuration
{
      auth: {
        protocolMode: 'OIDC',
        clientId: 'OUR CLIENT ID',
        authority: 'https://login.microsoftonline.com/OUR TENANT ID',
        redirectUri: 'http://localhost:8100',
        postLogoutRedirectUri: 'http://localhost:8100'
      },
      cache: {
        cacheLocation: 'localStorage'
      }
}

Relevant Code Snippets
let result;
try {
  result = await this._app.acquireTokenSilent({
    account: this._app.getAccountByHomeId(homeAccountId),
    forceRefresh: true,
    scopes: this._msal.OIDC_DEFAULT_SCOPES
  });
} catch(e) {
  if (e instanceof this._msal.BrowserAuthError) {
    if (e.errorCode === this._msal.BrowserAuthErrorMessage.noNetworkConnectivity.code) {
      return;
    }
  }

  console.log('AuthAzure.verify failed', e);
}

Identity Provider
Azure AD / MSA
Source
External (Customer)

@zarko-tg This is expected behavior. Refresh tokens used in single page apps and with the authorization code flow are limited to 24 hours. Once outside the 24 hour window, it is supposed to fail and require interactive login. Please see this document about refresh tokens lifetimes and this document about refresh tokens and the auth code flow.

@jo-arroyo Thanks @jo-arroyo, I am more or less aware of that limitation since I've been through documentation a number of times. But that likely means a bad user experience. How many (good) mobile apps are there which force the user to log in manually again after a day of inactivity?
The reason for filing this issue is to look for any possible configuration, workaround or a solution. Is there any at all?
I think this challenge isn't specific to Cordova type SPA mobile apps, but also React, Angular and similar.

@zarko-tg Unfortunately, MSAL.js has to abide by the refresh token lifetimes set by the service, and we're unable to provide a workaround at this time. While we recognize that this is not the best user experience, the 24 hour limit was chosen for security reasons for single-page apps. If you choose to write a mobile app that is not a single-page app, extended refresh token lifetimes may be available to you.

@jo-arroyo Ok, that confirms our concerns.
Changing a tech stack and large code base immediately is not realistic. We are going to try a solution that basically does not depend on any MSAL/Azure sessions (refreshing tokens and related complexity). It'll be a bit of an improvisation but at least we will not force users to log in frequently and repetitively.
Our own system / backend has its own user session management so we'll rely on it instead, while continuing to use only MSAL login and logout. A few user properties in Azure / Graph API will inform our system when to drop the user session in the app - the very existence of the user, "accountEnabled", "lastPasswordChangeDateTime" and/or "passwordProfile". This can be done by a dedicated authorized daemon / server application set up to read all users / properties.

@jo-arroyo @zarko-tg what about bullet point 5 in documentation below (Token Renewal)?
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/token-lifetimes.md
This sounds like there's still something being tried on MSAL side to fetch another access token, even if the refresh token is expired.

If the refresh token is expired, MSAL will attempt to retrieve an access tokens silently using a hidden iframe. This will use the sid or username in the account's claims object to retrieve a hint about the user's session. If this hidden iframe call fails, MSAL will pass on an error from the server as an InteractionRequiredAuthError, asking to retrieve an authorization code to retrieve a new set of tokens. You can do this by performing a login or acquireToken API call with the PublicClientApplication object. If the session is still active, the server will send a code without any user prompts. Otherwise, the user will be required to enter their credentials.

It seems to work for us. What would be the reason if this does not work?


New Members API

Build the API that gets us the new members on the members page
(So that we see new members, below the recognized members in the collapsed format)
This should appear in the page https://members.realdevsquad.com/
We may follow the same look and feel of recognized members, on list view. For detailed view may have all the sections with some kind of encouraging message like 'working hard to receive batches'.
Noteworthy contributions and All contribution section can be shown exactly like recognized members.
@ankushdharkar, @sumitd94, Please review requirement and assign issue.

Please review and approve new member API contract.


baseline 15.0.995.28 missing

LoadFromGitHub : C:\temp\hafnium\baseline_15.0.995.28.zip not found... please open issue on
https://github.com/microsoft/CSS-Exchange/issues, we will work on it

already reported: #269


Thanks a lot this article versy helpful for me

[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d30debb1-87f9-1210-a381-8da0aa9ebbd4
Version Independent ID: 1007144b-0e72-4f6b-a4f5-5a7ac41df817
Content: Enumerations (C++)
Content Source: docs/cpp/enumerations-cpp.md
Product: visual-cpp
Technology: cpp-language
GitHub Login: @mikeblome
Microsoft Alias: mblome

:)


Appstudio update test-component-pac-oots

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-oots-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
5 seconds
init

✅ Succeeded
17 seconds
clone-repository

✅ Succeeded
28 seconds
build-container

✅ Succeeded
20 seconds
deprecated-base-image-check

✅ Succeeded
19 seconds
inspect-image

✅ Succeeded
10 seconds
clair-scan

✅ Succeeded
32 seconds
clamav-scan

✅ Succeeded
10 seconds
sbom-json-check

✅ Succeeded
17 seconds
label-check

✅ Succeeded
6 seconds
show-sbom

✅ Succeeded
8 seconds
show-summary


turbo_stream fix bugs for rails 7 and above apps

I tried to fix this two issues: https://github.com/heartcombo/devise/issues/5448, https://github.com/heartcombo/devise/issues/5446.

@carlosantoniodasilva Would be great to get this or something similar merged

PR #5340 looks like it aims for a deeper integration into devise than what is proposed in this pull request.
Besides this, using turbo is also valid in a rails 6.1 context. So just checking for "> Rails 7" would exclude some valid use cases

@tmaier Would something along the lines of a class_option boolean on the generator allow for less surprising behavior than checking for a Rails version?
  class_option :turbo, type: :boolean, default: false

That way somebody who wants Turbo could run rails generate devise:install --turbo to get Turbo behavior generated irrespective of Rails version.
You could make the default true for 5.x, but keep behavior as-is unless somebody specifically requests generation with Turbo in 4.x.

I am not sure what's the right approach in the context of devise.
I think I would have checked, if Turbo is defined with defined?(::Turbo)
Ref. https://github.com/hotwired/turbo-rails/blob/main/lib/turbo-rails.rb

PR #5340 looks like it aims for a deeper integration into devise than what is proposed in this pull request.
Besides this, using turbo is also valid in a rails 6.1 context. So just checking for "> Rails 7" would exclude some valid use cases

Perhaps Devise should just be versioned with incremental support for Rails 6 dropped, in favor of a cleaner implementation for Rails 7+?

Forgive me for chiming in on this, but I am getting confused by the different issues.
Is there a canonical (at at least blessed) way to get Devise and Rails 7 playing nicely together?

The main branch should contain all that's necessary for fully working with Turbo now, based on the changes here and a few others. A new version will be released soon, but feel free to test it out from the main branch in the meantime, and report back on any issues. Thanks.


Phase-change material

I wasn't making progress on the first PCM benchmark in Danaila's paper, so I'm first solving a more simple problem analogous to the Stefan problem. See Issue #23.

I'm finally making some progress on the melt_pcm branch.
Here's our first reasonable result:

This is at time t = 0.027 for theta_hot = 1., theta_cold = -0.1 (this was a mistake; I meant to do theta_cold = -0.01), Ste = 1, Ra = 1, Pr = 1, mu_sl = 1.e4, R_s = 0.05, dt = 1.e-3, with a Newton relaxation parameter of 0.5.
The green lines mark the phase-change interface, where the middle line is for the central temperature (theta_s). The streamlines are for the velocity field.
Until today I haven't used a relaxation parameter for the Newton method. danaila2014newton makes no mention of such a parameter, but it makes sense that we should consider using one for such a nonlinear problem.

We have a working PCM melting test as of commit b7c4ddd09ac25e6fe937503c8a0b005071622ae0 !
The numbers are a lot easier than the benchmark from danaila2014newton, and I haven't done anything to verify the accuracy of the results. It just looks qualitatively reasonable. Here's another snapshot at t = 0.026 for the same settings as the previous comment:

This issue is resolved. I'll make another issue for specifically reproducing the benchmark from danaila2014newton.


UX improvement on docs page

Description
When we vist the docs page: https://linkfree.io/docs

There are cards on the page to navigate between docs:

When we hover the card it show the border:

But is clickable only on in the red border: (I have added the border to explain)

It would be good that when we click in the green border also.
It show border all over that it should be clikable
Screenshots
No response
Additional information
No response

I want to contribute . I can do above task

@eddiejaoude your thoughts on this issue?

@Lalman888 please do not tag maintainers, we all get the notifications, plus please do not ask for issues that are still awaiting triage, we have contributing guide with more information https://github.com/EddieHubCommunity/LinkFree/blob/main/CONTRIBUTING.md
@iamvbenz49 yes we can make this clearer by having the whole hover area clickable or removing the hover effect and having only the title clickable

I would like to work on this task, can you please assign it to me?

I would love to work on it

I would like to work on this task, can you please assign it to me?

@thehashmap as you were the first to request this once the label changed to status: ready for dev I will assign this to you


Docs/ion local install

Starting a new draft pull request because scrolling up and down the page makes it hard to read back through my random ramblings. In the previous pull request draft we were able to get from a fresh Ubuntu 20,04.3 install to the point of being able to send a create operation request to the ion API.
The issue we were running into is Ion was not recognizing our wallet as it was looking for a specific sidetreeDefaultWallet that did not appear in the docs or configuration files. I updated the documentation in this repository, and started from a fresh install to try and minimize an errors or happy accidents that might have come from the previous trial-and-error session. We want to know exactly which commands have what effect, and specifically what is required to get Ion running from a blank slate.

To give a summary of my current testing, I have ipfs and bitcoind running in the background in a screen instance. In general I don't need to look at them, so it's not at the point where I can throw it to systemd and not need to worry about it, but it's still nice to have the option to bring up the terminal if needed. I am running the ion-bitcoin and ion-core processes directly in the terminal.
And I started a process in the background to generate a new block every 60 seconds. To mimic a normal chain with blocks being generated on an incremental state. Changing the wallet name from ion-dev to sidetreeDefaultWallet allowed us to get by the error we previously had where Ion was unable to find the wallet it never told us it was looking for and crashed.
Now we have the error of the network not being able to get a transfer fee and crashing.
{ errors: [ 'Insufficient data or no feerate found' ], blocks: 0 }

We can get by this error by sending a bunch of transactions and generating blocks.
ubuntu@ubuntu:~/ion$ bitcoin-core.cli sendtoaddress bcrt1qjglqvdy353kwrrgx8kljva26v60ltuwwtgw4eh 1
f97b4d8e41899eeb8e88c4e3ada76f48311ac3418ea5b38395045da5c95ede7b
ubuntu@ubuntu:~/ion$ bitcoin-core.cli sendtoaddress bcrt1qjglqvdy353kwrrgx8kljva26v60ltuwwtgw4eh 1
88b80b5cd473270903165357e9ce4e82c39f7c5c0a31bb557b99c76b712425b9
ubuntu@ubuntu:~/ion$ bitcoin-core.cli sendtoaddress bcrt1qjglqvdy353kwrrgx8kljva26v60ltuwwtgw4eh 1
beb0680c0fe4b6c21df249f8354846f9fb9f9894b3542529f2eed6421c5fafca
ubuntu@ubuntu:~/ion$ bitcoin-core.cli sendtoaddress bcrt1qjglqvdy353kwrrgx8kljva26v60ltuwwtgw4eh 1
afe6ffae7412414307a9e9b635ae86a68a35e484765bd1168a4772c355326bc0
ubuntu@ubuntu:~/ion$ bitcoin-core.cli sendtoaddress bcrt1qjglqvdy353kwrrgx8kljva26v60ltuwwtgw4eh 1
0c5f39050b385f1f5cf3e39cc0da55a9380a556e248c74d82a018a37214e5af6
ubuntu@ubuntu:~/ion$ bitcoin-core.cli sendtoaddress bcrt1qjglqvdy353kwrrgx8kljva26v60ltuwwtgw4eh 1
2bb9e124bdda7b3e570a1ce43832f296f5ecfb4b229eb80e72d05198025e110b

We can debug this error with:
ubuntu@ubuntu:~/ion$ bitcoin-core.cli estimatesmartfee 1
{
  "feerate": 0.00100000,
  "blocks": 2
}

So in our installation instructions we will need to include this. We don't have to wait for a sync, but we do need to create a bunch of random transactions and generate blocks until this call does not return an error.

And after generating enough transactions for the network to return a transfer fee, we immediately run into our next error (yay?).
Getting unspent coins for mzQCLt9Eafas64E718myJ88KA1K8oRM6u2
Sending jRPC request: id: 3ufh036ubhs, method: listunspent
Request timeout (0)
Retrying request (1)
Returning 0 coins
Sending jRPC request: id: cqvcdjgbvi, method: estimatesmartfee
{ feerate: 0.001, blocks: 2 }
Fee: 7070. Anchoring string 1.QmaPBLo1mK289LRaGTfht4AUc2xF8ersqio3yxZbxEa3CA
Getting unspent coins for mzQCLt9Eafas64E718myJ88KA1K8oRM6u2
Sending jRPC request: id: 1lnmp8sb16c, method: listunspent
Request timeout (0)
Retrying request (1)
Returning 0 coins
Error: Not enough satoshis to broadcast. Failed to broadcast anchor string 1.QmaPBLo1mK289LRaGTfht4AUc2xF8ersqio3yxZbxEa3CA
    at BitcoinProcessor.<anonymous> (/home/ubuntu/ion/node_modules/@decentralized-identity/sidetree/dist/lib/bitcoin/BitcoinProcessor.js:405:31)
    at Generator.next (<anonymous>)
    at fulfilled (/home/ubuntu/ion/node_modules/@decentralized-identity/sidetree/dist/lib/bitcoin/BitcoinProcessor.js:5:58)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

Looks like we have zero coins in our wallet. I had included this in the documentation, but skipped over it because I wanted to confirm if it was really necessary to fund the specific address that we provide to the ion-bitcoin process. That might sound stupid, "of course you need to fund the address".
The confusing part about it, is that I'm already using the 'generatetoaddresscall in the bitcoin-cli. Which should be depositing coins into that address? And when I call thegetbalance` command, it shows that my wallet has coins in it? So I'm not really understanding the relationship of my wallet to the address? Shouldn't the coins be in a specific address in my wallet? Otherwise where are they? I'll try sending coins to my self and see if that works.

It looks like the write side finally worked. Not sure why we only have 3 unspent coins? I sent like 3,000 fake-bitcoins to that address. And not sure why the fee is 77770. Maybe that's supposed to be satoshi? But either way the transaction hash was written successfully!
Getting unspent coins for mzQCLt9Eafas64E718myJ88KA1K8oRM6u2
Sending jRPC request: id: 4uu9on44ksj, method: listunspent
Request timeout (0)
Retrying request (1)
Returning 3 coins
Sending jRPC request: id: 3ur7s9f5aqq, method: estimatesmartfee
{ feerate: 0.001, blocks: 2 }
Fee: 77770. Anchoring string 1.QmaPBLo1mK289LRaGTfht4AUc2xF8ersqio3yxZbxEa3CA
Getting unspent coins for mzQCLt9Eafas64E718myJ88KA1K8oRM6u2
Sending jRPC request: id: 7r0df3ckafl, method: listunspent
Request timeout (0)
Retrying request (1)
Returning 3 coins
Sending jRPC request: id: 29eocpimfrq, method: sendrawtransaction
Successfully submitted transaction [hash: c44b19f9a704f3bd82a282ad4ab8ebcfa529d424c72f00a04981be69479067f1]

And on the read-side it looks like we are able to parse the anchor file, and read the CID's from IPFS.
Waiting for 600 seconds before writing another batch.
Read and pinned 239 bytes for CID: QmaPBLo1mK289LRaGTfht4AUc2xF8ersqio3yxZbxEa3CA.
Event emitted: sidetree_download_manager_download: {"code":"success"}
File 'QmaPBLo1mK289LRaGTfht4AUc2xF8ersqio3yxZbxEa3CA' of size 239 downloaded.
Downloading provisional index file 'QmeH1Z36nSeGcBxfPJZ45Gi1SC7SmtP3i1zGYNhygtvtYP', max file size limit 1000000...
Downloading file 'QmeH1Z36nSeGcBxfPJZ45Gi1SC7SmtP3i1zGYNhygtvtYP', max size limit 1000000...
Read and pinned 93 bytes for CID: QmeH1Z36nSeGcBxfPJZ45Gi1SC7SmtP3i1zGYNhygtvtYP.
Event emitted: sidetree_download_manager_download: {"code":"success"}
File 'QmeH1Z36nSeGcBxfPJZ45Gi1SC7SmtP3i1zGYNhygtvtYP' of size 93 downloaded.
Downloading chunk file 'QmUyc7Fm1V9xgw948VrgX4EBAjHPpUkr8aVEKTdVfhBnVf', max size limit 10000000...
Downloading file 'QmUyc7Fm1V9xgw948VrgX4EBAjHPpUkr8aVEKTdVfhBnVf', max size limit 10000000...
Read and pinned 292 bytes for CID: QmUyc7Fm1V9xgw948VrgX4EBAjHPpUkr8aVEKTdVfhBnVf.
Event emitted: sidetree_download_manager_download: {"code":"success"}
File 'QmUyc7Fm1V9xgw948VrgX4EBAjHPpUkr8aVEKTdVfhBnVf' of size 292 downloaded.

And we've finally completed a write/read. Calling curl to resolve.
$ curl http://localhost:3000/identifiers/did:ion:EiB0M9MIZDhbztaFlAIs1zgBDf_d4dg75Nx4wENyXOMdJw
Will return our original document.
{"@context":"https://w3id.org/did-resolution/v1","didDocument":{"id":"did:ion:EiB0M9MIZDhbztaFlAIs1zgBDf_d4dg75Nx4wENyXOMdJw","@context":["https://www.w3.org/ns/did/v1",{"@base":"did:ion:EiB0M9MIZDhbztaFlAIs1zgBDf_d4dg75Nx4wENyXOMdJw"}],"verificationMethod":[{"id":"#signing-key","controller":"","type":"EcdsaSecp256k1VerificationKey2019","publicKeyJwk":{"kty":"EC","crv":"secp256k1","x":"HA4-IytnkIGcq8qMByw8YBkvqMpwbGgtKxflKJ1kb30","y":"zew7oNg7W8YNAOmYM2_PEgMhT1FOwyYzt-s9i0qAhE4"}}]},"didDocumentMetadata":{"method":{"published":true,"recoveryCommitment":"EiDzX8qiCjqIWA_08wsSJ75S7yAnyMdU2tY_-AdF5HvVHA","updateCommitment":"EiCG2RsECI_mRuaJC-cm3h6RjxsxwEA2nreT9-j3WzEEfA"},"canonicalId":"did:ion:EiB0M9MIZDhbztaFlAIs1zgBDf_d4dg75Nx4wENyXOMdJw"}}

The next step is continue confirming the other CRUD operations. But the lazy side of me is wondering about something else right now. What is the easiest way to start from nothing and get to this point?
 But i'm wondering if that would be enough? In this case we also need to generate a bunch of random transfers. And then we also need to figure out which address ion is using for transactions. So it seems like it would be easier to write a nodejs file to handle some of the complexity.
But there is another option. And that is we figure out a way to use seeds so that we can force the wallet seed, and the private key, and then know what the address ion is using ahead of time, so we can use one-fixed value script to be able to write exactly what needs to go where to get to the point of being able to start making CRUD requests.
Naturally this approach would only be used for regtest. For testnet we could expand on this scrip and allow for randomness as we have the framework in place, we can then adapt it to assign variables to the randomly generated defaults and figure out what needs to go where for that set of circumstances, after confirming the fixed value example set used for regtest.

In terms of automating the setup process, I think the only step I need to make is to use the same private key in the ion config file. Assuming that creates a predictive address I can go ahead and define where coins need to get set up in the documentation. I think I'll flash and setup another Raspberry Pi with Ubuntu to verify if that is the case.
As for testing with the CRUD methods, I think that the easiest approach is going to be to write a script that will automatically create a Create, Update, Recover, and Deactivate action, since I think it would be cumbersome to try and do it by hand, and I would need a way to calculate the delta-hashes anyway.
Effectively we're making a test program, but right now I'm mostly focused on figuring out how to interact with the service to begin with. Once I have a better idea of what responses I expect back from the service, I can convert it into a more standard jest test with it.should assertions.


Destroy token

I need to destroy or set expiry to now to token when it's be used, so I invalidate it manually.
How can I make it?

This library support expiration:
https://github.com/auth0/node-jsonwebtoken#jwtsignpayload-secretorprivatekey-options
You can also blacklist tokens:
https://auth0.com/blog/2015/03/10/blacklist-json-web-token-api-keys/

Hey @jfromaniello I am using jsonwebtokens in my node project. So what I want is when the user logs-out of the system I need the token to be invalidated. I don't want to use exp because that would forcefully expire my session. Is there any way?

Hi @jfromaniello
I am using jsonwebtoken for my node project, and I have one problem for using it.
So, when user log out and his token should be destroyed.
How can I solve this problem?
I am waiting for your reply.
Cheers

@blueror815
first you can set expiry time in jsonwebtoken.
second thing to remove cache data of browser.


Test framework improvements or total redesign.

The tests should

always show the notebook Python output / error on failure
javascript console output / error on failure
test error on failure
should use promises if written in Javascript
should be clearer about the three contexts (kernel, browser, and tests)
if written in javascript, ES6 template strings or something better should be used for embedding python
should have an easy way to expose/export the test notebook, so the dev can interact with the tests to see why they are failing
should have nice mechanisms for debugging

All of those sounds like good things.


Cmake sync and fix dts

@nashif : Hi I took cmake_migration, rebased it onto master (yesterday, so 1efce2b) and fixed the dts issue.
Force-pushing this to cmake_migration will give us something that we can continue to work with (fix/port other upstream changes and then put up for review).

Oops, wrong branch.


migration problem in postgresql

Hi,
i'm using latest changes on git repo and Django 1.8. while i'm trying to use postgresql after typing:
python manage.py createdb --noinput
i revived this error:
Traceback (most recent call last):
File "./manage.py", line 34, in
execute_from_command_line(sys.argv)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/init.py", line 338, in execute_from_command_line
utility.execute()
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/init.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/base.py", line 390, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/base.py", line 441, in execute
output = self.handle(*args, **options)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Mezzanine-3.1.10-py2.7.egg/mezzanine/core/management/commands/createdb.py", line 60, in handle
interactive=self.interactive)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/init.py", line 120, in call_command
return command.execute(*args, **defaults)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/base.py", line 441, in execute
output = self.handle(*args, **options)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/commands/migrate.py", line 179, in handle
created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/commands/migrate.py", line 317, in sync_apps
cursor.execute(statement)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/utils.py", line 97, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/geeknux/Projects/pgenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/backends/utils.py", line 62, in execute
return self.cursor.execute(sql)
django.db.utils.ProgrammingError: relation "django_site" does not exist
i also tried migration for a default django project and it worked without any problem.
something doesn't let mezzanine to create tables in postgres

Most likely a duplicate of https://github.com/django/django-contrib-comments/issues/30
If I install the git version of that repo, I can create a new DB using the mentioned command with Postgres fine.


Cleanup for pubnames/pubtypes/aranges

Coverage increased (+0.07%) to 93.463% when pulling 61b6ca25e6deabe4fb3309d8fc18b831aa0817ed on philipc:pubstuff into 4427fb11200fbaedfd4e946194992c4eaf27ea48 on gimli-rs:master.


Major Update

Work in Progress for a Major update:
Using asynchronous code.
No PRs to be accepted till this issue is closed.

Release published https://github.com/aahnik/run-py-bot/releases/tag/v0.1.0


Update content.html

Add home link to the top of the page. Helps when you have a big main
body.

Thanks @willianpaixao. However, I don't believe this should be part of the default appearance of this theme.

Sure. :)