Comments (or timestamp progress mechanism)

Not sure what this would look like given each task is just a markdown file, but progressive updates on a task is handy when you can do something like:
[+] add comment
Then write the comment and have an automatic timestamp. I believe a number of Markdown implementations utilize a Header or Front Matter block, like Yaml that could be used for tracking right within the document:
---
title: Metadata stuff
author: me
things:
- hi
- mom
comments:
- timestamp: 2021-07-03 16:21:12.357246
   text: This is a comment
- timestamp:  2021-07-05 14:05:12.357432
   text: Yet another
---

# This Task

is a task I shall do
1. first
2. and then second
3. and of course third

Keeping a good minimalist approach, I would't expect threading or anything like that as Tasks.md seems well-suited for a self-managed task system running locally.  Having your own progress log on a task (auto-tracking timestamps, something like moment.js' moment().format('MMMM Do YYYY, h:mm:ss a'); // December 6th 2024, 4:49:52 pm) would be a really helpful feature.

Yeah, I also use Planka primary for this reason. I hope I can see this in Taks.md

Planka looks nice if you want a similar UX and are good with data in a PostgresDB instead of .md files.


Request: prepend links

Thanks for making this library public, it's very useful. I have a feature request: it would be nice to be able to prepend some text to a link. For instance: I'm using two different link colors for internal and external links, but I'd like to add a character to indicate it's an external link. Perhaps something like:
link.setPrependedText('text here')

Done. Thanks for the suggestion. Sorry it took awhile, been busy lately!
https://github.com/klinker24/Android-TextView-LinkBuilder/commit/05e066c972e0df0e43f6a6ce87ed591fc6d67d73


COPY FROM STDIN

Problem Statement
The ability to import and export tables through the https://github.com/crate/crash client remotely. Having to copy a file to the server directly (or an S3 repository) is rather annoying.
I wish I could easily load files from my desktop system into crate without provide system access to the Crate nodes or be reliant upon AWS S3.
Possible Solutions
Add support for STDIN to COPY FROM. Similar to https://www.postgresql.org/docs/current/sql-copy.html:
Relevant parts:

STDIN
Specifies that input comes from the client application.

Do not confuse COPY with the psql instruction \copy. \copy invokes COPY FROM STDIN or COPY TO STDOUT, and then fetches/stores the data in a file accessible to the psql client. Thus, file accessibility and access rights depend on the client rather than the server when \copy is used.

This would require implementing the COPY operation in the PostgreSQL wire protocol:

https://www.postgresql.org/docs/current/protocol-flow.html#PROTOCOL-COPY

Open Question

How would one use this via HTTP?

Considered Alternatives

Using tools like https://github.com/mfussenegger/cr8#insert-json

Follow up

STDOUT support for COPY TO

Until this gets added: As workaround you could use the insert-json command of cr8: https://github.com/mfussenegger/cr8#insert-json

Thanks @mfussenegger had no idea that existed!

Idea on how to solve this for HTTP (brought up by @mfussenegger):

We either add a "stdin" param that is a list of lines, or use args where each arg must be a line

Being able to use psql to COPY TO STDIN would also be really helpful. Sometimes we want to export data from Crate to use in another tool that only supports CSV.

Being able to use psql to COPY TO STDIN would also be really helpful. Sometimes we want to export data from Crate to use in another tool that only supports CSV.

Hi, please take a look at https://github.com/crate/crate/issues/8551 for a workaround.
Another option to get a csv in stdout is to use crash like this:
crash --command "select * from testcsv;" --format csv 2> /dev/null  1> /dev/stdout

@seut any chance this could get back on the priority list? I noticed it was removed from the projects page

Another point to support this issue is that this would enable us performant integrations with other tools, for example polars, right now with some minor tweaking we can read/write dataframes (and subsequently write/read parquet files, among other filetypes)
    polars.read_database(
        query='SELECT * FROM metrics',
        connection=create_engine("crate://<IP_ADDRESS>:4200").connect(),
        schema_overrides={'value': polars.Utf8},
    )

This however is rather slow, ~600K rows with this schema https://pastebin.com/wGba67FS, reads at about ~12s, a postgres db with the exact same table and data reads in about ~1.2s
Reading dataframe from polars using: PostgreSQL polars::read_database_uri
1.3178801559988642s

Reading dataframe from polars using: Crate - polars::read_database sqlalchemy (sqlalchemy)
13.29640181799914s

Reading dataframe from polars using: Crate - sqlalchemy::execute(text(query))
12.082453203001933s

The bottleneck is sqlalchemy in this situation and more narrowly the HTTP api.
Postgres is able to read that fast because it uses connector-x instead. It uses the binary COPY protocol https://sfu-db.github.io/connector-x/databases/postgres.html
So this issue would enable actual performant integrations with tooling in Python, and most likely in other languages such as Rust and Go

The bottleneck is sqlalchemy in this situation and more narrowly the HTTP api.
Postgres is able to read that fast because it uses connector-x instead. It uses the binary COPY protocol

I'm not sure if the protocol is the bottleneck here, and if it is, I don't think that using the COPY OUT mode will have a significant advantage to just switching from HTTP to the PostgreSQL protocol.
From https://www.postgresql.org/docs/current/protocol-flow.html#PROTOCOL-COPY:
Copy-out mode (data transfer from the server) is initiated when the backend executes a COPY TO STDOUT SQL statement. The backend sends a CopyOutResponse message to the frontend, followed by zero or more CopyData messages (always one per row), followed by CopyDone.
1 CopyData message per row.
CopyData (F & B) #
Byte1('d')
Identifies the message as COPY data.

Int32
Length of message contents in bytes, including self.

Byten
Data that forms part of a COPY data stream. Messages sent from the backend will always correspond to single data rows, but messages sent by frontends might divide the data stream arbitrarily.

Compared to 1 DataRow message per row for regular responses:
DataRow (B) #
Byte1('D')
Identifies the message as a data row.

Int32
Length of message contents in bytes, including self.

Int16
The number of column values that follow (possibly zero).

Next, the following pair of fields appear for each column:

Int32
The length of the column value, in bytes (this count does not include itself). Can be zero. As a special case, -1 indicates a NULL column value. No value bytes follow in the NULL case.

Byten
The value of the column, in the format indicated by the associated format code. n is the above length.

That's 6 byte overhead, for 600k rows that ends up being a 3.6 MB difference. Not nothing, but I doubt it's the main problem.
Before jumping to conclusions on how to solve the problem, we should have a closer look at where the problem is.

Just a quick note on request from @amotl to document that this feature would help enable the pgbulkloader transform (source code available here) in Apache Hop, in the meanwhile Apache Hop users can use a “Table output” action with CrateDB instead.


How to link to a .so dynamic library in C++?

Hi, first, thank you for your work.
I'm trying to use some third-party shipped C++ library in my Rust code. I set up the infrastructure with cxx, but during linking it complains it can't find the C++ functions/methods. Cargo can read the .h files and correctly searches for them, but can't find them in the .so library even if I specify it in the build file with cargo:rustc-link-lib and cargo:rustc-link-search. After a bit of thinkering, I think the problem resides in the C++ name mangling. In the .so files the names are mangled, and I suppose that's the reason cxx can't find them. Is there any option I can specify to make it search them? Thanks!

To help seeing the problem, here's a MWE:

Test.hpp:

#pragma once
#include <memory>

class Test {
public:
  Test();
  int a;
  int32_t get() const { return a; }
};

std::unique_ptr<Test> new_Test();

Test.cpp:

#include "Test.hpp"

Test::Test() : a(1) {}

std::unique_ptr<Test> new_Test() { return std::unique_ptr<Test>(new Test()); }

build.rs:

fn main() {

    println!("cargo:rustc-link-search={}", "/home/abertulli/cxx-demo/");
    println!("cargo:rustc-link-lib={}", "static=test");

    cxx_build::bridge("src/main.rs")
        .compile("cxx-demo");

    println!("cargo:rerun-if-changed=src/main.rs");
    println!("cargo:rerun-if-changed=Test.hpp");
    println!("cargo:rerun-if-changed=Test.cpp");
}

src/main.rs:

#[cxx::bridge]
mod ffi {
    unsafe extern "C++" {
        include!("cxx-demo/Test.hpp");
	type Test;

	pub fn new_Test() -> UniquePtr<Test>;
    }
}

fn main() {
    let test = ffi::new_Test();
}

Cargo.toml:

[package]
name = "cxx-demo"
version = "0.1.0"
edition = "2021"

[dependencies]
cxx = "1.0"

[build-dependencies]
cxx-build = "1.0"

recipe to reproduce:

$ g++ -o test.o -c Test.cpp
$ ar -rcs libtest.a test.o
$ cargo build
# [...] error
  = note: /usr/bin/ld: /home/abertulli/cxx-demo/target/debug/build/cxx-demo-41f75137ea386102/out/libcxx-demo.a(dc12132e57001711-main.rs.o): in function `cxxbridge1$new_Test':
          /home/abertulli/cxx-demo/target/debug/build/cxx-demo-41f75137ea386102/out/cxxbridge/sources/cxx-demo/src/main.rs.cc:40: undefined reference to `new_Test()'
          collect2: error: ld returned 1 exit status

  = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#rustc-link-lib)

warning: `cxx-demo` (bin "cxx-demo") generated 1 warning
error: could not compile `cxx-demo` (bin "cxx-demo") due to 1 previous error; 1 warning emitted

It should work if you use lld or mold, instead of GNU ld.
It is possible that you can get something working with GNU ld but it will require more control over the link line than what Cargo exposes, so you would need to use a different build system such as Buck2.

Hi @bertulli,
I tested (on archlinux) your sample and get same error. But, need minor fixes:

tree-ls
kassane:~/cxx-rs_interop $ tree .
.
├── Cargo.toml
├── build.rs
├── cxx-demo
│   ├── test.cpp
│   └── test.hpp
└── src
    └── main.rs

3 directories, 5 files

buid.rs
fn main() {
    let mut build = cxx_build::bridge("src/main.rs");
    build
        .file("cxx-demo/test.cpp")
        .flag_if_supported("-std=c++14")
        .compile("test");

    println!("cargo:rerun-if-changed=src/main.rs");
    println!("cargo:rerun-if-changed=cxx-demo/test.hpp");
    println!("cargo:rerun-if-changed=cxx-demo/test.cpp");
}

build output
kassane:~/cxx-rs_interop $ cargo build --release
    Updating crates.io index
     Locking 28 packages to latest compatible versions
      Adding unicode-width v0.1.14 (latest: v0.2.0)
   Compiling shlex v1.3.0
   Compiling proc-macro2 v1.0.89
   Compiling unicode-ident v1.0.13
   Compiling scratch v1.0.7
   Compiling unicode-width v0.1.14
   Compiling cxxbridge-flags v1.0.129
   Compiling termcolor v1.4.1
   Compiling once_cell v1.20.2
   Compiling cc v1.1.31
   Compiling codespan-reporting v0.11.1
   Compiling quote v1.0.37
   Compiling syn v2.0.85
   Compiling link-cplusplus v1.0.9
   Compiling cxx v1.0.129
   Compiling cxx-build v1.0.129
   Compiling cxxbridge-macro v1.0.129
   Compiling cxx-demo v0.1.0 (/home/kassane/cxx-rs_interop)
warning: unused variable: `test`
  --> src/main.rs:12:9
   |
12 |     let test = ffi::new_Test();
   |         ^^^^ help: if this is intentional, prefix it with an underscore: `_test`
   |
   = note: `#[warn(unused_variables)]` on by default

warning: `cxx-demo` (bin "cxx-demo") generated 1 warning
    Finished `release` profile [optimized] target(s) in 7.94s

Thanks, putting in my cxx-demo/.cargo/config.toml
[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "link-arg=-fuse-ld=lld"]

successfully built the project and linked correctly the library. 🙏 👍


add resolve-lock test

What problem does this PR solve?
add resolve-lock test for green gc

Should we merge it to master?

Waiting for https://internal.pingcap.net/jira/browse/ONCALL-1291 merged and it needs a special docker image.

@mahjonp @MyonKeminta PTAL


[!] Error: 'default' is not exported by src/alert.scss

Sample repository
import styles from './styles.scss';

Causes the error:
[!] Error: 'default' is not exported by src/styles.scss

Please check out the usage section in the readme.

Changing the command to
import './styles.scss`
...
<div className='alert' />

Seems to have a  different result, in that the class is not loaded. Any ideas?

You might be looking for css modules, modular css or styled components. This package simply combines the imported & compiled scss files into bundle.css

Hello @thgh
I am looking for this as well.
According to https://css-tricks.com/getting-javascript-to-talk-to-css-and-sass/ you can make scss and js talk this way.
I understand it was a choice not to make it work at first but could it be added?
Thank you for the great lib


Enable strict concurrency

Enable strict concurrency
:recycle: Current situation & Problem
This PR enables strict concurrency for the project and fixes resulting concurrency warnings.
:gear: Release Notes

Comply with strict concurrency

:books: Documentation
--
:white_check_mark: Testing
--
Code of Conduct & Contributing Guidelines
By submitting creating this pull request, you agree to follow our Code of Conduct and Contributing Guidelines:

[x] I agree to follow the Code of Conduct and Contributing Guidelines.

Xcode 15 triggers concurrency warnings that are no longer triggered in Xcode 16 beta 3.


Web deploy prerequisites

Closes #1833
Description:

reduce bundle size by optimizing few imports
reduce lodash/fp dependency (a single usage for a whole library)
change build command as yarn pack is reserved and does not call webpack

demo
Deployment of nodes followup (I won't do all this in the first PR, but we know it's possible and we can specify those details to the SRE team next call)
My plan is to have two node types:

gaia in a Docker exposing RPC port

gaiacli in another Docker, exposing the rest server, but pointing to the first machine of type gaia

Eventually an nginx or APIGateway, the chapest solution will win :tada:

Is possible, BUT the genesis file should be on both node types

In this way we will be able to spin up gaia nodes as hell and just one gaiacli node pointing to (let's say) the first gaia node, so the gaiacli node can scaleup indipendently if he receives burst of requests, but the real nodes are always the same
gaiacli [command] --node=IP:PORT

❤ Thank you!

[ ] Added entries in CHANGELOG.md with issue # and GitHub username
[ ] Reviewed Files changed in the github PR explorer

Code coverage is missing

But we need them to have proper stack traces with Sentry, don't we?
Karoly Albert Szabo<EMAIL_ADDRESS>schrieb am Fr., 1. Feb.
2019, 16:27:

@sabau commented on this pull request.
In webpack.renderer.config.js
https://github.com/cosmos/voyager/pull/1851#discussion_r253088872:

const rendererConfig = {

devtool:
process.env.NODE_ENV === production

 ? `#source-map`

 : `#inline-source-map`,

devtool: process.env.NODE_ENV === production ? false : #inline-source-map,

to work locally they help, but on production I disabled them
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/cosmos/voyager/pull/1851#discussion_r253088872, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AFmO2QbrCtaL95AvCKqxamvnbylKJdWQks5vJFzegaJpZM4aGX2J
.

The coverage is a bit funny, I think it says that is not covered anymore since when I removed he side effect (main() was called for real once the file was imported and it was touching this function but was not tested for real)

Re coverage: I think the router setup could be escaped via /* istanbul ignore next */ and the on route changed handler should be tested.


Cabal has some questionable defaults. Should minghc install alternate config?

In particular, I'm thinking about the default to only vanilla libraries. That's a lot of painful reinstalling if you don't know, or forget, to change it immediately. http://www.vex.net/~trebla/haskell/cabal-cabal.xhtml makes good suggestions in general.
I'm not 100% sure this is in scope for minghc, since it doesn't seem to otherwise make any modifications to individual packages; but it does fit the guiding theme IMO.

Closing this issue as "unfortunately wontfix"


Wintersmith Preview Not Working

http://localhost:8080/ isn't working in my browsers. I've double-checked that is correctly set up in the config file. Am I missing something (OS X)?

What's the output of wintersmith preview -v?
P.S, give this a read http://www.chiark.greenend.org.uk/~sgtatham/bugs.html :)

I'm getting the same error,
starting preview server
  verbose creating environment - work directory: /Users/utente/Sites/wintersmith_site01
  using config file: /Users/utente/Sites/wintersmith_site01/config.json
  verbose config: {"locals":{"url":"http://localhost:8890","name":"The Wintersmith's blog","owner":"Someone","description":"Ramblings of an immor(t)al demigod"},"plugins":["./plugins/paginator.coffee"],"require":{"moment":"moment","_":"underscore","typogr":"typogr"},"jade":{"pretty":true},"markdown":{"smartLists":true,"smartypants":true},"paginator":{"perPage":3},"contents":"./contents","ignore":[],"templates":"./templates","views":null,"output":"./build","baseUrl":"/","hostname":null,"port":8080,"_fileLimit":40,"_restartOnConfChange":true,"__filename":"/Users/utente/Sites/wintersmith_site01/config.json","_cliopts":{"verbose":true,"v":true,"quiet":false,"q":false,"version":false,"V":false,"help":false,"h":false,"c":"./config.json","C":null},"verbose":true,"v":true,"quiet":false,"q":false,"version":false,"V":false,"help":false,"h":false,"c":"./config.json","C":null}
  verbose loading module 'moment' available in locals as 'moment'
  verbose loading module 'underscore' available in locals as '_'
  verbose loading module 'typogr' available in locals as 'typogr'
  verbose watching config file /Users/utente/Sites/wintersmith_site01/config.json for changes
  verbose starting preview server
  verbose loading default plugin: page
  verbose loading default plugin: jade
  verbose registering template plugin JadeTemplate that handles: **/*.jade
  verbose loading default plugin: markdown
  verbose registering content plugin MarkdownPage that handles: **/*.*(markdown|mkd|md)
  verbose registering content plugin JsonPage that handles: **/*.json
  verbose loading plugin: ./plugins/paginator.coffee

error listen EADDRINUSE
  at exports._errnoException (util.js:746:11)
  at Server._listen2 (net.js:1129:14)
  at listen (net.js:1155:10)
  at net.js:1253:9
  at dns.js:85:18
  at process._tickCallback (node.js:355:11)

    code: 'EADDRINUSE'
    errno: 'EADDRINUSE'
    syscall: 'listen'

I tried out all sorts of ports but 80: 8080, 8888, 8889, 8890, proxy, no proxy...
Using MacOs

Your port is in use, changing the locals.url does not affect what port the server is run on, thats just metadata for the site. You need to pass --port


Use unedited data in export (csv, excel, etc)

I'm using the DataTables as a Service functionality.
In my DataTable class I use the ajax() method to 'decorate' the data as follows:
return $this->datatables->of($this->query())
    ->editColumn('provider', '{{$providerName}}')
    ->editColumn( // etc
    ->make(true);

When I export the resulting table as csv or excel using the buttons, I don't want to include the anchor tags, just the raw data.
Is there any way to bypass all editColumn declarations when exporting?

@rogierborst, I just released earlier v6.2.x and it will automatically strip tags on decorated data when doing export. Have you checked out the latest version?

And note, please use eloquent(), collection(), or queryBuilder() instead of of() method. Of is buggy when using service approach.

Aah, I see. Yes, it works like a charm and I see you've made some more changes to the behavior.
Couple of things:

In one of my editColumn calls, I returned '∞' to show the infinity symbol. Somehow the semicolon broke the exports, putting many columns into one field.
In the html() method of my DataTable class I do:

return $this->builder()
    ->columns([ /* my column definitions */])
    ->ajax(['type' => 'POST']) // <----

But I see that the export functionality still uses the GET method. How can I change that?

In one of my editColumn calls, I returned '∞' to show the infinity symbol. Somehow the semicolon broke the exports, putting many columns into one field.

I think we need to add htmlentities when exporting along with strip tags? Will check this when I had the chance.

In the html() method of my DataTable class I do:

I think I have not considered using POST when developing this feature. Not yet sure how to do it via post method. Any suggestions?

I just added html_entity_decode when exporting to excel file. However, ∞ doesn't seem to be parsed properly. Can't find a solution for it yet. If you have some solutions in mind, please do not hesitate to submit a PR. Thanks!

How do you check the output? In any blade template I can do
{{html_entity_decode('∞')}}

and get the proper result.
Might be because I have <meta charset="UTF-8"> in the head of my html.
I have solved this issue for my personal project by just not html encoding in the first place. Just pasting in the infinity symbol in my html gave me no problems. (using latest browsers and setting <meta charset="UTF-8">)

This is just the basic decoder I write when exporting a file. Please see https://github.com/yajra/laravel-datatables/blob/6.0/src/Transformers/DataTransformer.php#L66.

BTW, I checked the results directly on the output/exported file. I think displaying of HTML is a bit different when writing the data to an actual excel file.

The latest update works like a charm for me. Both csv and excel exports show the ∞ symbol even though I encoded them as ∞. Have you tried opening a csv export in a text-editor like SublimeText for example?
A more pressing matter for me is the POST method. I haven't checked your code yet, so I'm not sure how the buttons are generated. Will have a look at it now.

I was able to test using POST method and exporting function does not work properly due to how the URL was build. Opened a new ticket for enhancement.

it doesn't seem to work for me:
return $this->datatables
->eloquent($this->query())
->editColumn('post', function ($post) {
            if($post->lat)
            {
                return 'post_link.'" class="btn btn-xs btn-primary">View
                 lat.'+'.$post->long.'"" class="btn btn-xs btn-primary">Map';
            }else{
                return 'post_link.'" class="btn btn-xs btn-primary">View';
            }
        })->editColumn('photo', function ($post) {
            return 'media_url.'" class="img-responsive center-block" style="height: 82px; width: 82px;">';
        })
        ->make(true);

Please notice the column photo, when exporting to excel or csv instead of this column value I'm getting empty.
Any suggestions?
Thanks.

I'm using the DataTables as a Service functionality. In my DataTable class I use the ajax() method to 'decorate' the data as follows:
return $this->datatables->of($this->query())
    ->editColumn('provider', '{{$providerName}}')
    ->editColumn( // etc
    ->make(true);

When I export the resulting table as csv or excel using the buttons, I don't want to include the anchor tags, just the raw data. Is there any way to bypass all editColumn declarations when exporting?

The way we solved it was using request() and seeing if the action wasn't 'excel' and only apply the partials if it wasn't as export. If you don't apply any form of transformations with the blade partials, the data will remain unedited.

Another way I often use is to addColumn instead of editing the original field:
->addColumn('provider_html', '{{$providerName}}')

// columns
{data: 'provider_html', name: 'provider'}

Or you can also use the render column option.

@yajra oh wow, that's another great workaround. I didn't think about that.


Title window stopped displaying

--MeshTalk-- used to be displayed.

Window.WindowPrint required PrintLine to be one character shorter.


As a project manager, I want to efficiently manage the tasks for our GitHub project by utilizing Sprint task boards. This will help me organize the development process, track progress, and prioritize tasks effectively.

This task is done


Update on IdP or SP initiated mode setting

For SP Initiated mode, the URL will be uniquely generated for each clients.
and add missing information about IdP initiated mode configuration.

@ibisworld-jp : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hello,
I did a pull request last year #54276 and was told it has been pushed the changes into the private repo and the changes will be available once the PR merged.
However, the changes hasn't shown up on the master yet so far?!
The current instruction is wrong and has misled some of our clients, would it be possible to change the article as soon as possible?
Thanks,
-Joel-

#sign-off

@ibisworld-jp - Would you take a moment to sign the Contributor License Agreement (CLA) for contributing to the documentation? Then, we can merge your pull request.

@ibisworld-jp - Would you take a moment to sign the Contributor License Agreement (CLA) for contributing to the documentation? Then, we can merge your pull request.

Hello @ktoliver, thank you for the reminder and my apologies for the delay. I have passed this to the upper management and currently waiting for approval.

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Request: add codejzy.com to the filter

Evidence: https://codejzy.com/posts-1618561.html
Original: https://stackoverflow.com/questions/29767073/when-executing-proguard-maven-plugin-createprocess-error-206-the-filename-or

Thanks a lot!


Input getRef is not working!

I have gone through these following points

[x]   Check latest documentation: https://docs.nativebase.io/
[x]   Check for existing open/closed issues for a possible duplicate before creating a new issue: https://github.com/GeekyAnts/NativeBase/issues
[x]   Use the latest NativeBase release: https://github.com/GeekyAnts/NativeBase/releases

Issue Description
I already read any open and closed issue but i can't find any comment that can solved this problem. Many comments suggest to use getRef={...} instead of ref={...} but i don't event know both of them is not workin on my project.
node, npm, react-native, react and native-base version, expo version if used
"react": "16.3.1",
"react-native": "0.55.3",
"native-base": "2.8.1",
"react-navigation": "2.17.0"

Expected behaviour
use this._input._root.focus() in componentDidMount()
Actual behaviour
got error of
... undefined is not function (evaluating: this._input._root.focus() ...

Steps to reproduce
class SearchSuggestion extends Component{
	constructor(props){
		super(props)
		this.changeSuggestion = _.debounce(this._changeSuggestion.bind(this))
	}

	componentDidMount(){
		this._inputCity._root.focus()
	}

	componentWillUnmount(){
		this.props.resetSuggestion()
	}

	_changeSuggestion = text => this.props.getSuggestion(text)

	_renderSuggestions = (screenId) => {
		return(
			<FlatList
				styles={{width: width}}
				data={this.props.searchCities.suggestionCity}
				keyExtractor={(item, index) => `${item.id} - ${index}`}
				renderItem={ ({item}) =>
					<TouchableOpacity
						style={styles.suggestionItem}
						onPress={() => {
							( screenId == 'origin' ?
								this.props.setOrigin({originName: item.name, originId: item.id})
								: this.props.setDestination({destinationName: item.name, destinationId: item.id})
							)
							&& this.props.resetSuggestion() && this.props.navigation.goBack()
						}}
					>
						<Text style={styles.suggestionItemText}>{item.name}</Text>
					</TouchableOpacity>
				}
			/>
		)
	}

	render(){
		const screenId = this.props.navigation.getParam('screenId', 'origin')
		return(
			<Container>
				<Header style={styles.header} noShadow>
					<StatusBar
						backgroundColor={main}
						barStyle='light-content'
					/>
					<Left>
						<Button transparent onPress={() => this.props.navigation.goBack()}>
							<Icon name={'chevron-left'} size={30} color={'#fff'} />
						</Button>
					</Left>
					<Body>
						<Title>{screenId == 'origin' ? 'Search Origin' : 'Search Destination'}</Title>
					</Body>
				</Header>
				<Content>
					<View style={styles.form}>
						<Item regular>
							<Input
								placeholder={screenId == 'origin' ? 'Search Origin City...' : 'Search Destination City...'}
								onChangeText={text => this.changeSuggestion(text)}
								getRef={c => this._inputCity = c} // not working
								// ref={c => this._inputCity = c} // same result with getRef
							/>
						</Item>
					</View>
						{
							this._renderSuggestions(screenId)
						}
				</Content>
			</Container>
		)
	}
}

Is the bug present in both iOS and Android or in any one of them?
I hope it just found on Android.

The example provided in https://github.com/GeekyAnts/NativeBase/issues/1793#issuecomment-382278090 works

I have run into this issue too. It looks like it only works if you use <Item floatingLabel>. At least, it works fine for me as long as I have floatingLabel in there. It doesn't work when using fixedLabel, inlineLabel, or stackedLabel - it doesn't even look like getRef gets called at all without floatingLabel.
The examples often shown to demonstrate this isn't an issue use floatingLabel:
https://github.com/GeekyAnts/NativeBase/issues/1803
https://github.com/GeekyAnts/NativeBase/issues/1793#issuecomment-382278090
"native-base": "2.8.2",
"react": "16.3.2",
"react-native": "0.55.3",
"react-navigation": "2.7.0"


chore: fix receivers & check ResourceRender implements.

xref: https://github.com/envoyproxy/gateway/pull/4263#discussion_r1764299062

/retest


Support for minimum pixel width panels?

Hey there, I'm curious if you have considered adding support for pixel-based min/max values on the Panel component?
We have a use case where it would be nice to have a panel that maintains a minimum fixed width in pixels so that it is still usable when the screen becomes quite small. VSCode has a somewhat similar behavior where the primary side bar is fixed width while the editor panel is fluid when resizing the window:

There are probably many edges I'm not considering here or maybe there is a way to do this today - curious to get your thoughts regardless.

It's come up a few times 😅  #46, #47, #78

Here is a way you could basically implement this in your application code:

https://codesandbox.io/s/react-resizable-panels-forked-m5qf69?file=/src/App.js

  const MIN_SIZE_IN_PIXELS = 100;

  const [minSize, setMinSize] = useState(10);

  useLayoutEffect(() => {
    const panelGroup = document.querySelector('[data-panel-group-id="group"]');
    const resizeHandles = document.querySelectorAll(
      "[data-panel-resize-handle-id]"
    );
    const observer = new ResizeObserver(() => {
      let height = panelGroup.offsetHeight;

      resizeHandles.forEach((resizeHandle) => {
        height -= resizeHandle.offsetHeight;
      });

      // Minimum size in pixels is a percentage of the PanelGroup's height,
      // less the (fixed) height of the resize handles.
      setMinSize((MIN_SIZE_IN_PIXELS / height) * 100);
    });
    observer.observe(panelGroup);
    resizeHandles.forEach((resizeHandle) => {
      observer.observe(resizeHandle);
    });

    return () => {
      observer.disconnect();
    };
  }, []);

Here my reasoning for not wanting to add it to the NPM package directly:

I think the problem with this is similar to the problem with external width/height props– either can change without PanelGroup/Panel re-rendering or being aware. (Example: an external stylesheet could define this style.)
So handling it fully would go from being something triggered only by pointer events to something that could be triggered by a lot of external things.
I don't think I want to try to support that level of complexity 😄

It's come up a few times

Apologies! Should have used search 😶 but appreciate the context here, ty!

@bvaughn Thanks for the great library. It's easy to use and elegant.
However, this one limitation that many people asked you, we can't set a fixed pixel width or height for the first or last panel. In many panel designs, the first panel (or last) is often fixed and doesn't grow with window resizing, and only the next panels do. For example, in Chrome Dev Tools' Sources tab, only the first panel grows on browser resize.
Looking at your code, I see that you're using flex grow for panel sizes. If we want a fixed pixel size for panel 1, you could set its flex grow to 0 and flex basis to '300px' (or any other pixels size). The rest of the panels could then have the same flex grow but minus 300px for the first panel. This could work well for many cases.
Thanks again for your work. I hope this suggestion helps to implement this feature.
BTW: solution here does not work
https://codesandbox.io/s/react-resizable-panels-forked-m5qf69?file=/src/App.js
you can clearly see that ALL panels will change size on browser resize

I think I have a possible solution for the pixel-based constraints; see https://github.com/bvaughn/react-resizable-panels/pull/176

❤ → ☕ givebrian.coffee


Implementing IFormattable on KeyGesture

What does the pull request do?
Implements IFormattable on KeyGesture, and the associated KeyGestureFormatInfo class for platform specific KeyGesture formatting information.  Follows the general outline provided by @MrJul here: https://github.com/AvaloniaUI/Avalonia/pull/15393#discussion_r1579336634
What is the current behavior?
Currently KeyGestures, when printed in user facing scenarios such as menus, are only nicely formatted on Windows, Linux, and MacOS/iOS.  Other platforms like Android are left with basic Enum values.  As seen in #15392
What is the updated/expected behavior with this PR?
All platforms have more appropriate results displayed in Menus, so as not to confuse users.
How was the solution implemented (if it's not obvious)?
The code for making KeyGesture strings more user-friendly overlapped a lot with the basic KeyGesture.ToString(), so as per the discussion in #15393 IFormattable has been implemented on KeyGesture, and an IFormatProvider implemented to provide the platform specific strings for specific Keys/Modifiers where they do not match the Enum string.  For example "." instead of "OemPeriod" or "1" instead of "D1".
A FormatProvider was implemented (KeyGestureFormatInfo), and registered on every platform where PlatformHotkeyConfiguration was also registered using my best guess at the appropriate overrides.  These platform registrations will need review, as I don't have or use any iOS/MacOS devices and can't comment on whether these choices were all appropriate.  Similarly I wasn't sure what platform AvaloniaNativePlatform represented, but found hints it was an Apple platform so copied from the iOS registrations.
Checklist

[ ] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/avalonia-docs with user documentation

Breaking changes
Formatting of menus may have changed on platforms that I don't have access to to test.  I have only been able to check Windows, Android, and Browser platforms, all others will need to be checked by someone with familiarity and access.
Obsoletions / Deprecations
Fixed issues
Fixes #15392

Oh damn.  Didn't spot the Converter's ToPlatformString() method was public, and so removing it is a Breaking Change which is upsetting the tests obviously.  I'll put it back.

@IanRawley,
Please read the following Contributor License Agreement (CLA). If you agree with the CLA, please reply with the following:
@cla-avalonia agree

Contributor License Agreement
Contribution License Agreement
This Contribution License Agreement ( “Agreement” ) is agreed to by the party signing below ( “You” ),
and conveys certain license rights to the AvaloniaUI OÜ ( “AvaloniaUI OÜ” ) for Your contributions to
AvaloniaUI OÜ open source projects. This Agreement is effective as of the latest signature date below.
1. Definitions.
“Code” means the computer software code, whether in human-readable or machine-executable form,
that is delivered by You to AvaloniaUI OÜ under this Agreement.
“Project” means any of the projects owned or managed by AvaloniaUI OÜ and offered under a license
approved by the Open Source Initiative (www.opensource.org).
“Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
Project, including but not limited to communication on electronic mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
discussing and improving that Project, but excluding communication that is conspicuously marked or
otherwise designated in writing by You as “Not a Submission.”
“Submission” means the Code and any other copyrightable material Submitted by You, including any
associated comments and documentation.
2. Your Submission. You must agree to the terms of this Agreement before making a Submission to any
Project. This Agreement covers any and all Submissions that You, now or in the future (except as
described in Section 4 below), Submit to any Project.
3. Originality of Work.  You represent that each of Your Submissions is entirely Your
original work. Should You wish to Submit materials that are not Your original work,
You may Submit them separately to the Project if You (a) retain all copyright and
license information that was in the materials as you received them, (b) in the
description accompanying your Submission, include the phrase "Submission
containing materials of a third party:" followed by the names of the third party and any
licenses or other restrictions of which You are aware, and (c) follow any other
instructions in the Project's written guidelines concerning Submissions.
4. Your Employer. References to “employer” in this Agreement include Your employer or anyone else
for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
Submission is made in the course of Your work for an employer or Your employer has intellectual
property rights in Your Submission by contract or applicable law, You must secure permission from Your
employer to make the Submission before signing this Agreement. In that case, the term “You” in this
Agreement will refer to You and the employer collectively. If You change employers in the future and
desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
and secure permission from the new employer before Submitting those Submissions.
5. Licenses.
a. Copyright License. You grant AvaloniaUI OÜ, and those who receive the Submission directly
or indirectly from AvaloniaUI OÜ, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable
license in the Submission to reproduce, prepare derivative works of, publicly display, publicly perform,
and distribute the Submission and such derivative works, and to sublicense any or all of the foregoing
rights to third parties.
b. Patent License. You grant AvaloniaUI OÜ, and those who receive the Submission directly or
indirectly from AvaloniaUI OÜ, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license
under Your patent claims that are necessarily infringed by the Submission or the combination of the
Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
import or otherwise dispose of the Submission alone or with the Project.
c. Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
granted by implication, exhaustion, estoppel or otherwise.
6. Representations and Warranties. You represent that You are legally entitled to grant the above
licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
have disclosed under Section 3 ). You represent that You have secured permission from Your employer to
make the Submission in cases where Your Submission is made in the course of Your work for Your
employer or Your employer has intellectual property rights in Your Submission by contract or applicable
law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
EXPRESSLY STATED IN SECTIONS 3, 4, AND 6 , THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
7. Notice to AvaloniaUI OÜ. You agree to notify AvaloniaUI OÜ in writing of any facts or
circumstances of which You later become aware that would make Your representations in this
Agreement inaccurate in any respect.
8. Information about Submissions. You agree that contributions to Projects and information about
contributions may be maintained indefinitely and disclosed publicly, including Your name and other
information that You submit with Your Submission.
9. Governing Law/Jurisdiction. This Agreement is governed by the laws of the Republic of Estonia, and
the parties consent to exclusive jurisdiction and venue in the courts sitting in Talinn,
Estonia. The parties waive all defenses of lack of personal jurisdiction and forum non-conveniens.
10. Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
supersedes any and all prior agreements, understandings or communications, written or oral, between
the parties relating to the subject matter hereof. This Agreement may be assigned by AvaloniaUI OÜ.
AvaloniaUI OÜ dedicates this Contribution License Agreement to the public domain according to the Creative Commons CC0 1.

@cla-avalonia agree


Update runner.py

Since https://github.com/Anaconda-Server/clyent/commit/8856c26efd9b989c904794aae3a5194131bff829, use_color only accepts always, never and tty as valid arguments.
This is causing chalmers start to totally fail.

I tested this.  I am going to merge this for a release.


INT8

I try to use your model to generate the INT8.
But the result of INT8 doesnt detect any object.
The result of FP16 can detect the object.
Do you have any idea?

You can download INT8 model for OpenVINO with model downloader.

If I want to export the model with num-refinement-stages = 2.
Do I only modify the num_refinement_stages = 2 in the line 28 ?

Looks so. I would also add one more output pair to the output_names for the extra refinement stage.

Hope, it helped.


Add support for enum key

Is your feature request related to a problem? Please describe.
Currently, the class Key doesn't accept enum value.
Key.of(FooEnum.HOGE) will cause the following error
java.lang.IllegalArgumentException: Unsupported type [jp.myapp.FooEnum] for argument: HOGE
at com.google.cloud.spanner.Key$Builder.appendObject(Key.java:198)
at com.google.cloud.spanner.Key.of(Key.java:84)

Describe the solution you'd like
Accept enum value as well as other types.
Describe alternatives you've considered
Key.of(FooEnum.HOGE.name) is the current workaround when a part of the keys is enum.
It'd be more convenient if user doesn’t t need to this as Spanner table entity accepts enum value.

@toyopilgrim Thanks for your feature request. One of the reasons that enums are not supported as key values, is that it would be slightly ambiguous. I noticed that you assume that it would translate to a string and use the name of the enum.
There could however be other reasonable choices as well, such as:

Use the name() as your suggestion is.
Use the toString() value.
Use the ordinal() of the enum, which would translate to an INT64 column.

Another reason that this automatic conversion is not supported is that it would prohibit us from mapping Java enums to any possible future data type that could be more similar to enums, as that would be introducing a breaking change. I'm therefore inclined to say that it's better if you continue to explicitly pass in the name of the enum, instead of the library automatically converting enums to strings.

@olavloite
Thx for your reply. I see. As this is low level API, to avoid converting enum makes sense.

Spanner table entity accepts enum value.

I meant that this automatically converts enums to its names.
However, it turned out that this behavior looks like a upper layer thing. : spring cloud gcp
import com.google.cloud.spring.data.spanner.core.mapping.Column

@toyopilgrim Based on the above information I'm closing this feature request. Please feel free to reopen if you feel that there is something that we should change in this library.


some bugs

Issue Type: Bug
ALT+F12 doesn't work anymore. ALT+click doesn't work anymore. suggestions words doesn't work well because i haven't suggestion of word that are in PROCEDURE DIVISION but not in WORKING-STORAGE SECTION.
Some days ago when i pressed end key the cursor gone at the end of the line and if i pressed up or down key it remained at the end, now when i press up or down key it remains at the same column.
When i type "AT END" when i read a file, it gives me "environment division" suggestion also if i press space bar, i have to press twice, i don't remember it first.
This extension worked well some times ago
Extension version: 6.3.19
VS Code version: Code 1.46.1 (cd9ea6488829f560dc949a8b2fb789f3cdc05f5d, 2020-06-17T21:13:20.174Z)
OS version: Windows_NT x64 10.0.18363

ALT+F12 doesn't work anymore. ALT+click doesn't work anymore. suggestions words doesn't work well because i haven't suggestion of word that are in PROCEDURE DIVISION but not in WORKING-STORAGE SECTION.

More information is required

Some days ago when i pressed end key the cursor gone at the end of the line and if i pressed up or down key it remained at the end, now when i press up or down key it remains at the same column.

The extension does not do anything with cursor movement, I suggest you look at your configuration/extensions installed.

When i type "AT END" when i read a file, it gives me "environment division" suggestion also if i press space bar, i have to press twice, i don't remember it first.

If you do not want this, turn off the "Snippets suggestions".

Hmm, I'm running into something similar. Pressing ALT+F12 used to open the file at a particular paragraph when I would press it while my cursor was within the paragraph name in a PERFORM statement. Now it says it cannot find the definition. It seems to work fine with regular variables but will not jump to named paragraphs.


Skip JavaScript flag ignored

Describe the bug
I've been trying to use both the CLI and CI approach, with and without configuration files, and JavaScript is not disabled regardless of file configuration or flags.
(JavaScript content is rendered despite this flag)
--disable-javascript
(JavaScript content is rendered despite this property of the scanner)
scanner.skipJavascript = ture
Reproduction
No response
System / Nuxt Info
No response

This flag is used to allow the crawler to work with SPAs, it's disabled by default and does work.
Can you provide some more context on why you want it disabled and I can give you some idea of what you're looking for? FWIW it's not possible to run Lighthouse with js disabled.


update yarn i18n files

@jackahl I added an i18n check and needed to fix i18n to prove my check works. Closing this PR.


USHIFT-1820: Skip sos microshift profile if its disabled

Which issue(s) this PR addresses:

Closes #

/hold until ready

/test metal-periodic-test

/lgtm

/unhold

/cherry-pick release-4.14


Apply Codema Archetypes to BER-Public

Calculate postcode | period built averages on the Postcode BERs

duplicate of #5


The Ultimate Oldschool PC Font Pack

Is it ok to add these fonts?
I'm curious because its font pack. You can't download them separately.

I don't think we have any objections to font packs, easier to have them all in one Cask.
If you're not already using it, font_casker would be useful with this one as it looks like the pack has approx 100 fonts.

Thanks for mentioning font_casker.


update docs and prepare for the first release

https://github.com/quarkiverse/quarkiverse-docs/pull/39

https://github.com/quarkusio/quarkus-extension-catalog/pull/25

1.0.0 has been released.


Incorrect Syntax coloring for @click

I have tried sort this out, and a theme I know has the settings to make the @click="" inside an html tag color differently, I cannot get it working. Same theme used in different editors has it working.
For Example:
<button @click="foo">Bar</button>
Looks like:

When it should look like:

I've had this same issue, but it only occurs in plain .js files. The syntax highlighting works correctly (for me) in .vue files. I'm not sure how to get it to work in plain .js files.

.vue? But what I need is in .html

Hey @ledtorch the plugin only works for .vue files for now, and I don't think it's possible or advisable to overwrite and extend sublime's default html file syntax highlight at this time.
This only seems to affect event handlers for now. You can optionally consider filing an issue to sublimehq/Packages repo to recognize @click as a valid attribute name, since :click is valid too.
Another suggestion is opening the file as a "vue component" from sublime's file type selector, even if it's html. Vue component syntax overwrites the default HTML styles so you can get syntax highlight. However you might have to surround your component in <template>. Your mileage may vary.
I am closing this issue for now. Thank you!


Installation with PIP failing due to elementtree requirement

Hey,
I'm trying to install your module using pip and the error message below is telling me that it is failing due to elementtree requirement not being satisfied:
$ sudo pip install sharpy
Downloading/unpacking sharpy
  Downloading Sharpy-0.8.tar.gz
  Running setup.py (path:/tmp/pip_build_root/sharpy/setup.py) egg_info for package sharpy

Requirement already satisfied (use --upgrade to upgrade): httplib2 in /usr/lib/python2.7/dist-packages (from sharpy)
Downloading/unpacking elementtree (from sharpy)
  Could not find any downloads that satisfy the requirement elementtree (from sharpy)
Cleaning up...
No distributions at all found for elementtree (from sharpy)
Storing debug log for failure in /home/max/.pip/pip.log

Afaik the lxml package provides elementtree, and it is already installed:
$ sudo pip install lxml
Requirement already satisfied (use --upgrade to upgrade): lxml in /usr/lib/python2.7/dist-packages
Cleaning up...

Any ideas what is causing this?
Thanks
Max

For anyone else having this issue, you can install elementtree from the url in order to satisfy the requirement, ex:
pip install http://effbot.org/media/downloads/elementtree-1.2.7-20070827-preview.zip
The downloads for elementtree are viewable at http://effbot.org/downloads#elementtree


set protocol to TCP

hi
how can I set connection protocol to TCP ?
in UDP protocol some of website doesn’t load, so I want to set protocol to TCP for all website.

I think it´s already on tcp mode, try to change your server to shadowsocks-go.


Robyn Python project structure and data initialization and validation interfaces added

Project Robyn
Robyn python version
Fixes # (issue)
Type of change

Robyn Python version project structure initialized with "robynpy" package management
Data initialization and validation interfaces are added
robyn.py will be entry point APIs. Initialize method is added in here. All future entry point APIs will go in here
tutorial1 is added with calling initialize to do integration test.

How Has This Been Tested?

Built and installed local package and ran tutorial1 locally.

The validation interfaces look good. Good to land!


[NIGHTLY] feat: use tokio to provide async support

This improves upon the previous implementation in that it uses Tokio to
handle waiting on the inotify file descriptor rather than always
scheduling itself when it can't read any data.

From discussion in #99, it was decided to use a less-than-optimal yet doesn't-require-nightly implementation for now. Here is the "uses nightly" variant. It also relies upon an as-yet unreviewed Tokio change (tokio-rs/tokio#144).

I wonder why the Stream implementation uses such a small buffer, thereby artificially increasing the syscalls per event ratio.

Closing in favor of #105.


GCCollector / multiprocess mode deadlock

Ref #313, #321.
There's a chance for a deadlock with the GCCollector and multiprocess mode (when prometheus_multiproc_dir is set).
For instance, when running our test suite with py.test, the process seems to hang, and ctrl+c yields this (on 0.4.0):
Traceback (most recent call last):
  File "prometheus_client/gc_collector.py", line 49, in _cb
    latency.labels(gen).observe(delta)
  File "prometheus_client/core.py", line 747, in labels
    self._metrics[labelvalues] = self._wrappedClass(self._name, self._labelnames, labelvalues, **self._kwargs)
  File "prometheus_client/core.py", line 1088, in __init__
    self._sum = _ValueClass(self._type, name, name + '_sum', labelnames, labelvalues)
  File "prometheus_client/core.py", line 636, in __init__
    with lock:

This looks like a problem with GC collector callbacks firing while another metric's value object (a _MultiProcessValue) is being modified (which holds the Lock() shared by all values created here).
One possible option might be to use an RLock() instead of a Lock(), but I'm not sure what that might cause.

@tcolgate See here: https://github.com/prometheus/client_python#multiprocess-mode-gunicorn
The crux of the issue is that in multiprocess mode there's an additional lock that prevents concurrent/reentrant writes of values (since they're backed by a file, not bare Python memory).
Since the GC callback may occur at any time, and Python runs the callback code in the main thread, there's a nontrivial chance that the GC callback is called when something else is updating a metric value, causing a deadlock.

Why is that a deadlock rather than just a lock contention?
Can multiproc be detected? I'd suggest skipping the GC collector if so.
On Tue, 9 Oct 2018, 17:08 Aarni Koskela<EMAIL_ADDRESS>wrote:

@tcolgate https://github.com/tcolgate See here:
https://github.com/prometheus/client_python#multiprocess-mode-gunicorn
The crux of the issue is that in multiprocess mode there's an additional
lock that prevents concurrent/reentrant writes of values (since they're
backed by a file, not bare Python memory).
Since the GC callback may occur at any time, and Python runs the callback
code in the main thread, there's a nontrivial chance that the GC callback
is called when something else is updating a metric value, causing a
deadlock.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prometheus/client_python/issues/322#issuecomment-428252903,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEo80vQX18YLmBDR2_xDEbVlSRUrUzWks5ujMnqgaJpZM4XTJ7I
.

Why is that a deadlock rather than just a lock contention?

Because the GC callbacks are run as "interrupts" in the same thread that happens to make an allocation that causes garbage collection, so you may get this happening in a single thread:

metric value is updated
acquire lock for metric writing
allocation occurs for something within metric writing, causes GC
GC callback is called, updates a metric
deadlock attempting to reacquire same lock we already hold

Adding more threads into the mix sounds unnecessary. I think queue processing could be done on-demand, at collect() time for the GCCollector.

Possibly, though you wouldn't want an unbounded queue, and if a queue fills
(because prom has been down for a while), the resulting scrapes will be
given incorrect info. Personally I don't think another thread is a major
issue, but I don't really understand python threading (or python), or this
multiproc stuff well enough.
On Thu, 11 Oct 2018 at 11:30 Aarni Koskela<EMAIL_ADDRESS>wrote:

Adding more threads into the mix sounds unnecessary. I think queue
processing could be done on-demand, at collect() time for the GCCollector.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/prometheus/client_python/issues/322#issuecomment-428905028,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEo8zF7WUeEQUE6jBJV4mClJbi5yPDWks5ujx2lgaJpZM4XTJ7I
.

@akx I'm coming across this issue in 0.4.2, without prometheus_multiproc_dir set. Reading through this bug and the associated fix, it seems like this behavior was only noticed when that environment variable was set - so unsure what's causing this.
Relevant failure:
Exception ignored in: <function GCCollector.__init__.<locals>._cb at 0x7fe8dd6b1488>
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/prometheus_client/gc_collector.py", line 58, in _cb
    latency.labels(gen).observe(delta)
  File "/usr/lib/python3.6/site-packages/prometheus_client/core.py", line 777, in labels
    labelvalues = tuple(unicode(l) for l in labelvalues)
  File "/usr/lib/python3.6/site-packages/prometheus_client/core.py", line 777, in <genexpr>
    labelvalues = tuple(unicode(l) for l in labelvalues)
RecursionError: maximum recursion depth exceeded while getting the str of an object
Fatal Python error: Cannot recover from stack overflow.

Any suggestions on what I might be doing wrong?

Ugh, that sounds bad.
An educated guess is that a GC collection can occur even within the same thread the GC collection callback is running in, so the callback gets called again, and... well, you can guess the recursive rest.
The quickest fix (if the above guess is correct) is to add a re-entrancy lock to the GC callback function, so it won't do anything if it's already running. I'm not sure if it's safe to do so within the GC callback, but adding a pair of  gc.disable() and gc.enable() should also work.
On the bright side: You're not doing anything wrong there, @charan28.

@charan28 Assuming my hypothesis is right, the above ☝ PR should fix this situation.

Fixed by #371


Store and expose process information

Store process information (such as process id, process result) of the last command executed by an echo session using method e.Run (or e.Runout).  Make that information available via echo session method e.Proc.Id, e.Proc.Result.
Run command
result := e.Run("some command")

Inspect result
if len(result) == 0 {
  fmt.Println("something may have gone wrong")
}

Inspect Error
if len(e.Proc.Error()) > 0 {
    fmt.Println("cmd failed:", e.Error())
}

Inspect result code
if e.Proc.ResultCode != 0 {
    fmt.Println("something went wrong")
}

Inspect Process ID
fmt.Println("Process ID", e.Proc.ID)

This was completed in #10


1.4.21 Air Pressure alert range can be 300-300 or 1100-1100

Description:
Air pressure alert range can be set to for example 300-300
Expected:
It should be<PHONE_NUMBER>-1100
Reference from other alert types

Under the hood it work with Pa, and if you see range as 300-300 hPa in reality it's something like 30001-30002Pa and after conversion to hPa we see 300-300

I can change this by setting minimal gap for as 100 Pa

What do you think @markoaamunkajo @laurijamsa ?

In my opinion gap should be always available. Good point though.

Ok let's keep it as reason is library. QA passed.


Click Folder labeled as "Render=never" to expand without having to click the arrow.

Hello!
I currently have some subfolder index pages with a render=never flag in the yaml headers. This is so I do not show empty index pages. I would like to show the folder structure on my side bar without having an index page for each one. This works, the only problem is that you have to click specifically on the arrow in order to get the folder to expand. Is there a way to make it so that if you click anywhere on the folder (arrow and/or word) then the folder will expand?
Thanks!

Hi David! That's currently not possible. The only thing you could do is to set alwaysopen=true on your headless bundle to have it initially expanded.


[3230] Change trainee withdraw date

Context
https://trello.com/c/zos238JK/3230-update-withdrawal-date-on-withdrawn-trainee
Changes proposed in this pull request

Data migration to change trainee withdraw date

 Update withdrawal date on withdrawn trainee


Propose a brand new contract interface AsyncFeignClient

Propose a brand new contract interface because the current one FeignClient is too tightly coupled with Non-Async classes and hard to enhance.

I try to make it a new property in the exiting annotation @FeignClient. Close the PR for now.


trained model

Dear author
Could you please share the trained model for easier comparision and study?
Thank you very much

We may share a trained model in the near future, just wait a while...

Dear author
I am really interested in your work！
Could you please share the trained model for easier comparision and study?
Thank you very much！

We've uploaded a demo and a pretrained model to conduct IQA on a single image, you can do the test on your own now!

We've uploaded a demo and a pretrained model to conduct IQA on a single image, you can do the test on your own now!

How to save the model during training? Are there any codes available?
Thanks in advance!


iPhone 11 pro - 15.3.1 restart issue

iPhone 11 Pro on iOS 15.3.1 (RC build)  seems to be restarting on the finding kernel patch stage, no panic-full log is found.
Ps: yes I did turn on airplane mode and turn made sure wifi, Bluetooth, cellular data are off. Strange thing happened is each time the phone restarts it’s 2x slower than the original starting speed.
No fugu15 logs can be retrieved sadly.

#13

iphnoe 11 pro msx - 15.3.1
same issues as there

So there is definitely a issue with the exploit on iOS 15.3.1


Create a release plan for the next 2 milestones

[ ] Create milestones (following the release plans from qiskit-terra https://github.com/Qiskit/qiskit-terra/milestones)
[ ] Assign prioritized issues to include in the coming milestone

Created milestone here https://github.com/Qiskit/qiskit-ibm-runtime/milestones - i'll continue to update in the next few days


Style verb page content and fix layout issues

For a first pass at VerbTab we can have a layout like this

[x] VerbForm (response should be syntax highlighted)
[ ] RequestGraph for the last request made by the form above ^
[ ] Section to describe the verb (basically the syntax highlighting we have there today)
[ ] Call list with much better layout/formatting

Also, #311 might be related as well.

@wesbillman I'm guessing this is more relevant now with the new module page interface and interactions so I'll work this in.


Error

Traceback (most recent call last):
File "zefoy-v6.py", line 65, in
driver = webdriver.Chrome(service=Service(), options=chrome_options)
TypeError: init() missing 1 required positional argument: 'executable_path'

try v5 and install chromedriver manually, make sure you have the chromedriver-autoinstaller library


[#104] Add blocking http actor service interface

motivation
We aim to full asynchronous services, so i want to make some actors to handling the blocking job.
So user(developer who uses dss) implement AbstractDssOkHttp3ClientService and add to dss server that they can use the http service.
details

add http client service actor implement
add http client service message and http client service interface and test
add abstract http client service implement for okhttp3

Coverage decreased (-1.7%) to 81.46% when pulling 65a688f1b2f538352f7f9d45c2e9f8482966e02e on feature/104_http_service into 3559ebb363f41455b1786b24eff2671f4d6e7f96 on develop.


Make it work with connected devices?

Is it possible to make it work on connected devices, when debugging on say a real android device it would be nice to be able to also use the extension there.

According to my knowledge, a devtool extension should work on remote debugging. I havnt tried recently. and i just refactored the whole devtool<->extension communication.
i would love your input about the threejs-inspector on connected devices

At the moment the three.js inspector is not working in Chrome remote debugging, the tab 'Three.js Inspector' is missing.
To reproduce connect an Android device and open a three.js example webpage with Chrome on this device. On your laptop/desktop open Chrome browser and run 'chrome://inspect' and select the browser session the inspect. In the developer tools the 'Three.js Inspector' is missing.
Would but very usefull to be able to debug on mobile also.

i would love that to work on a mobile... This is just i dunno how to fix this issue, nor where to look.
My area of expertize is more around WebGL, but i would apreciate any help :)


Add safety check when setting several rendering effect quality

Partially fixes https://github.com/godotengine/godot/issues/92960 (since I can't reproduce the crash), but  nevertheless some protection is needed.

I don't think that invalid p_quality is problem here, but ss_effects which is null
servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp:3596:39: runtime error: member call on null pointer of type 'struct SSEffects'
servers/rendering/renderer_rd/effects/ss_effects.cpp:1344:24: runtime error: member access within null pointer of type 'struct SSEffects'
================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.3.beta.custom_build (5833f597865c773fae3ee09fc4e31d4a243f812d)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] ./godot.linuxbsd.editor.dev.x86_64.san(+0x354756c1) [0x558e747c96c1] (/home/runner/work/GodotBuilds/GodotBuilds/godot/platform/linuxbsd/crash_handler_linuxbsd.cpp:61)
[2] /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7fc095242520] (??:0)
[3] RendererRD::SSEffects::ssr_set_roughness_quality(RenderingServer::EnvironmentSSRRoughnessQuality) (/home/runner/work/GodotBuilds/GodotBuilds/godot/servers/rendering/renderer_rd/effects/ss_effects.cpp:1344)
[4] RendererSceneRenderImplementation::RenderForwardClustered::environment_set_ssr_roughness_quality(RenderingServer::EnvironmentSSRRoughnessQuality) (/home/runner/work/GodotBuilds/GodotBuilds/godot/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp:3597)
[5] RendererSceneCull::environment_set_ssr_roughness_quality(RenderingServer::EnvironmentSSRRoughnessQuality) (/home/runner/work/GodotBuilds/GodotBuilds/godot/servers/rendering/renderer_scene_cull.h:1309)

I don't think that invalid p_quality is problem here, but ss_effects which is null

Totally missed that but yes :) Its good to check both even if just to keep the automated testing happy

Thanks!


[Release] Publish all 1.10.0 images to docker hub

Description
No response
Use case
No response
Are you willing to submit PR?

[X] Yes, I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

1.10 images pushed.


Prevent click and drag where not anticipated

It would happen on occasion that I would mistakenly click and drag items, and if if drag it over a droppable item things would break.
To reproduce this, click and drag the home item on to current queue. The solution is to return false on mouse click down.

I tested it on Windows & iPhone6S the Opera browser and everything if functioning fine after the changes, including clicking and dragging items into the queue.
Besides for th occasional issues it was causing, I believe that it makes the App nicer in general when you don't have weird dragable things in it.
I hope you approve, I tried sticking to your format on things. I'm not a professional programmer which means that there might be a better way to do it.

The bug is admitted, but your PR is not really a fix. Actually, this bug happens after the massive upgrade to Vue 2.0. I'll work on it. Thanks for reporting.

Fixed with https://github.com/phanan/koel/commit/a87b456f9b140447c3c25f6a16f396a4d658e323.

I was obviously coming at it the wrong way, that is why I didn't think of it as a bug. I still thin though that since we expect people do click and and drag, we should limit it, to only the things we want should be dragable, so that is what I was trying to do. And again there might be better ways.
In conclusion, I think it makes Koel more professional, if cant tell by now, I really dislike my mouse dragging weird href's in it. :-/


Prevent ConstructorLeaksThis false positive on constructor reference

Fixes #655.

Maybe somebody from the Error Prone team can find some time to review this PR? It doesn't seem too controversial :D.

Sorry for the delay, and thank you for the contribution!

This PR will be of great help in https://github.com/junit-team/junit5/pull/1266. :)


Timetable mid v1.2

From v1.1

Changed Appt class to contain subfields of Appt instead of just 1 String
Now passes all tests, but AddApptCommandTest not added in yet

Good job on changing the Appt class to contain subfields of Appt instead of just one string. It was helpful for me that you elaborated and explained the changes you have made as well.


Array type checking not working with functions returning any[]

TypeScript Version:  2.6.1
Code
type SomethingSpecial = "abc";
function anyArray(): any[] { return [2]; }

var a: SomethingSpecial[];
a = [2];  // error
a = anyArray();  // no error

Expected behavior:
The last two lines should behave identical with regards to error checking.
Actual behavior:
The last line currently does not give an error.

I'm not sure it makes sense to have an array of type of literal string ("abc").
It's no longer an issue with:
type SomethingSpecial = number; // "abc";
It looks like the transpiler's behaviour is expected.

The results are predictable for:
type SomethingSpecial =  "abc" | "xyz";
var a: SomethingSpecial[];
a = ["abc"];  // no error
a = ["abc","xyz"];  // no error
a = ["pqr"];  // error

This is the expected and correct behaviour. The any type is assignable to everything and from anything.
If that were not your intention, just remove the explicit any[] return type and number[] will be inferred, producing an error as you expect.
PS: any is really dangerous and contaminating. Using it even once you assume responsibility for all code paths it may end up in.

First of all, my example was of course a minimal example that demonstrates the issue with least amount of code. The real code where this behavior was observed, is waaay more complex, with assignments to arrays of discriminated unions.
Ooops! I can assign any to any type? I didn't expect that. I knew that I can assign any value to an any varible. But I find it strange to be the other way round.
Okay, the issue now changed to: Documentation needs to be updated. https://www.typescriptlang.org/docs/handbook/basic-types.html#any just talks about assignments to any. It should also contain a big warning about assignments from any.
As a single any can spoil my whole code (TypeScript making it look to be type-save, but still containing wrong-type errors), is here a way to disallow assignments from any to anything more specific?

is here a way to disallow assignments from any to anything more specific?

Yes, use {} | null | undefined instead.
let x: {} | null | undefined;

x = 5; // OK
x = "tomato"; // OK

let y: number = x; // Error
let z: string[] = x; // Error


Feature Request: Set a field as an ENUM.

If I figure out how to do this, I'll submit a PR.
Does this look like how you would expect to create an ENUM?
artisan generate:scaffold student --fields="forename:string, surname:string, gender:enum['Male','Female']"

In my experience it has been much easier to keep the command line options simple, and update the migration file manually.


Feature/ecmwf libraries upgrade

Summary
This is to upgrade the ECMWF libraries in spack to latest versions that are supported.
Testing
Describe the testing done for this PR.
Applications affected
JEDI
Systems affected
Dependencies
https://github.com/JCSDA/spack/pull/489 (Merged)
Issue(s) addressed
Fixes #1340
Checklist

[x] This PR addresses one issue/problem/enhancement, or has a very good reason for not doing so.
[ ] These changes have been tested on the affected systems and applications.
[x] All dependency PRs/issues have been resolved and this PR can be merged.

@climbfuji or @AlexanderRichert-NOAA  Let me know if I need to remove some package.yaml updates. Not sure if they need to be there for 1.9.

@stiggy87 It looks like the spack submodule hash is out-of-date so the recent updates in the spack repo are not being picked up. This appears to the be cause of the test failures.
This can be remedied by:
cd spack-stack   # where your fork is located
git checkout stiggy87/feature/ecmwf-libraries-upgrade   # check out your feature branch
cd spack

# might need to first run: git remote add jcsda https://github.com/JCSDA/spack
git remote update -p
git checkout jcsda/spack-stack-dev

cd ..
git add spack
git commit
git push


Enchanter COFH, Draconic Evolution, EnderZoo Support

If we are to add this it would probably be best to make a new recipe file for modded enchanter recipes, similar to the sagmill.

If you wish.

split of not doesn't matter to me, we can move recipes around now without any worries. But I'm not ok with the itemSkull change. First you now got a conflict between those 2 recipes, and then we should not change old recipes without very good reason. People know them and expect them to stay the same.

No because tormented endermand head doesnt extend itemskull in game. But i can change it back

Ill fix vorpal when i get home. Any ideas on  what to use?

Obsid will work.


JIRA-123 Edit Caption

This PR has the following changes

Slides_caption file changed.

[x]  Caption

Thanks

reopened


bug: ionScrollEnd fires twice on Android

Bug Report
Ionic version:

[x] 4.x
Current behavior:
Sometimes, when scrolling on an ion-content element not to slow and not to fast, the ionScrollEnd event is fired twice - once shortly before scroll ends and once the scroll really ends. While this is not that problematic, is runs the internal ionScrollStart function twice, and hence, two times the watchdog and the timer is running. It is this function here:
in ionic/core/src/components/content/content.tsx, line 276
This leads to a high cpu usage on slow android devices and hence, scrolling is interrupted shortly, which makes scrolling feeling not native.
Expected behavior:
Event should only fired once and hence watchdog and timer should also.
Steps to reproduce:
Create a page with ion-content, put a list with around 100 items and scroll with medium speed. Let the scroll end without touching the screen. You will notice a bump at the end.
Related code:
https://github.com/ionic-team/ionic/blob/master/core/src/components/content/content.tsx#L276
Other information:
Is there any chance to override or disable the onScrollStart function?
Could be related to #15726, but we are not using virtual-scroll

Hi there,
Thanks for the issue! Can you provide a repository with the code required to reproduce this issue?
Thanks!


Remove dts-cb/build:preload:types

It seems to me that using dts-cb imposes an extra cost, in terms of requiring a restart every time the code changes.
There is an easier way to pass types in the renderer process.
For example:
You declare all the exported functionality in one place:
https://github.com/AuroraTeam/Launcher/blob/b223607835deab305ce71c5c7008449c8cec99aa/src/preload/index.ts
and import ad types into the file:
https://github.com/AuroraTeam/Launcher/blob/b223607835deab305ce71c5c7008449c8cec99aa/src/renderer/renderer.d.ts
this solution allows you to keep the code clean, you can clearly define what you need to export in one place, while you do not need to run the build:preload:types task every time you add new functionality to the export.

How should this work in case if not one point but many are exposed? When does each module have its own exposed api?

How should this work in case if not one point but many are exposed? When does each module have its own exposed api?

no way, in this case, you can import additional types

I agree. I don't like how it works now. You need to think about the best approach to transfer preload contracts to the renderer. However, I don't like the idea of describing all the apps in one place.
I want the preload to be flexible. That in it there could be both one and several modules. And each module could expose one or more APIs.
🤔🤔🤔🤔🤔

For example:
// preload.ts
export const ipc = {
  on: ipcRenderer.on,
  send: ipcRenderer.send,
  invoke: ipcRenderer.invoke,
};

contextBridge.exposeInMainWorld("ipc", ipc);

// another-preload.ts
export const logger = {
  info: logger.info,
  warn: logger.warn,
  error: logger.error,
};

contextBridge.exposeInMainWorld("logger", logger);

// renderer.d.ts
declare type IPC = typeof import("../preload/preload").ipc;
declare type Logger = typeof import("../preload/another-preload").logger;

declare interface Window {
  ipc: IPC;
  logger: Logger;
}

declare const ipc: IPC
declare const logger: Logger;

// or (global only)

declare const { ipc }: typeof import("../preload/preload");
declare const { logger }: typeof import("../preload/another-preload");


Observing only specific properties

What can be done if observable is applied to 3 different vars Nd need to provide observer to target variables instead of observing all 3

Every observable has a $raw property, which points to the underlying non-reactive raw object (the one passed to the observable() function.) You can use this to fine tune observability in two ways.
#1 Example: Use $raw in observers
import { observable, observe } from '@nx-js/observer-util'

const person = observable({ age: 20 })
observe(() => console.log(`${person.name}: ${person.$raw.age}`))

// this logs 'Bob: 20'
person.name = 'Bob'

// this won't log anything as the observer uses the non-reactive `$raw` object to access `age`
person.age = 33

#1 Example: Use $raw at observable mutations
import { observable, observe } from '@nx-js/observer-util'

const person = observable()
observe(() => console.log(person.name))

// this logs 'Bob'
person.name = 'Bob'

// this won't log anything, mutating the $raw object doesn't trigger observers
person.$raw.name = 'John'

I hope this helps. I plan to improve tests and the docs in the next days. I will boost this section a bit too.
Thanks for the issue 🙂

Well Thanks for the reply  , you have done tremendous job I appreciate it . It would be nice if we find a way to pair observer Nd observable neatly for eg like Mobx  Observables Nd observer
Thanks

One way might be using observer function like
observer('TARGET PROPERTY TO WATCH',fn())
Thanks


feat: underlined button

WIP
This PR adds a button that looks like a link. It is given the variant text. All relevant snapshots were updated.
Also, the button is now used for the ProjectInfo component and enables entering the editing state.

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Compiling a simple C++ program against the snap build fails

Note: For convenience, the following report is also expressed in a failing GitHub actions workflow.
Trying the following on Ubuntu 20.04:
sudo apt-get -y install build-essential
sudo snap install root-framework
make

fails with this minimal Makefile:
default:
	g++ -ggdb -Wl,--no-as-needed `root-config --libs --ldflags` `root-config --cflags` analysis.C -o analysis

and this minimal program:
#define analysis_cxx
#include <TFile.h>

int main() {
  TFile foo("foo.root", "RECREATE");
  return 0;
}

with the following error:
2021-08-09T17:55:18.0191215Z g++ -ggdb -Wl,--no-as-needed `root-config --libs --ldflags` `root-config --cflags` analysis.C -o analysis
2021-08-09T17:55:18.0767497Z mkdir: cannot create directory ‘/run/user/1001’: Permission denied
2021-08-09T17:55:19.3374273Z mkdir: cannot create directory ‘/run/user/1001’: Permission denied
2021-08-09T17:55:22.6204821Z /usr/bin/ld: warning: libxxhash.so.0, needed by /snap/root-framework/252/usr/local/lib/libCore.so, not found (try using -rpath or -rpath-link)
2021-08-09T17:55:22.6208117Z /usr/bin/ld: warning: libROOTNTuple.so, needed by /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so, not found (try using -rpath or -rpath-link)
2021-08-09T17:55:22.6237494Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so: undefined reference to `ROOT::Experimental::Detail::RColumn::MapPage(unsigned long)'
2021-08-09T17:55:22.6254088Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so: undefined reference to `ROOT::Experimental::RNTupleDescriptor::FindFieldId(std::basic_string_view<char, std::char_traits<char> >) const'
2021-08-09T17:55:22.6263163Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so: undefined reference to `ROOT::Experimental::Detail::RFieldFuse::ConnectRecursively(unsigned long, ROOT::Experimental::Detail::RPageSource&, ROOT::Experimental::Detail::RFieldBase&)'
2021-08-09T17:55:22.6265838Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so: undefined reference to `ROOT::Experimental::RNTupleDescriptor::GetFieldZeroId() const'
2021-08-09T17:55:22.6268044Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so: undefined reference to `ROOT::Experimental::Detail::RFieldBase::GenerateValue()'
2021-08-09T17:55:22.6270403Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so: undefined reference to `ROOT::Experimental::RNTupleDescriptor::GetQualifiedFieldName[abi:cxx11](unsigned long) const'
2021-08-09T17:55:22.6272302Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libCore.so: undefined reference to `XXH64_canonicalFromHash'
2021-08-09T17:55:22.6273645Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libCore.so: undefined reference to `XXH64'
2021-08-09T17:55:22.6276070Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so: undefined reference to `ROOT::Experimental::Detail::RPageSource::Create(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, ROOT::Experimental::RNTupleReadOptions const&)'
2021-08-09T17:55:22.6280151Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so: undefined reference to `ROOT::Experimental::Detail::RFieldBase::Create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
2021-08-09T17:55:22.6282411Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libCore.so: undefined reference to `XXH64_hashFromCanonical'
2021-08-09T17:55:22.6284346Z /usr/bin/ld: /snap/root-framework/252/usr/local/lib/libROOTDataFrame.so: undefined reference to `ROOT::Experimental::Detail::RPageSource::GetNEntries()'
2021-08-09T17:55:22.6285471Z collect2: error: ld returned 1 exit status
2021-08-09T17:55:22.6286156Z make: *** [Makefile:2: default] Error 1
2021-08-09T17:55:22.6291583Z ##[error]Process completed with exit code 2.

Thanks for the feedback!
Generally, the snap isn't intended to be used with makefiles like this because the container like properties just don't make it particularly suitable. However in the case of the example above, a makefile is probably unnecessary.
I believe having functions called main() in ROOT is best left avoided, so assuming you instead have
#define analysis_cxx
#include <TFile.h>

int root_test() {
  TFile foo("foo.root", "RECREATE");
  return 0;
}

saved in a file called root_test.c ; you can then just run
root root_test.c
and it'll run.
If did want GCC explicitly for e.g performance or debug symbols, take a look into ACLiC which would use the GCC bundled with the snap to run it with maximum runtime performance, e.g, root root_test.c+
Since GCC ships alongside the snap, you probably don't need the build-essential package unless something else in your workflow required it.
Hopefully this is suitable enough for you, and if it isn't, I'd probably suggest using the Conda package of ROOT instead which also does a good job at providing a ROOT environment on Ubuntu, but has less caveats makefiles and integration with other third party tools.

@MrCarroll Thanks for the great feedback!
Sadly, using the approach without main() is not suitable in my case. This minimal case is a reproducer only — the actual issue is with a small program meant for students to use to analyse data, and it relies on allowing the students to pass parameters in more easily (passing arguments is a bit of a hassle with ACLiC, especially when students are still beginners with shell escaping).
They develop their program once, then call it several times with different arguments — the argument parsing is already prepared for them in the main() function we provide.
I hit this issue the first time with this year's students, since they followed the official install instructions and the different applicability of the different packages for the different use cases is not shown there, so they chose to install the snap and hit this exact error. So if the snap is not meant to be used to compile programs against it, I can advice them not to use it, which also solves this bug report :wink:.
Unless you want to clarify this in the install instructions? I found the Snap to be very well suited for most other use cases.

I'd probably suggest using the Conda package of ROOT instead which also does a good job at providing a ROOT environment on Ubuntu, but has less caveats makefiles and integration with other third party tools.

This is just a side-note, but the Conda package also fails for this use case when following the installation instructions to the letter (unless I missed something):
https://github.com/conda-forge/root-feedstock/issues/139

It could be worth asking on the ROOT forums whether there's an approach that might help here, they're usually pretty quick to respond and happy to help.
The snaps inability to integrate with makefiles is documented on the blog post the apps listing on the Snap Store, but admittedly it's a lot of writing and people might simply skim read or not care for it. It's also unfortunate because sometimes the reality is more nuanced, and there are approaches that can work but the effort involved might not be worth telling people to bother vs just using another packages/approach/etc.
In this instance, if the snap is working well for them generally otherwise (which is lovely to hear) but this one scenario is a blocker, it might be worth revealing some secrets, which is you can directly access a Bash environment in the snaps container like this
snap run --shell root-framework.
In this environment, they'll be constrained by the snaps sandboxing and limited to the binaries it ships with (due to the mount namespace used internally). While make isn't shipped at the moment, I could try ship it if it's helpful for you to have.
Regardless, it means you could do this
snap run --shell root-framework
g++ -ggdb -Wl,--no-as-needed `root-config --libs --ldflags` `root-config --cflags` analysis.C -o analysis
./analysis

Assuming the g++ could be replaced with make if it shippable, would this seem acceptable to you?

The snaps inability to integrate with makefiles is documented on the blog post and the apps listing on the Snap Store both of which the install page link to, but admittedly it's a lot of writing and people might simply skim read or not care for it. It's also unfortunate because sometimes the reality is more nuanced, and there are approaches that can work but the effort involved might not be worth telling people to bother vs just using another packages/approach/etc.

You are completely right, of course — this is one of the cases in which there is no short answer, so many users will just skip over the text. But indeed I can confirm it is nicely explained in the Snap description :-).
snap run --shell root-framework
indeed works fine! I tried these in another workflow:
echo "g++ -ggdb -Wl,--no-as-needed `root-config --libs --ldflags` `root-config --cflags` analysis.C -o analysis" | snap run --shell root-framework
echo "./analysis" | snap run --shell root-framework

This would even allow to "wrap" this so students would not have direct contact with it (but then, the snap run --shell is also quite easy to get used to).
Thanks for this insight into the internals of snaps! I am well aware of mount namespaces, different container runtimes etc., but never got around looking into the commandline tools concerning snaps, so it's nice to see it's so easy to get a shell in the snap environment.

Assuming the g++ could be replaced with make if it shippable, would this seem acceptable to you?

Indeed, that would be very helpful!
The students were already quite happy to install ROOT with a single "click" and be able to draw histograms or use the Tree viewer, so especially in case make could be added, this would make the Snap completely useful for them for our use case :+1: .

I've uploaded a new revision of the snap with build-essential built in now, so make should be available and hopefully it'll work for your use case. Snaps update automatically but on the off-chance your students need the update sooner they should be able to run sudo snap refresh.
If there's anything else I can do to help feel free to get in touch, feedback from the target audience itself is rare so anything good or bad is hugely beneficial in understanding what can be improved!
Cheers

@MrCarroll Many many thanks, that was blazingly fast! I can confirm it works like a charm.
I currently only have two students working on the labclass, but the next gruops will arrive for the winter term, so this will be put to good use then :smile:.
So thanks a lot for this, it is very helpful, and I'll be sure to come back if another use case or feedback pops up — the students will make sure to try all sorts of things ;-).
Cheers and thanks again!

Hi Olifre, in the latest revisions of the snap I've added some basic wrappers I thought you might be interested in.
There's now root-framework.cmake, root-framework.make, and root-framework.run. This might be a little nicer for your use case in that you can probably avoid the snap run --shell wrapping from earlier, and you could potentially make use of either snap aliases (e.g: sudo snap alias root-framework.make root-make to have it in $PATH system-wide) or Bash aliases, if they make sense.
e.g with your test action:
- name: Test compiling
        run: |
          root-framework.make
      - name: Run
        run: |
          root-framework.run ./analysis
          ls -la

The root-framework.run just calls exec "$@" in Bash, in the container, so you can pass other commands (e.g gcc) or filenames (scripts/binaries).
To anyone else who might be viewing this, I can't really advise people use these for production use, this probably makes sense in a teaching environment where the supervisor knows to e.g make clean && make whenever the snap might happen to automatically update, but for production use, there's probably better options :).
Anecdotally, there's enough bundled in the ROOT snap to build a minimally functional version of Geant4.

@MrCarroll Many many thanks, this is indeed very helpful! For any small lab student projects (compiling a short single-file analysis), this is extremely helpful.
I've now also added this as a testcase to https://github.com/olifre/root-install-test and can confirm it works as advertised. It will surely be a help to many students, and I will also make sure to advice them not to use this for production use.
Thanks again! :rocket: :smile_cat:


Publish the theme to hyper store : )

Hi 😸 👋
I am a collaborator of hyper and hyper-site. The theme that he made seems very valuable to me, it should be in a hyper store so that everyone can see it.
These are the steps to publish your theme. If you have questions or problems, let me know. I will be happy to help you.
Have a good day ❤ 🙉

Great suggestion! I'll do that today.

Created pull request https://github.com/zeit/hyper-site/pull/56.


Feature/add biomotion csv

Adds biomotion.csv to .../analysis/ChickData/
Adds "biomotion" to docstring in nett.py
re-does closed PR #135

LGTM. Don't forget to squash and merge 🙂
Done & done, thanks @Zach-Attach!


Telecommand to fetch the current active agenda

This PR is for creating a telecommand that prints out the active agenda in a JSONL format
I achieved this by:

Looped through the entire agendas and counted the active agendas to find the total active and printed the number out
Looped through the entire agendas again, parsed the data into a string, and used the LOG_message to display the results
The outputted data is: slot_num,  tcmd_channel, timestamp_sent and timestamp_to_execute. I tried using the tcmd_idx but it was not printing out a value hence I decided to use the slot_num instead.

Let me know if there is a better way to do this and I would appreciate your review.

It looks like there's some merge conflicts. Can you please pull the latest version of main, and then rebase your branch to main first? Thanks!

Okay, Im trying to resolve the conflicts as we speak

Ohh shoot. I see that. It must have come to when I was rebasing the branch last night. I will migrate the functions and code into agenda_telecommand_defs.c/h

I also noticed in line 185-189 when we are converting the uint64_t to a string, for the tssent_str we are passing the .timestamp_to_execute instead of the .timestamp_sent. This is in the TCMD_execute_telecommand_in_agenda function in telecommand_executor.c file.
I am not sure if this was done intentionally or it was a mistake.

Currently working on addressing the changes. I will message when I am done

PR is ready for your review

Ohh nice, thats a cool feature of the LOG_message. What was the indentation problem? My apologies for still not seeing it.
Ill squash and merge

See the indentation changes made here: https://github.com/CalgaryToSpace/CTS-SAT-1-OBC-Firmware/pull/161/commits/a48b026aef033d518852b1eaf0fa675793b2be6e, if you're curious

Ahhh I see, the indentation is with LOG_message. Ill try and do it in the future.


[Dropdown] Fix horizontal position with additional classes #8572

Fix https://github.com/zurb/foundation-sites/issues/8572

[Dropdown] Horizontal position does not work with additional classes

Thanks @maggo :clap: . BTW beautiful profile picture

Awesome! Thank you :tada:


Fix open_mfdataset() dropping time encoding attrs

Description

Closes #308

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings
[x] Any dependent changes have been merged and published in downstream modules

If applicable:

[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass with my changes (locally and CI/CD build)
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have noted that this is a breaking change for a major release (fix or feature that would cause existing functionality to not work as expected)

Since the fix is only a couple lines, I wonder if it makes sense to go with Option 2 and just fix this in the xcdat.open_mfdataset function? It might make sense to keep it in _postprocess_dataset() if there were instances where the encoding wasn't handled correctly during an xcdat.open_dataset, but I don't think this should

Thanks for the input. I agree, _postprocess_dataset() is a reusable function so the logic for time encoding should be coupled to open_mfdataset() where it is needed. I just pushed a commit to follow option 2.

I don't view this as an urgent PR – so it might also make sense to fix the broken test (which > looks like a surprising amount of work?).

I marked this as critical because it TemporalAccessor requires .encoding attrs (specifically "calendar"), which is not properly set with xr.open_mfdataset().
A possible quick fix to the test is to have two minimal, dummy .nc dataset with just a time axis and coordinates. It probably needs to be generated outside of xarray. I'll figure this out, and then merge this PR.

Codecov Report

Merging #309 (86760e7) into main (4c51879) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main      #309   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           14        14
  Lines         1170      1187   +17
=========================================
+ Hits          1170      1187   +17

Impacted Files
Coverage Δ

xcdat/dataset.py
100.00% <100.00%> (ø)

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