[Enhancement Request] Fine-Grained GTID Support for Improved Read-After-Write Performance

Background

The current implementation of the read_after_write consistency feature in the system relies on waiting for the execution of the last global transaction identifier (GTID), indiscriminately applying this method across SQL operations regardless of their data dependencies. This broad-stroke approach leads to unnecessarily high latency and decreased throughput for read-after-write operations, particularly when these operations do not interact with the same table. The lack of differentiation significantly hinders performance, especially in use cases where operations could otherwise proceed in parallel without data consistency issues.
Proposal
Implement Table-Level Read-After-Write Support: Introduce the capability for the system to intelligently discern operations across different tables, allowing for parallel processing of read-after-write operations where there are no direct data dependencies. This refinement is anticipated to substantially lower wait times for operations not confined to the same table, enhancing responsiveness.
Provide Configuration Options for Global and Table Levels: Offer users the ability to adjust read-after-write settings specifically for global and table levels. This granularity in configuration would empower users to tailor performance optimization strategies more precisely to their application's operational characteristics and requirements.
Performance Analysis for Global and Table Level Settings: Undertake a comprehensive analysis to evaluate the performance implications of utilizing global versus table-level settings for read-after-write operations. The insights gained from this analysis would equip users with the knowledge to make informed decisions, optimizing their configurations for either broader or more targeted performance improvements based on their specific scenarios.

Proposal For Read-After-Write Performance Improvement
Introduction
Hi, I find this project very cool and want to be a contributor, I write this proposal based on the ReadAfterWrite Consistency Document, and the changes I make are marked in Bold or Delete Line.
This is only a preliminary version, and I hope that I can fully discuss the optimization logic with community members before designing the code implementation, looking forward to your reply : )
Goals

Session Level ReadAfterWrite: Ensure read requests get latest write in the same client connection.
Instance Level ReadAfterWrite: Ensure read requests get latest write in the WeSQL WeScale Instance.
 Implement Table-Level Read-After-Write Support.

Design Details
Step 1: Get GTID after write operation without extra network round
Starting from MySQL 5.7, the MySQL protocol implements a mechanism to collect the GTIDs to be sent over the wire in the response packet. This feature assists us in acquiring GTIDs without introducing further network rounds.
To enable the feature:

Client needs to set Capability flag CLIENT_SESSION_TRACK when connecting to MySQL via mysql protocol. This will enable MySQL to send the tracking information back to the client.
Client also needs to issue SET @@SESSION_TRACK_GTIDS = 'OWN_GTID' to indicate MySQL to return GTID in the OK packet. This system variable tracks the last DML and DDL commit GTID.

Step 2: Manage the latest GTID and update time for each table in the last t senonds
We can use struct LatestGTIDManager to manage the latest GTID and update time for each table.
The code below is just used to illustrate the method:

// LatestGTIDEntry represents an entry in the LatestGTIDManager with the table name, GTID, and the time it was updated.
type LatestGTIDEntry struct {
	GTID     string
	UpdateTime time.Time
}

// LatestGTIDManager manages the latest GTID and update time for each table.
type LatestGTIDManager struct {
	latestGTIDs map[string]LatestGTIDEntry // Key is the table name, value is the LatestGTIDEntry struct.
	expireTime  time.Duration               // The expiration time for GTID entries.
	mu          sync.RWMutex               // Mutex for read-write synchronization.
	wg          sync.WaitGroup             // WaitGroup to wait for the cleanup goroutine to finish.
}

// NewLatestGTIDManager creates a new instance of LatestGTIDManager.
func NewLatestGTIDManager(expireTime time.Duration) *LatestGTIDManager {
	return &LatestGTIDManager{
		latestGTIDs: make(map[string]LatestGTIDEntry),
		expireTime:  expireTime,
	}
}

// UpdateGTID updates the latest GTID and update time for a given table.
func (m *LatestGTIDManager) UpdateGTID(tableName, gtid string) {
	m.mu.Lock()
	defer m.mu.Unlock()
	m.latestGTIDs[tableName] = LatestGTIDEntry{
		GTID:     gtid,
		UpdateTime: time.Now(),
	}
}

// GetLatestGTID retrieves the latest GTID for a given table.
// If the table is not found or the GTID has expired, it returns an empty string and false.
func (m *LatestGTIDManager) GetLatestGTID(tableName string) (string, bool) {
	m.mu.RLock()
	defer m.mu.RUnlock()
	entry, ok := m.latestGTIDs[tableName]
	if !ok || time.Now().Sub(entry.UpdateTime) > m.expireTime {
		return "", false
	}
	return entry.GTID, true
}

// startCleaner starts a goroutine to periodically clean up expired GTID entries.
func (m *LatestGTIDManager) startCleaner() {
	m.wg.Add(1)
	go func() {
		defer m.wg.Done()
		ticker := time.NewTicker(m.expireTime)
		defer ticker.Stop()
		for {
			select {
			case <-ticker.C:
				m.mu.Lock()
				now := time.Now()
				for tableName, entry := range m.latestGTIDs {
					if now.Sub(entry.UpdateTime) > m.expireTime {
						delete(m.latestGTIDs, tableName)
					}
				}
				m.mu.Unlock()
			}
		}
	}()
}

// Stop waits for the cleanup goroutine to finish.
func (m *LatestGTIDManager) Stop() {
	m.wg.Wait()
}

Depends on the consistency level, the LatestGTIDManager may be initialized in the client’s session or a global memory data structure.
// Initialize LatestGTIDManager with an expiration time of 10 minutes.
gm := NewLatestGTIDManager(10 * time.Second)
gm.startCleaner()

Step 3: Store the GTID in WeSQL WeScale sessions
After parsing the response packet and get the GTIDs, WeSQL WeScale will store them in the memory.

If the operation is a write operation, the LatestGTIDManager will update the latest GTID and write time for the table has be written.

gm.UpdateGTID("my_table", "abcdefg-1234567-890")

Depends on the consistency level, the GTIDs may be stored in the client’s Session or a global memory data structure.

When a read operation happens, we will utilize the LatestGTIDManager to get the Latest_GTID_for_Table_to_be_Read.
Two situations will occur at this time:

The table has been updated in the last t seconds, we get its Latest_GTID_for_Table_to_be_Read, and enter the Step 4.
The table has NOT been updated in the last t seconds, the information for this table has been cleaned up by LatestGTIDManager, at this point, in a radical way, since the last write to the table has been at least t seconds, it can be considered that the last write to the table has been completed from every follower, we can just pick a follower and read it.

Later read operations will utilize GTIDs stored in WeSQL WeScale’s memory, to ensure retrieval of data that was previously written. See belowing steps for more details.
Step 4: Select a MySQL follower for reading
A CLUSTER_GTID_EXEUTED memory data structure is matained in WeSQL WeScale’s memory, it contains’s all the @@global.gtid_executed  values from the cluster. The CLUSTER_GTID_EXEUTED is updated by the health-check module periodically, and obviously it will be lagging.
Therefore, GTIDs from step1 will update CLUSTER_GTID_EXEUTED constantly.
During routing phase of a read operation, it will use the GTID (from session or global memory data structure) to pick a MySQL instance based on CLUSTER_GTID_EXEUTED.

During routing phase of a read operation, it will use the Latest_GTID_for_Table_to_be_Read (from LatestGTIDManager stored in session or global memory) to pick a MySQL instance based on CLUSTER_GTID_EXEUTED.

As long as the picked MySQL instance containes the Latest_GTID_for_Table_to_be_Read, the read operation can be directly forwarded to the MySQL instance.
Step 5: Ensure write requests have been propagated to the follower MySQL
All the follower MySQL instances may be lagging, or the CLUSTER_GTID_EXEUTED may be out-of-date for whatever reasons. It is possible that no follower (expect leader, it always holds all the data) is available for a read operation in Step 4.
We can either send the read operation to the leader, or send the read operation to the follower with a WAIT_FOR_EXECUTED_GTID_SET prefix. WAIT_FOR_EXECUTED_GTID_SET function will keep waiting until a GTID is executed on the follower or until times out.
We can use multi-statement to save one network round:
-- for example, if user's SQL is: select * from t1;

-- the actual SQL sent to follower may be a multi-statement like this:
select WAIT_FOR_EXECUTED_GTID_SET('ab73d556-cd43-11ed-9608-6967c6ac0b32:7', 3);select * from t1;

We need to handle the mysql protocol carefully to use the multi-statement, otherwise the mysql connection may be broken.

Thank you for your interest in this topic. If you would like to proceed, please feel free to send an email to<EMAIL_ADDRESS>Your understanding is correct, and we can discuss the implementation details further. We should consider the scalability of the implementation because this feature fundamentally analyzes the dependency between two SQL. The basic approach is at the table level, and we will implement a more fine-grained dependency detection.

Cool! I have sent you an email about the idea of dependency detection , I'll take some more time to read the source code carefully and look forward to discussing it with you further!

Hi Terry,
没错，这个项目是目前OSPP的项目，你可以尝试先拉代码跑通wescale，如果想获取更多资料尽可能的了解wescale可以加我的微信：wanttowin399，并且我们考虑使用最新的filter功能来实现这个feature。
祝好
geray
Terry Gao @.***> 于2024年4月30日周二 23:48写道：

Cool! I have sent you an email about the idea of dependency detection ,
I'll take some more time to read the source code carefully and look forward
to discussing it with you further!
—
Reply to this email directly, view it on GitHub
https://github.com/wesql/wescale/issues/472#issuecomment-2085730565, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ALUJHBQWKMRXGDUYKMO4A63Y764LTAVCNFSM6AAAAABFUZLBO2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBVG4ZTANJWGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hi, I am very interested in this issue. Yesterday, I sent an email outlining some of my thoughts and ideas. I look forward to the opportunity to discuss them with you further.Thank you for your time and consideration!


Content type 11542 support and updates to meet lwm2m 1.0 spec GA

While attempting to run against Leshan, I noticed that the content type 11542 wasn't supported by awa client.  This is a change that was made for LWM2M 1.0 GA release.  Anyone seeing this?
Also, does anyone know what the plans are to integrate changes to support the updated and GA version of the LWM2M 1.0 spec that was released this week?
Thanks
Maya

Hi @cobynano, most people in Imagination are working only with Awa and our own cloud-based DeviceServer, so we've not yet hit the problem you're seeing.  It's probably fair to say that we've not yet reviewed the changes since the 20160407 version, although clearly this is something that needs to be addressed.  As always, pull requests are gratefully received, so if there's something you're hitting then we'll quickly review any PRs. Otherwise, I think we're likely to start looking at changes in this version within the next few weeks.  As an aside, are you aware of some document that lists the differences in this spec version?
Specifically on the content-type issue you're seeing here, it should be pretty quick to fix up so we'll probably address it in the next couple of days.

BTW, we will add support for recognising/deserialising 11542/11543 but we will initially leave the default for any messages sent from clients as 1542. This should allow people some time to update any other devices/infrastructure as needed before we switch the default option for new messages.  It looks like Leshan still allows clients to connect with OLD_TLV_CODE.

@boyvinall when Imagination was an OMA member, I had access to their documents in Word format. This made it easy to do a "diff" (via Word) and see what changes were introduced in each new revision. There was an archive of these files on the SAN. This diff is possible to do with the public PDF versions, although may require a lot more messing around with file formats, depending on how the PDF has been created.

Thanks @DavidAntliff.  I did previously find a stash of docs but was wondering if there was some nice migration guide etc.  Guess we'll have to expend a few more brain cells and keystrokes 😃

@cobynano I managed to register against the public Leshan server and read/write some objects. When I attempted bootstrap though, I got a "no bootstrap config" 4.00 response back. I've not tried the Leshan bootstrap before, so maybe just something simple I missed there.  Anyway, hopefully this gets you past your hurdle. Shout if it doesn't.


added pvc for extensions dir

added pvc for extensions dir so that custom NARs persist on restart

Thanks a lot! It was faster like this as I'm not home and in between flights.


Question: How to copy components from one PMT to another

Hi,
I don't know if this can be done, so I describe the problem:

I want to "copy" some components from one PMT of one service, to the PMT of another PMT. All without touching the source PMT.

What's the best solution to do it? I'm testing with the sections plugin but I don't know how to use it for this objective.
Any idea?

Hi @lelegard ,
Perhaps a simple solution can be this:

A plugin (existing or new) that can "move" a sub-stream from one PMT to another PMT, including all descriptors associated with this sub-stream.

What do you think? This has sense, or it's possible in another way?
I like to know your opinion.
Regards.

It is possible to write such a plugin, but it I have no time to do so.
The simplest way is to extract the two PMT in XML format, do the modification in the XML and reinject the modified one.

It is possible to write such a plugin, but it I have no time to do so.

Don't worry! I don't expect that you implement anything that we request.

The simplest way is to extract the two PMT in XML format, do the modification in the XML and reinject the modified one.

Thank you for this tip! I'll use it.
Regards.


Avoid invalid repository name

Closes #161
May not be required if/when thir pull request is merged in the provider:

integrations/terraform-provider-github#1806

No longer needed since provider v5.32.0


chap12.2 notebook iris data nn train

Hi,
In chapter 12, using iris data train model using torch.nn raise such errors:
RuntimeError: expected scalar type Long but found Int

If
y_train = torch.from_numpy(y_train).long()
instead y_train = torch.from_numpy(y_train),
it's ok.


segmentation fault when running multiple runtimes

I was trying to run multiple instances of deno_core::JsRuntime within one tokio task, but got:
    Finished dev [unoptimized + debuginfo] target(s) in 0.03s
     Running `target/debug/test1`
[Ok(()), Ok(())]
[Ok(()), Ok(())]
[Ok(()), Ok(())]
Segmentation fault (core dumped)

# Cargo.toml
[package]
name = "test1"
version = "0.1.0"
edition = "2021"

[dependencies]
deno_core = "0.202.0"
futures = "0.3.28"
tokio = "1.31.0"

// main.rs
use deno_core::{error::AnyError, op, Extension, ModuleCode, ModuleSpecifier, Op};

#[op]
async fn op_sleep_ms() {
    // not await-ing here works fine
    tokio::time::sleep(std::time::Duration::from_millis(100)).await;
}

pub async fn run(name: String, module: ModuleCode) -> Result<(), AnyError> {
    let extensions = Extension {
        ops: std::borrow::Cow::Borrowed(&[op_sleep_ms::DECL]),
        ..Default::default()
    };
    let mut js_runtime = deno_core::JsRuntime::new(deno_core::RuntimeOptions {
        extensions: vec![extensions],
        ..Default::default()
    });

    let module_path = ModuleSpecifier::from_file_path(name).unwrap();
    let mod_id = js_runtime
        .load_main_module(&module_path, Some(module))
        .await?;
    let result = js_runtime.mod_evaluate(mod_id);

    js_runtime.run_event_loop(false).await?;
    result.await?
}

async fn real_main() -> Result<(), AnyError> {
    loop {
        // 0..1 works fine
        let tasks = (0..2)
            .map(|i| {
                run(
                    format!("/just_sleep_{i}.mjs"),
                    ModuleCode::Static("Deno.core.ops.op_sleep_ms().await"),
                )
            })
            .collect::<Vec<_>>();
        println!("{:?}", futures::future::join_all(tasks).await);
    }
}

fn main() {
    tokio::runtime::Builder::new_current_thread()
        .enable_io()
        .enable_time()
        .build()
        .unwrap()
        .block_on(real_main())
        .unwrap();
}

tested on: rustc 1.71.1 (eb26296b5 2023-08-03) and rustc 1.73.0-nightly (1b198b3a1 2023-08-13)
the fault occurs in v8__Isolate__New()
Is this supposed to work? Is there a good other way to run multiple completely isolated scripts in parallel?
(I'd prefer to avoid creating new thread per runtime, however running multiple scripts/modules within the same runtime would be fine, as long as each has a separate Global object)

I'm not aware of any v8 limitations on multiple isolates in one thread, but I would strongly recommend against it as we may end up internalizing the the tokio runtime inside of the isolate for performance reasons at some time in the future.
JsRealm is intended to separate scripts from each other (they use a v8::Context internally), but realms are still in development and may have some sharp edges w.r.t. performance and security. For now, the best supported way to run parallel isolates is one-per-thread.

Thank you for the JsRealm tip. I don't see the performance nor security as an issue (all scripts will be written internally and will mostly be waiting for API responses). There will be 0 - 300 of them running in parallel, though.
I tried it and it works, but the implementation is kinda crazy :slightly_smiling_face: and I'm still missing the ability to "pause" and "cancel" individual JsRealms.
Feel free to close this issue (unless you'd like to keep it open with regards to the segfault). Thanks again

@jsen- I think your problem maybe related to this issue: https://github.com/denoland/rusty_v8/issues/639 .
The root cause is, v8::Isolate::new() included a call of v8::Isolate->Enter() and the drop() method of Isolate included a call of v8::Isolate->Exit(), which required isolates in a thread must destruct in last-in-first-out order.
If this is your case, then the  simplest way to fix it is just use FuturesOrdered and its push_front() method to ensure JsRuntimes destruct in reversed order of create. But I recommend you just remove the Enter() and Exit() pair in rusty_v8 source code, as it has no sense in single thread embedding situation.
And as a deno_core user, I really don't like the idea to encapsulate tokio and thread-related things into deno_core. This way will limit the usage of deno_core in a very narrow scope. I beg you core developers to re-consider this idea @mmastrac .

We at https://github.com/dust-tt/dust are running in the same issues. We would like to run isolated pieces of JS code running deno but moving to recent version of deno we run into seg faults as the JsRuntime gets dropped.
The natural next step was to move to one jsRuntime shared through channels but it requires isolatioon and it seems that the Realms API was removed?

Just popping in to 2nd @abadcafe
Inlining the tokio runtime into JsRuntime would definitely narrow the core's possible uses and hurt downstream crates

Same issue here. We tried using FuturesOrdered but that didn't work. For reference https://github.com/denoland/rusty_v8/issues/1628


Bug

You can't even hit any note. it doesn't let you.

Nvm i somehow fixed it

for anyone looking for info that finds this issue: make sure your safe frames are 10. that's the default and setting them very low might not let u hit notes and u might have done so by accident


Replace carriage returns with new lines when parsing csvs

This address issue https://github.com/bahaaldine/angular-csv-import/issues/8. It adds support for parsing CSV files that terminate lines with carriage returns.

tks


Draft:UI-schemes examples

I've added JSON-schemas examples
https://jsfe.js.org/Sink/AllFeatures

Since this should appear in web only closing MR


config/v1/types_cluster_version: Add capabilties properties

Roughly as described in the enhancement.  I've left inclusionDefault out of the status structure, because I'm using an explicit, exhaustive list for include and exclude there.  The exhaustive excluded list will provide a convenient set of "things you don't have right now, but which you could choose to install right now", so admins don't have to guess about their options there.  With the exhaustive list, reflecting the default setting didn't seem to add much useful information.  And we can always add that property to the status structure later if we do decide it would be useful.
I have not created a constant with the status.conditions[] type that will be used to declare "we are installing a capability you have not asked for, because we don't support uninstalling capabilities, and that one was tainted in via your cluster's history".  We can come back and declare that constant later if we want, although that's somewhat complicated by the fact that we use ClusterOperatorStatusCondition, and the new condition type would not be something that makes sense for ClusterOperator.

@openshift/api-reviewers, can you take a look?  With Ben satisfied, I don't think there's anyone else in particular we're waiting on.

/lgtm
/approve
/hold
holding in case @bparees wants something more for his comment.  Let's say we need an answer by EOD 2/9
/assign @bparees

/hold cancel
/lgtm

this is being consumed by a FF team, so overriding the no-FF labels
/label qe-approved
/label docs-approved
/label px-approved


Add Portugol language

Added Portugol language, a pseudocode written in portuguese.
Description

This language is raising and it's hard to find .por files in the web, so I hope I will help all with this PR.
Checklist:

[X] I am adding a new language.

[X] The extension of the new language is used in hundreds of repositories on GitHub.com.

Search results for each extension:

https://github.com/search?q=extension%3Apor+portugol+NOT+nothack&type=code

[X] I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):

[URL to each sample source, if applicable]

Sample license(s):

[X] I have included a syntax highlighting grammar: https://github-lightshow.herokuapp.com/ Portugol Example
[ ] I have updated the heuristics to distinguish my language from others using the same extension. (Not applicable)

Please address the issues with the grammar and the use the script/add-grammar to re-add it. This will then fix the two other points I've made regarding the URL in the vendor/README.md file and the license file.

I can't use the script add-grammar I don't know why. :(

I can't use the script add-grammar I don't know why. :(

How are you executing the script? Can you copy+paste any error messages you see after trying to run the script?

I can't use the script add-grammar I don't know why. :(

How are you executing the script? Can you copy+paste any error messages you see after trying to run the script?

I'm not sure how to run the script, does file have any extension?

I can't use the script add-grammar I don't know why. :(

How are you executing the script? Can you copy+paste any error messages you see after trying to run the script?

How did I should to execute it?

I can't use the script add-grammar I don't know why. :(

How are you executing the script? Can you copy+paste any error messages you see after trying to run the script?

How do I execute this script? It just doesn't work!

I can't use the script add-grammar I don't know why. :(

How are you executing the script? Can you copy+paste any error messages you see after trying to run the script?

When I try to install the dependencies, it returns with this error:
PS C:\Users\l_lui\Documents\Codes\linguist> bundle exec rake samples
Could not find gem 'yajl-ruby (~> 1.4)' in locally installed gems.
Run `bundle install` to install missing gems.
PS C:\Users\l_lui\Documents\Codes\linguist> bundle install
Fetching gem metadata from https://rubygems.org/.......
Resolving dependencies...
Using rake 13.0.6
Using bundler 2.3.7
Using public_suffix 4.0.6
Using coderay 1.1.3
Using dotenv 2.7.6
Using faraday-em_http 1.0.0
Using faraday-em_synchrony 1.0.0
Using faraday-excon 1.1.0
Fetching byebug 11.1.3
Fetching charlock_holmes 0.7.7
Using faraday-httpclient 1.0.1
Using multipart-post 2.1.1
Fetching escape_utils 1.2.1
Using faraday-net_http 1.0.1
Using ruby2_keywords 0.0.5
Using faraday-net_http_persistent 1.2.0
Using faraday-patron 1.0.0
Using racc 1.6.0
Using faraday-rack 1.0.0
Using faraday-retry 1.0.3
Using mini_mime 1.1.2
Using thor 1.2.1
Using parallel 1.22.1
Using pathname-common_prefix 0.0.1
Using ruby-xxHash <IP_ADDRESS>
Fetching rugged 1.4.2
Using tomlrb 1.3.0
Using method_source 1.0.0
Using minitest 5.15.0
Using mocha 1.13.0
Using plist 3.6.0
Using rake-compiler 0.9.9
Using addressable 2.8.0
Using faraday-multipart 1.0.3
Using nokogiri 1.13.3 (x64-mingw-ucrt)
Fetching yajl-ruby 1.4.1
Using pry 0.14.1
Using faraday 1.10.0
Using reverse_markdown 1.4.0
Using sawyer 0.8.2
Using octokit 4.22.0
Installing charlock_holmes 0.7.7 with native extensions
Installing escape_utils 1.2.1 with native extensions
Installing byebug 11.1.3 with native extensions
Installing yajl-ruby 1.4.1 with native extensions
Installing rugged 1.4.2 with native extensions
erro: alvo não encontrado: mingw-w64-ucrt-x86_64-libssh2
erro: alvo não encontrado: mingw-w64-ucrt-x86_64-cmake
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/byebug-11.1.3/ext/byebug
C:/Ruby31-x64/bin/ruby.exe -I C:/Ruby31-x64/lib/ruby/3.1.0 -r
./siteconf20220326-3104-8e2541.rb extconf.rb
creating Makefile

current directory:
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/byebug-11.1.3/ext/byebug
make DESTDIR\= clean
current directory:
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/byebug-11.1.3/ext/byebug
make DESTDIR\=
make failedNo such file or directory - make

Gem files will remain installed in
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/byebug-11.1.3
for inspection.
Results logged to
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/extensions/x64-mingw-ucrt/3.1.0/byebug-11.1.3/gem_make.out

  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:70:in `rescue in run'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:67:in `run'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:44:in `block in make'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:36:in `each'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:36:in `make'
C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:63:in `block in
build'
  C:/Ruby31-x64/lib/ruby/3.1.0/tempfile.rb:317:in `open'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:26:in `build'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:161:in `build_extension'
C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:195:in `block in
build_extensions'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `each'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `build_extensions'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/installer.rb:853:in `build_extensions'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/rubygems_gem_installer.rb:71:in
`build_extensions'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/rubygems_gem_installer.rb:28:in `install'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/source/rubygems.rb:204:in `install'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/installer/gem_installer.rb:54:in
`install'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/installer/gem_installer.rb:16:in
`install_from_spec'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/installer/parallel_installer.rb:186:in
`do_install'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/installer/parallel_installer.rb:177:in
`block in worker_pool'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:62:in `apply_func'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:57:in `block in process_queue'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:54:in `loop'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:54:in `process_queue'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:91:in `block (2 levels) in
create_threads'

An error occurred while installing byebug (11.1.3), and Bundler cannot continue.

In Gemfile:
  byebug

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/charlock_holmes-0.7.7/ext/charlock_holmes
C:/Ruby31-x64/bin/ruby.exe -I C:/Ruby31-x64/lib/ruby/3.1.0 -r
./siteconf20220326-3104-6wagml.rb extconf.rb
which: no make in (/c/Ruby31-x64/bin:/ucrt64/bin:/usr/bin:/c/Program
Files/AdoptOpenJDK/jdk-<IP_ADDRESS>-hotspot/bin:/c/Program Files (x86)/Common
Files/Intel/Shared Libraries/redist/intel64/compiler:/c/Program
Files/Python39/Scripts:/c/Program Files/Python39:/c/Program Files (x86)/Common
Files/Oracle/Java/javapath:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/WINDOWS/System32/WindowsPowerShell/v1.0:/c/WINDOWS/System32/OpenSSH:/c/Program
Files/Git/cmd:/c/Program Files
(x86)/Yarn/bin:/c/Gradle/gradle-7.0.2/bin:/c/Program Files/dotnet:/c/Program
Files/nodejs:/c/ProgramData/UNIVALI/Portugol
Studio:/c/Ruby31-x64/bin:/c/Users/l_lui/scoop/shims:/c/Users/l_lui/AppData/Local/Programs/Python/Python36/Scripts:/c/Users/l_lui/AppData/Local/Programs/Python/Python36:/c/Users/l_lui/AppData/Local/Microsoft/WindowsApps:/c/Users/l_lui/AppData/Local/Programs/Microsoft
VS Code/bin:/c/Users/l_lui/AppData/Local/Yarn/bin:/c/Program
Files/Java/jdk1.8.0_291/bin:/c/Gradle/gradle-7.0.2/bin:/c/Users/l_lui/AppData/Local/Android/Sdk/emulator:/c/Users/l_lui/AppData/Local/Android/Sdk/platform-tools:/c/Users/l_lui/AppData/Local/Android/Sdk/tools:/c/Users/l_lui/AppData/Local/Android/Sdk/tools/bin:/c/Users/l_lui/AppData/Local/Android/Sdk/build-tools:/c/Users/l_lui/AppData/Local/Android/Sdk/emulator:/c/Users/l_lui/AppData/Local/Android/Sdk/platform-tools:/c/Users/l_lui/AppData/Local/Android/Sdk/tools:/c/Program
Files/Java/jre1.8.0_291/bin:/c/Users/l_lui/.dotnet/tools:/c/Users/l_lui/AppData/Roaming/npm:/c/Users/l_lui/Documents/flutter/bin)

***************************************************************************************
*************** make required (apt-get install make build-essential) =(
***************
***************************************************************************************
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby31-x64/bin/$(RUBY_BASE_NAME)

extconf failed, exit code 1

Gem files will remain installed in
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/charlock_holmes-0.7.7
for inspection.
Results logged to
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/extensions/x64-mingw-ucrt/3.1.0/charlock_holmes-0.7.7/gem_make.out

  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:95:in `run'
C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:47:in `block in
build'
  C:/Ruby31-x64/lib/ruby/3.1.0/tempfile.rb:317:in `open'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:26:in `build'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:161:in `build_extension'
C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:195:in `block in
build_extensions'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `each'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:192:in `build_extensions'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/installer.rb:853:in `build_extensions'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/rubygems_gem_installer.rb:71:in
`build_extensions'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/rubygems_gem_installer.rb:28:in `install'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/source/rubygems.rb:204:in `install'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/installer/gem_installer.rb:54:in
`install'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/installer/gem_installer.rb:16:in
`install_from_spec'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/installer/parallel_installer.rb:186:in
`do_install'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/installer/parallel_installer.rb:177:in
`block in worker_pool'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:62:in `apply_func'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:57:in `block in process_queue'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:54:in `loop'
  C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:54:in `process_queue'
C:/Ruby31-x64/lib/ruby/3.1.0/bundler/worker.rb:91:in `block (2 levels) in
create_threads'

An error occurred while installing charlock_holmes (0.7.7), and Bundler cannot
continue.

In Gemfile:
  github-linguist was resolved to 7.19.0, which depends on
    charlock_holmes

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/escape_utils-1.2.1/ext/escape_utils
C:/Ruby31-x64/bin/ruby.exe -I C:/Ruby31-x64/lib/ruby/3.1.0 -r
./siteconf20220326-3104-u3b96u.rb extconf.rb
creating Makefile

current directory:
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/escape_utils-1.2.1/ext/escape_utils
make DESTDIR\= clean
current directory:
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/escape_utils-1.2.1/ext/escape_utils
make DESTDIR\=
make failedNo such file or directory - make

Gem files will remain installed in
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/gems/escape_utils-1.2.1
for inspection.
Results logged to
C:/Users/l_lui/Documents/Codes/linguist/vendor/gems/ruby/3.1.0/extensions/x64-mingw-ucrt/3.1.0/escape_utils-1.2.1/gem_make.out

  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:70:in `rescue in run'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:67:in `run'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:44:in `block in make'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:36:in `each'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/builder.rb:36:in `make'
C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:63:in `block in
build'
  C:/Ruby31-x64/lib/ruby/3.1.0/tempfile.rb:317:in `open'
  C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:26:in `build'
create_threads'

An error occurred while installing escape_utils (1.2.1), and Bundler cannot
continue.

In Gemfile:
  github-linguist was resolved to 7.19.0, which depends on
    escape_utils

When I try to install the dependencies, it returns with this error:

Looks like you missed the first few steps in the CONTRIBUTING.md as you appear to be missing dependencies which should have been installed manually (the brew/apt-get pkgs) and via the script/bootstrap script.

I've gone ahead and fixed the issues I identified. I've also updated the OP to point to the source of the samples.

All good now. 👍

Oh, I totally forgot about this PR, but thank you for fix this! 🤝


Prevent sending same value

Add configuration to prevent sending "the same value" again - pitfall is that data might be outdated between poilling intervals
Alternatively log a warning when potentially "same" values are set.

0.4.8


Compatibility with jfx19

I simply renamed them with the suffix Opt

Any chance this is getting merged soon. @tobiasdiez ? Java 19 will be released in 2 weeks...

@calixtus  jfx != jdk 19 They are independent. Nonetheless, jfx19 will be released in September

The rename looks good to me, but it needs a bit more cleanup before we can merge it. In particular,

Change the documentation (in particular, readme)
Discuss the difference of the easybind methods to the new jfx methods in the method javadoc.

Javafx 19 is here: https://twitter.com/GluonHQ/status/1569648445157146626

For the release notes:
## JavaFX 19 - Breaking Changes

JavaFX 19 introduced new methdods `flatMap`, `map`, `orElse`, `filter` which conflict with the methods from EasyBind. In contrast to the EasyBind implementation they do return `null` and not Optional. Therefore the methods from EasyBind have been renamed with the suffix `opt` to avoid conflicts.
You therefore have to rename the methods in your code to match the renamed.

Thanks!


update patches for 1.26/27

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm
/approve

/lgtm

/retest kubernetes-1-26-test-presubmit

/retest kubernetes-1-26-presubmit

/retest kubernetes-1-26-test-presubmit

/test kubernetes-1-26-test-presubmit


Updating payload of discover API

For Discover API in document_loaders/pebblo file, picking response locally instead of relying on API response from pebblo

Raised new PR https://github.com/daxa-ai/langchain/pull/46.
Closing this


Support x509 certificate based authentication

Would like the app to support x509 certificate based authentication. Thanks.

Sure thing. I will create a feature branch for this and add a custom control for loading the certificate including the password. As soon as there is something testable I will let you know. Then you can test it and provide feedback.

This feature is now implemented and will be available with version 1.6.


Ability to use not only RDBMS

Can you abstract high level commands (from Core library) into interfaces and use them by interface?
This way it is possible to use Azure Tables or any other store not only particular RDBMSs

No, it was a design decision to use SQL directly to provide better performance. I went the way you described at first, but SQL would still be necessary for indices. You can still provide a custom document store implementation like Azure Table, but SQL would still be required for custom queries. So there is no real advantage then.

But Azure Tables don't use SQL.
I just have to implement commands like CreateDocument the Azure Tables specific way.
Is my understanding correct that this high level commands are used by YesSQL?

@xperiandri I think It would be possible to persist your documents in Azure Tables but to query them you still need to use a SQL Server because this is how indexes work (https://github.com/sebastienros/yessql/wiki/Tutorial#creating-a-mapreduce-index). To be honest, I don't see any point to implement support for Azure Tables only for persisting document it can just introduce more issues (no transaction between Azure tables and SQL server).

Any plans to support Cosmos DB :relaxed:


Can I use oath api calls with pyresttest

I saw you had an example of basic authentication in the doc.  Do you know if pyresttest support oath authorization?  If so, do you have an example.
I really enjoy your pyresttest tool.

Thank you, I'm glad you've found it helpful!  Yes, you can do OAuth with PyrestTest, it provides all the necessary components.
The specific code will depend on how your API token is obtained and used, since each provider is a bit different.  But in general, you'll do the following:

Call the authorization API, passing authentication information (basic auth, request body, or headers). 2. For the authorization call above, define an extractor to retrieve the API token and information and store it to a variable for later use in requests.
Use the authorization token in calls, with templated headers to insert it using the variable (or templated URL using it as a query parameter, or templating of a request body if it is supplied there).

Something like this is easy to convert from curl calls to PyCurl:
https://gist.github.com/caspyin/2288960
The only catch to remember is that some APIs will need URL encoded inputs, which PyRestTest doesn't have an automatic filter for (no converter functions to do automatic encoding/decoding, since there hasn't been a call for them yet, so that has to be done manually or by custom extensions).
Does that help answer your question?  If you've got a particular documented API, I can provide some tips about how to do this most effectively with PyRestTest

Thanks so much for the info.  It is very helpful and does answer my question.  I will research the link your provided and do some more debugging with my api call.  I haven't used oauth before so I'm sure it is just a syntax error I have somewhere in the request.

I'm glad that was of some assistance!   Two tips that may be of help:

Turn on verbose mode when running PyRestTest (logging level debug + --verbose argument).  Often that will reveal more information about what is going wrong.
If you're still not sure what is going wrong, try doing the same calls in curl with verbose mode and comparing to the above.  PyRestTest is tightly tied to PyCurl, so the two behave similarly. If curl works but PyRestTest doesn't, the problem is usually a missing header that needs to be explicitly set, or the request body isn't correctly formatted.

Since it sounds like your question is answered, I'm going to close out the issue, if that's okay. But please feel free to add additional comments in here or open a new one if you hit sticking points with the OAuth call!


Unable to complete calibration

First thank you. It is a great project that open so much possibilities.
I am unable to complete the calibration script.  I can not see in the servive debug gui screen the location points.
I am using 1 lighthouse and 1 tracker.
Bellow is the ./calibrate output and the config.json file.
Thanks in advance,
Ortal
./calibrate output:
Info: Available Posers:
Info:      Dummy
Info:      IMU
Info:     *CharlesRefine
Info:      EPNP
Info:      SBA
Info: Totals 5 Posers.
Info: Using 'CharlesRefine' for defaultposer
Info: Available Disambiguators:
Info:     *Charles
Info:      Turvey
Info:      StateBased
Info: Totals 3 Disambiguators.
Info: Using 'Charles' for disambiguator
Info: Loading driver DriverRegPlayback (0x7f8c5ff38b50) (1)
Info: Driver DriverRegPlayback reports status 0
Info: Loading driver DriverRegHTCVive (0x7f8c5ff5b6f0) (2)
Info: Blacklisting -
Info: Vive starting in libusb mode.
Info: Did not find device HMD (0bb4:2c87.0)
Info: Did not find device HMD IMU & LH (28de:2000.0)
Info: Did not find device Watchman 1 (28de:2101.0)
Info: Did not find device Watchman 2 (28de:2101.1)
Info: Successfully enumerated Tracker 0 (6, 3)
Info: Did not find device Tracker 1 (28de:2300.0)
Info: Did not find device Wired Watchman 1 (28de:2012.0)
Info: All enumerated devices attached.
Info: Powered unit on.
Info: Got config data length 1865
Info: Loading config: 7604
Info: Driver DriverRegHTCVive reports status 0
Info: Loading driver DriverRegDummy (0x7f8c5ff60c80) (3)
Info: Driver DriverRegDummy reports status 0
Info: Loading driver DriverRegUDP (0x7f8c5ff61010) (4)
Info: Driver DriverRegUDP reports status 0
Info: Uncalibrated configuration detected. Attaching calibration. Please don't move tracked objects for the duration of calibration. Pass '--disable-calibrate' to skip calibration
Info: Calibration is using TR0
config.json file
"lighthousecount":"1",
"defaultposer":"CharlesRefine",
"disambiguator":"Charles",
"RequiredTrackersForCal":"TR0",
"AllowAllTrackersForCal":"0",
"ConfigPoser":"CharlesRefine",
"TurveyToriDebug":"0"
"lighthouse0":{
"index":"0",
"id":"0",
"mode":"0",
"pose":["0.000000","0.000000","0.000000","0.000000","0.000000","0.000000","0.000000"],
"fcalphase":["0.000000","0.000000"],
"fcaltilt":["0.000000","0.000000"],
"fcalcurve":["0.000000","0.000000"],
"fcalgibpha":["0.000000","0.000000"],
"fcalgibmag":["0.000000","0.000000"],
"PositionSet":"0"
}
"lighthouse1":{
"index":"-1"
}

I don't actually know how to calibrate with just a tracker as I only have the vive and controllers, but I think I remember @jdavidberger saying you could do it with something like...
./calibrate --requiredtrackersforcal TR0 --allowalltrackersforcal 1
Hopefully he can provide some input.

Is there no further output from the calibration run?
The flags @cnlohr mentioned used to be necessary but it now will default into whatever device is plugged in; and the log output correctly seems to be using TR0.
The first gen trackers have a harder time correctly getting OOTX data then any other device. It seems to see all the pulses, but the pulse timings are sometimes off enough to not be able to pass checksums. However, if that is what you were seeing, I'd expect to see a bunch of error messages from OOTX parsing. This output looks like it doesn't see any light data at all.
What does the output look like if you just run
./data_recorder

It should flood you with IMU and lightcap data; if it doesn't there is something goofy with the USB. I'll check my TR0 to make sure its working later; possibly we broke it and didn't notice.
If you are seeing light data, possibly try something like:
./calibrate --disambiguator StateBased --ootx-ignore-sync-error

The first option there uses a different disambiguator, which might be more resiliant to TR0 noise. The second flag ignores sync errors on the OOTX stream, which allows certain sync bits to not derail OOTX. It still does a checksum so if OOTX finishes, even with a bad sync bit somewhere, its very likely the results are correct.

Thank you for all your help.
The problem was because the lighthouse was on mode C. When we change the lighthouse mode to A every thing work OK.
Thanks,
Ortal

@jdavidberger I didn't know the stuff worked with just one lighthouse? Neat?


Make PrettyTime objects @Dependent

Because PrettyTime objects are mutable, it doesn't make sense to have it as a Singleton, since it may bring concurrency issues when the object state is changed in separate threads

I'm not quite sure that @Dependent solves the problem.

I don't see a point of doing @Inject PrettyTime vs new PrettyTime()
You can still inject a PrettyTime instance in a @Singleton or @ApplicationScoped bean and the problem may appear again...
The combination of @Named and @Dependent is inefficient (e.g. every expression receives a new dependent object)

I can understand that keeping it as a Singleton and leave it up to the user to decide if its state works for them or not is okay, but how do we go with different locales x Named in a Qute template?

but how do we go with different locales x Named in a Qute template?

That's a good point. We don't ;-). We would need a proper Qute integration, e.g. a namespace resolver that can access the locale attribute of a TemplateInstance... {prettyTime:format(time)}.

One workaround is having the application produce their own named prettyTime objects, since the existing producer is a @DefaultBean.
How do you suggest we go from here?

At the moment I am leaning towards leaving the injected PrettyTime as a singleton and let the user aware that changing its state will affect all uses of that object.
@gsmet any thoughts?

Added note to README

Also created https://github.com/ocpsoft/prettytime/issues/211 asking PrettyTime to be immutable

I don't know. I hate to say this but I don't really see the point of this extension given this thing is not immutable and apparently it doesn't need anything to work in native mode.

it doesn't need anything to work in native mode

@gsmet this is absolutely not true, we need this to work in native mode:
https://github.com/quarkiverse/quarkus-prettytime/blob/main/deployment/src/main/java/io/quarkiverse/prettytime/deployment/PrettyTimeProcessor.java#L18-L21

I think that it's OK if we document that the shared PrettyTime instance is initialized with the default locale and the System#currentTimeMillis() is used as the reference point.


[aws-cpp-sdk-s3-crt] Fix stuck Get/PutObject and handle errors

This fixes a condition that can cause hang-up: aws_s3_client_make_meta_request may have completed the transfer by the time it returns. This causes a failure in the finish_callback to decrement the reference count of the aws_s3_meta_request (since the internal reference it uses is still NULL, it does nothing), hence Put/GetObject never complete.
The PR also fixes a hang-up when aws_s3_client_make_meta_request returns NULL, which would cause the caller to wait for the completion callback indefinitely.
Resolves #2024, #2076, #2111
Check all that applies:

[X] Did a review by yourself.
[X] Added proper tests to cover this PR. (If tests are not applicable, explain.)
[X] Checked if this PR is a breaking (APIs have been changed) change.
[X] Checked if this PR will not introduce cross-platform inconsistent behavior.
[X] Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

[X] Linux
[ ] Windows
[ ] Android
[ ] MacOS
[ ] IOS
[ ] Other Platforms

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Changes have been absorbed into #2112, please see there.

merged: https://github.com/aws/aws-sdk-cpp/pull/2128


Animation

Hello there SIRS I would love to contribute to this awesome project by adding animations to it, this is my first contribution......I hope to get a reply from you soon Thanks 🙏

That will be good

If you don't mind adding me as a contributor so I can do ma thingy sir


Improve RTN15G tests

Fix #725

@funkyboy what about https://github.com/ably/ably-ios/pull/719#discussion_r188307367?  Do you have any thoughts on why the client is not automatically reconnecting, or am I reading the test incorrectly?

@mattheworiordan Looking at this I am quite sure it only uses the timer and does not honor the "will immediately attempt to reconnect and restore the connection state" part of RTN15a
Will check with @ricardopereira.

Yes, looking at https://github.com/ably/ably-ios/blob/ec182697eb4842f67eb28a30bf80eb038f8545ad/Spec/RealtimeClientConnection.swift#L2212-L2263, which is supposedly testing RTN15a, yet it's not, there is no test for this.

filed an issue about RTN15a here https://github.com/ably/ably-ios/issues/727
Can we merge this?
@mattheworiordan @paddybyers

@funkyboy yes I think so 👍


Add Public Status Page

Add public status page which can be available as read only without Auth!!!

Duplicate of #21 and #4


Removed np.array(list(...)), not needed.

Could be confusing, the important thing is that a list is used in Contours.

As you can tell now it is needed for Python 3 compatibility. I think the np.array part could be removed but the zip object does need to be cast to a list in Python 3.


Cannot describe a certificate copied in a namespace

Bugs should be filed for issues encountered whilst operating cert-manager.
You should first attempt to resolve your issues through the community support
channels, e.g. Slack, in order to rule out individual configuration errors.
Please provide as much detail as possible.

Describe the bug:
Cannot describe a certificate copied in a namespace
kubectl apply -f certificate.yaml # (secret name is 'secret_name')
#copy the certificate in another namespace
kubectl get secret secret_name -n default --export -o yaml | kubectl apply -n other_namespace -f -
kubectl get secrets secret_name --namespace other_namespace # works
kubectl describe certificate secret_name --namespace default # works
kubectl describe certificate secret_name --namespace other_namespace # not found, that's the bug

Expected behaviour:
kubectl describe certificate secret_name --namespace other_namespace should display the certificate info
Steps to reproduce the bug:
see above
Anything else we need to know?:
Environment details::

Kubernetes version (e.g. v1.10.2): 1.14
Cloud-provider/provisioner (e.g. GKE, kops AWS, etc): GKE
cert-manager version (e.g. v0.4.0): 0.10
Install method (e.g. helm or static manifests): helm

/kind bug

This doesn't really have anything to do with cert-manager, it's purely a Kubernetes apiserver thing you're looking at here. I'd double check you have in fact properly copied the Certificate between namespaces there as it seems you may have missed something!


Add check for missing selection set for object types.

Validate that any field that of Object / Interface / Union type must have selection set.
Also add test fixture for recursive data structure for future.
Closes https://github.com/apollographql/apollo-android/issues/2327

Good one.


Fix privileged port access in tests

⚠ This issue has been locked due to age. If you have encountered a recent
problem that seems to be covered by this issue, please open a new issue.
Please include a minimal reproducible example
when opening a new issue.


Support Houdini 20.5+ with Py3.11

Changelog Description
This adds support for Houdini version with Py3.11 like Houdini 20.5.262 which is currently in beta available to all users on an active subscription starting today.
Additional info
Note that the trick for Houdini 20.0.xxx application environment where we prepended the Houdini Python libs to the environment seemed redundant for 20.5.xxx since I got no python library conflicts with AYON so it seemed. However, if you do find anything. You might need something like:
{
    "HOUDINI_VERSION": "20.5.262",
    "PYTHONPATH": [
        "C:/Program Files/Side Effects Software/Houdini {HOUDINI_VERSION}/python311/lib/site-packages",
        "{PYTHONPATH}"
    ]
}

More details on that Houdini 20 workaround here.
There are some other Py3.11 notes to consider, I'm getting e.g. these warnings:
On start:
C:\Users\User\AppData\Local\Ynput\AYON\dependency_packages\ayon_2403061937_windows.zip\dependencies\future\standard_library\__init__.py:65: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses
  import imp
<frozen importlib._bootstrap>:1047: ImportWarning: _SixMetaPathImporter.find_spec() not found; falling back to find_module()

In publisher UI:
E:\dev\ayon-core\client\ayon_core\tools\utils\lib.py:49: DeprecationWarning: QDesktopWidget.screenGeometry(int screen) const is deprecated
  screen_geo = desktop.screenGeometry(screen_idx)
E:\dev\ayon-core\client\ayon_core\plugins\publish\extract_review.py:1905: DeprecationWarning: invalid escape sequence '\g'
  string_value = re.sub(r"^([\+\-])[ ]+", "\g<1>", string_value)
E:\dev\ayon-core\server_addon\deadline\client\ayon_deadline\plugins\publish\submit_harmony_deadline.py:399: DeprecationWarning: invalid escape sequence '\.'
  '}1\.[a-zA-Z]{3}'

Aside of that all the tools do seem to work completely fine.
Testing notes:

Install Houdini 20.5.262
Add the application to settings and your project
Launch within AYON
Everything should work in the integration

@iLLiCiTiT some of those deprecation warnings might be interesting for you to consider?

I don't have 20.5. can't test it.

I don't have 20.5. can't test it.

Do we know anyone else capable of testing - maybe @krishna8008 ?

I'll close this PR and reopen it on seprated ayon-houdini repo once the addon separation has finished.


Using tcmalloc sigbus on x86_64 RHEL 7.4

Hi,
We faced a random core dump with the below trace on RHEL7.4 OS, x86_64 platform. gperftools-2.4-8.el7.x86_64 is installed on the server. Application is trying to allocate memory using malloc(inside trace_malloc),  getting below stack trace.
Program terminated with signal 7, Bus error.
#0  0x00007f4b2c40bdfd in tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**) () from /lib64/libtcmalloc.so.4
#1  0x00007f4b2c40c0aa in tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**) () from /lib64/libtcmalloc.so.4
#2  0x00007f4b2c40c15d in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) () from /lib64/libtcmalloc.so.4
#3  0x00007f4b2c40f1b5 in tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) () from /lib64/libtcmalloc.so.4
#4  0x00007f4b2c41dc9b in tc_malloc () from /lib64/libtcmalloc.so.4
#5  0x00007f4b225f7f41 in trace_malloc (x=)

This is almost 100% certainly some bug in your program. Writing into freed memory could corrupt central free list which can then crash inside tcmalloc. Consider running your program under valgrind or asan.


[Azure Search] New GA data-plane API spec for version 2019-05-06

We are rolling out a new GA API version for the Azure Search data plane. The Swagger specs are copied from 2017-11-11-Preview. Review commits separately to see what the deltas are from that version.
The new specs are in stable directories to reflect the fact that these are the first all-new data plane specs for Azure Search that cover 100% of the REST API surface area. Per our policy for API versioning, we will not introduce any breaking changes to these specs, but may introduce backward compatible changes from time to time as features come out of preview.
FYI @Yahnoosh @arv100kri @shmed @ishansrivastava90 @updixit @natinimni
Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[X] I have reviewed the documentation for the workflow.
[X] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[X] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[X] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Automation for azure-sdk-for-go

Automation for azure-sdk-for-js

Automation for azure-sdk-for-python

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-java

Can one of the admins verify this patch?

I have reviewed this PR and changes look fine. Only the ModelValidation Job is failing. But this is a known issue. So, I will approve this PR. Since this is a data-plane API, does not require a ARM approval.
So, I will be approving and merging this PR now

Expected Net SDK error since we don't auto generate a PR for them,

@sarangan12 You've approved it, but not yet merged it. Is something blocking merging?


I passed the next challenge for decrementing using the same solution.

Challenge Increment a Number with JavaScript has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

var myVar = 87;

// Only change code below this line
myVar = ++myVar;

I cannot reproduce it on
https://www.freecodecamp.com/challenges/decrement-a-number-with-javascript
Please provide some screenshots.

It was on the lesson before the link you sent.  (https://www.freecodecamp.com/challenges/increment-a-number-with-javascript https://www.freecodecamp.com/challenges/increment-a-number-with-javascript)
Here is the screen shot.  I believe I met all 4 requirements, but the 2nd one still shows a red X like I didn’t change the line but I did.
Thank you,
Ed

On Jun 14, 2017, at 12:38 AM, mrugesh mohapatra<EMAIL_ADDRESS>wrote:
I cannot reproduce it on
https://www.freecodecamp.com/challenges/decrement-a-number-with-javascript https://www.freecodecamp.com/challenges/decrement-a-number-with-javascript
Please provide some screenshots.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/freeCodeCamp/freeCodeCamp/issues/15359#issuecomment-308316984, or mute the thread https://github.com/notifications/unsubscribe-auth/AM6h17UJMcFd31rC1vH4wsphE-fVAxMVks5sD2OtgaJpZM4N5XyC.

@Edwardpanas
Please visit this link https://github.com/freeCodeCamp/freeCodeCamp/issues/15359 for the issue on GitHub.
Please clarify the exact steps and posting screenshots on the comments (you can drag and drop images in the comments window).
Email attachments do not reach us.
Thanks.

Also cannot replicate.

Here are the steps with associated screenshots.
STEP 1: start of exercise

STEP 2:  first attempt changing from myVar = myVar + 1; to myVar = myVar++;

STEP 3: second attempt (and should be correct) changing from myVar = myVar + 1; to myVar = ++myVar;.  This solution worked in the decrement exercise  myVar = --myVar; so it should work here, right?

I see what you mean now. Your solution to the decrement exercise shouldn't have worked but it's missing a test. I'll take this up.

@Edwardpanas thanks a lot for the additional clarifications, thanks @dhcodes for taking this up!
Happy coding!

It was on the lesson before the link you sent.  (https://www.freecodecamp.
com/challenges/increment-a-number-with-javascript)
Here is the screen shot.  I believe I met all 4 requirements, but the 2nd
one still shows a red X like
On Jun 14, 2017, at 12:38 AM, mrugesh mohapatra<EMAIL_ADDRESS>wrote:
I cannot reproduce it on
https://www.freecodecamp.com/challenges/decrement-a-number-with-javascript
Please provide some screenshots.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/15359#issuecomment-308316984,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AM6h17UJMcFd31rC1vH4wsphE-fVAxMVks5sD2OtgaJpZM4N5XyC
.

@Edwardpanas According to the directions though, the way you solved it (while possible) is not in keeping with the concept trying to be taught, namely that you can increment or decrement a variable without reassigning it by simply doing myVar++; or myVar-- so really your solution should not have worked on either. Do you agree @raisedadead? I don't want to remove some actual functionality of JS but in this case the point is to teach this specific concept, no? I wrote my Regex fix accordingly.

It was on the lesson before the link you sent.  (https://www.freecodecamp.
com/challenges/increment-a-number-with-javascript)
Here is the screen shot.
On Jun 14, 2017, at 12:38 AM, mrugesh mohapatra<EMAIL_ADDRESS>wrote:
I cannot reproduce it on
https://www.freecodecamp.com/challenges/decrement-a-number-with-javascript
Please provide some screenshots.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/15359#issuecomment-308316984,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AM6h17UJMcFd31rC1vH4wsphE-fVAxMVks5sD2OtgaJpZM4N5XyC
.

@Edwardpanas it seems you trying to send the screenshot to us. please use GitHub for upload screenshot. we can't see your screenshot though email.

Thank you for the clarification @dhcodes on this answer.  This section on JavaScript basics is a fairly simple review so some of my solutions have been overthinking the question.  I submitted the simpler increment code and it cleared the exercise for me.  Thanks again for your help!


Add DHCP or domain name filtering blacklist and whitelist

hello,
as the use of VPN grows every day, the need for a whilelist&blacklist for domain names arises. this is in addition to the IP filtering already available. since Domains IPs can be changes, we can't track the IPs of the domains we want to blacklist or whitelist every time it changes.
please implement this feature.

as your request totally makes sense, it is beyond the scope of vpn software.
vpn software does not deal on domain level. the most close is dns server you use. you can set up to block some domains on dns level

another approach my be browser plugin which communicates with vpn software

as your request totally makes sense, it is beyond the scope of vpn software.
vpn software does not deal on domain level. the most close is dns server you use. you can set up to block some domains on dns level

how can i block on DNS level?

as your request totally makes sense, it is beyond the scope of vpn software.
vpn software does not deal on domain level. the most close is dns server you use. you can set up to block some domains on dns level

how can i block on DNS level?

Your /etc/hosts file
<IP_ADDRESS>  facebook.com

See here https://github.com/StevenBlack/hosts

since this was very much needed and was beyond Softether VPN scope, i managed to do it using other simple tools.
blocking on DNS level is harder, however it's still possible by changing the following steps to work with ipset instead.
Summary
To block or allow VPN traffic only (Inbound or Outbound) without messing with other system traffic or softether configuration do the following:
1- install xtables as described here
https://www.xmodulo.com/block-network-traffic-by-country-linux.html
2- create a user group specific for softether as described in here
https://askubuntu.com/questions/45072/how-to-control-internet-access-for-each-program
3- change the softether .service file to include the created group as described in here
https://www.golinuxcloud.com/run-systemd-service-specific-user-group-linux/
4- now you can control softether inbound and outbound traffic with iptables and support both ipranges, Geolocation, and domain names. ipset domain names described in here
https://unix.stackexchange.com/questions/557388/firewall-rules-based-on-domain-name-instead-of-ip-address
please note that I only put the URLs as references to the commands needed. you'll need to change them according to your needs.


Feature: determine what's changed in the overlay copy compared to the git source

Issue Type

Feature request

Gilt details
gilt --version
gilt, version 1.1.0

Gilt installation method: pip

Desired Behaviour
Not sure how best to implement this considering the whole point of Gilt is overlaying repos, but it'd be nice to be able to determine what's changed in the overlay copy compared to the git source.
My use case in particular is a dotfiles repo. I use Gnu Stow to create symlinks from my home folder's dotfiles to my checked out repo.
W/o Gilt, I can just do a git diff to see what's changed. Now I'm trying to overlay a 'work' repo on top of it via Gilt but I lose that ability to easily see what's changed.

Yeah, Gilt unfortunately doesn't create a commit per overlay.  it attempts to bring in all sources so that the user can git diff and confirm all is good.
With submodules it's difficult to know what actually changed, which was one of the reasons we kept the working directory dirty after overlay.  Honestly, I don't see us changing this functionality any time soon, since this is fairly engrained in our development process.  However, I do appreciate the issue.


user testing showed confusion with install instructions

Users were confused by Conda,

not clear what a virtual environment is,
why it has a name that they can choose freely, and
that they need to open Jupyter notebooks from within the environment.

on second thought, this is not typically explained in developer-focused materials from comparable open-source projects.


whatanime.ga has moved to trace.moe

Hello, I'm (was) the owner of whatanime.ga
A few days ago, the .ga domain was taken down by freenom T_T,
so the site has moved to https://trace.moe
if you are still actively supporting this project, please update the URL, thank you m(_ _;)m

That's some bullshit my dude.
Hit me up if you need help paying for the domain.
(Not the hosting though, I'm not rich).

Fixed


Clicking on a Control Node in the editor will always open the 2D view, even on a subviewport texture on a 3D mesh

Godot version
4.0.1.stable
System information
Windows 10
Issue description
This is less of a bug and more of an oversight, but when clicking on a control node, the editor will always open the 2D view, without checking if the control is actually part of main viewport or if it's visible. This quickly becomes annoying when working with UI on subviewport textures, because everytime you click on any of the node it will open the 2D window, making you having to switch back to the 3D window to see what you are  doing.

Steps to reproduce

Create a 3D Mesh, with has a material which has a subviewport texture and assign it to a subviewport you created
Add any control node to the subviewport
Click on the control node

Minimal reproduction project
Project.zip

Is there a reason we don't allow 2D controls to show in the 2D view when they're in a subviewport? It makes working on UI controls in 3D worlds super fiddly needing to drag the UI out of the subviewport, get it the way I want then drag it back in.

Can confirm, this is annoying in 4.1.1. This seems to be the only equivalent of Unity's "World Space" UI that I could find, and this workflow is difficult to work in for long.


Server crash on 1.21

Bug description
https://pastebin.com/raw/1Mj86ZY2
Steps to reproduce
/
Expected behavior
No response
Actual behavior
No response
Relevant logs
No response
Minecraft version
1.21
TemplateMod version
1.3.0
Other information
No response
Check list

[X] I have verified that the issue persists in the latest version of the mod.
[X] I have searched the existing issues and confirmed that this is not a duplicate.

Yes, thank you for reporting this. It seems I did not adequately check the mixins and the validity of their signatures.
I hope to fix this soon, do you disable end gateways with the mod? I could disable the crash with just that feature not present, as I lack the development environment needed to inspect the updated vanilla Minecraft code...
It seems that (hopefully) previous versions still work.
I will fix this as soon as possible.

Thank you! 😊
I was not disabling end gateways with this mod, the crash doesn't allow me to use any feature yet.
I should have included Carpet extensions with rules for the End dimension.

Hopefully my recent commits will stop the game from crashing. The broken feature will still not work, but I will fix that when I can.
I hope you continue to enjoy using the mod, if you have any feature requests, don't be afraid to open an issue with the feature request template.
(I will be making a release soon)

Tested, mod works now. Thank you 😄


When I define field names with numbers in front of them, there is an error when running

env := map[string]interface{}{
"1greet":  "Hello, %v!",
"names":   []string{"world", "you"},
"sprintf": fmt.Sprintf,
}
program, err := expr.Compile(`sprintf(1greet, names[0])`, expr.Env(env))
if err != nil {
	panic(err)
}

output, err := expr.Run(program, env)
if err != nil {
	panic(err)
}

fmt.Print(output) // Hello, world!

=== RUN   TestExpr2
--- FAIL: TestExpr2 (0.00s)
panic: bad number syntax: "1g" (1:10)
| sprintf(1greet, names[0])
| .........^ [recovered]
panic: bad number syntax: "1g" (1:10)
| sprintf(1greet, names[0])
| .........^

Variable names can not begin with a number, so the parser will believe they are numbers and raise the error you have noticed.  If those variables are defined in your environment, and you need to access them, you can wrap in $env, like $env["1greet"].

@mdmcconnell is right. Use $env:
$env["1greet"]


Mark failing reports with Do Not Open

Overview
Two reports (Percent Facilities With Multiple Matches, and
Average Affiliations) timeout and cause site outages.
We are updating their names to reflect that they should not be opened
until such time as we have time for a full fix of the reports.
Connects #1389
Demo

Testing Instructions

Run ./scripts/server and login as<EMAIL_ADDRESS>View reports and confirm that the two reports have 'Do Not Open' at the beginning of their names.

Checklist

[x] fixup! commits have been squashed
[x] CI passes after rebase
[x] CHANGELOG.md updated with summary of features or fixes, following Keep a Changelog guidelines

Thank you for reviewing!


Check failure message of policy that fails with issuer mismatch

Signed-off-by: Ville Aikas<EMAIL_ADDRESS>
Summary
Make sure the test that fails on non-matching issuer checks the error message to make sure it's the right error.
Ticket Link

Fixes
Release Note

Codecov Report

Merging #1815 (df429db) into main (b9152aa) will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1815      +/-   ##
==========================================
- Coverage   32.78%   32.75%   -0.04%
==========================================
  Files         147      147
  Lines        9327     9327
==========================================
- Hits         3058     3055       -3
- Misses       5913     5915       +2
- Partials      356      357       +1

Impacted Files
Coverage Δ

pkg/cosign/tuf/client.go
61.68% <0.00%> (-0.82%)
:arrow_down:

Continue to review full report at Codecov.

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


Wrapped plugins

Merging this PR will publish the following release:

4.0.0 (2017-12-29)
Bug Fixes

prevent version-to-git-tag from returning a bad git-tag (e8485b0)

Features

use plugin wrappers to allow passing plugins/options (ad76226), closes #13

BREAKING CHANGES

This package no longer provides semantic-relese-monorepo/github, a
decorated version of @semantic-release/github. The plugin wrappers
allow us to do away with that hack, letting users to wrap any plugin

Merging this PR will publish the following release:

4.0.0 (2017-12-29)
Bug Fixes

prevent version-to-git-tag from returning a bad git-tag (e8485b0)

Features

use plugin wrappers to allow passing plugins/options (ae47456), closes #13

BREAKING CHANGES

This package no longer provides semantic-relese-monorepo/github, a
decorated version of @semantic-release/github. The plugin wrappers
allow us to do away with that hack, letting users to wrap any plugin


New Quickstart - Collect and Activate Customer Data Using Tealium's Snowflake Streaming

Added new quickstart guide for Tealium + Snowflake integrations.

New commit addressing some the comments given in review


[BUG] Can't download bloxstrap

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
Whenever I try to open the Bloxstrap-v2.5.4.exe file all that pops up is a white screen

Can you ensure that you have the latest version of the .NET runtime installed? https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.29-windows-x64-installer?cid=getdotnetcore

Issue has been awaiting clarification for over a month, closing as stale. If you have anything further to add, just respond and I'll reopen.


Concurrent IE11 execution fails intermittently

Are you requesting a feature or reporting a bug?
Reporting a bug
What is the current behavior?
We have a battery of 30+ tests. Sometimes IE explorer fails to open enough browsers while executing concurrently and tests execution hang. Only 3 or 4 windows open and nothing happens on console. The browsers display the "Connected" message but remain idle (E.G: http://<IP_ADDRESS>:1268/browser/idle/XouBY5T) I presume because those are waiting until enough browsers are open, but that never happens.
After some timeout, the following message is displayed on console:
ERROR Unable to establish one or more of the specified browser connections. This can be caused by network issues or remote device failure.
And the open IE windows close
What is the expected behavior?
The amount of browsers declared after the -c option should open. Tests execution should start without problems
How would you reproduce the current behavior (if this is a bug)?
Run a battery of 30+ tests concurrently on IE11 (Between -c 5 and -c 10 should be enough).
After trying multiple times, enough windows are opened and the tests start, but it's not clear what can be causing this issue.
It's not a memory/resources problem. After trying some more times, the tests start normally.
Provide the test code and the tested page URL (if applicable)
Tested page URL:
Test code

Specify your

operating system: Windows 10 PRO 1803 - OS Compilation 17134.112
IE version: 11.112.17134.0 - Update version: 11.0.70 (KB4230450)
testcafe version: 0.20.3
node.js version: v8.9.4

Hi @berrutti
This problem is related to IE11. It takes a lot of RAM and CPU.
There is an issue - Restart browser if it became unresponsive - that should help to fix it. Track this issue to be aware about progress.


Support block inserts

Dxf-parser nearly supports this, so we should work on blocks in three-dxf in tandem.

Dxf-parser now supports insert entities so all we need to do is write the code to draw them in three-dxf

I have added some basic support for blocks. Still need to handle colors properly so there is a little more work to do here.

I'm going to close this and open a new issue for the remaining task


Draft: Allow skipping a partition by raising a specific exception - [opened]

Merges skip-partition-on-error -> main
Migrated from GitLab: https://gitlab.com/meltano/sdk/-/merge_requests/258

This PR is a proposal to address https://gitlab.com/meltano/sdk/-/issues/282
The change proposed here is fully opt-in:

a new exception type SkipPartitionAPIError is added, which tap developers can raise to signify "this partition cannot be synced, but other partitions might, so continue with the next one".
unless that exception is raised, the tap's behaviour is unchanged,
in particular, if FatalAPIError is raised, the tap will stop immediately.

Typical use case for this exception would be a server-side error on the API part which cannot be resolved with the tap, other than by retrying at a later date. We are seeing quite a lot of these on the github API, with no clear pattern or cause. In most cases, retrying within a few seconds is enough, but sometimes it is not. In that case, the entire tap run is currently cancelled, which seems a fairly high price to pay.
Obviously happy to have feedback on this and adjust to make it as useful as possible.
Closes #282

Bump. We should revive this (or go for https://github.com/meltano/sdk/issues/1597) based on errors found in tap-messagebird (slack).

Another PR has been started: https://github.com/meltano/sdk/pull/1844


Using the gradle-gradle-plugin to download all licenses

As part of the FINOS Project Contribution, we need to validate all transitive licenses being distributed in the releases published in Maven Central.
I checked out this repo and added https://plugins.gradle.org/plugin/com.github.hierynomus.license-report to  ./build.gradle:
buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath 'io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.22.0'
        classpath "gradle.plugin.com.hierynomus.gradle.plugins:license-gradle-plugin:0.15.0"
    }
}

apply plugin: 'io.codearte.nexus-staging'
apply plugin: "com.github.hierynomus.license-report"

When I run gradle downloadLicenses I see that ./build/license-dependency.html is created (at root level), but not for all sub modules; could you help me understanding how to apply this command also for sub modules?
When this works, we could add a CircleCI task the continuously checks for suspicious or unknown licenses across all transitive dependencies.
Thanks in advance!

Hi @maoo,
We did not managed to get the license-report plugin working with our project. Instead, we used the Gradle-License-Report that works pretty well, and natively examines subprojects as well. Also, PR Builder integration was pretty simple with this plugin as we only had to run gradle checkLicense from CircleCI (example of report here).
See PR https://github.com/SymphonyPlatformSolutions/symphony-api-client-java/pull/417

Hi @maoo,
We did not managed to get the license-report plugin working with our project. Instead, we used the Gradle-License-Report that works pretty well, and natively examines subprojects as well. Also, PR Builder integration was pretty simple with this plugin as we only had to run gradle checkLicense from CircleCI (example of report here).
See PR https://github.com/SymphonyPlatformSolutions/symphony-api-client-java/pull/417

Great work, thanks @symphony-thibault . Closing issue.

Great work, thanks @symphony-thibault . Closing issue.


heap profiler shows no memory usage

When running the heap profiler (c++ application) and checking the data with pprof, all the function/method calls are displayed.  However, the memory usage (columns 1 & 4) show 0.0.  Percentages are shown in columns 2,3,5 but I am unsure of how these percentages are calculated and what they mean in the context of 0.0MB memory usage.

We're not supporting (perl-based) pprof version that is included with gperftools. Please use modern pprof implementation from github.com/google/pprof


Async GELF Handler

I simply inherited GELFHandler to obtain an aynchronous logging handler class.
That's mandatory to achieve non-blocking logging features when DNS resolution fails or timeout (eg. due to internet connection unavailability), blocking the logging.log function until the resolution timeout, even when using UDP GELF Protocol.
It starts a background consumer thread that pull-out log records from a thread-safe queue, filled on standard logging-write operations.

This seems a huge improvement. Any reason not to make this the default?

My only thought is queue should be bounded, say 10k slots. If its full new logs should drop. This setup would OOM your entire fleet if the log server went down.

The log server down doesn't affect send method, due to UDP protocol
features.
The maximum size of the queue (initialized with max_size=0) it's bounded
only by ram size.
Anyway I can pass a queue_max_size as constructor parameter, and use a
put_no_wait
function (on log send), so it will drop log messages if the queue  is full.
Regards

Thanks for the PR. I believe you can implement the AsyncHandler as a mixin and use it for both datagrams and streams. Also, I agree that the queue should be bound and drop messages when full; this sort of load-shedding is precisely what you want when your system is unstable and generates many logs that put additional pressure.
For now, I don't feel comfortable making this the default, tho. I think we should put it in the lib and update the docs. Please make sure we don't break Python3 support.

@severb just to give it a try in prod, I threw it up in a repo
https://github.com/listingmirror/async-gelf-handler
Should work for both python2 and python3 (But I have nothing using python2 to validate)

I think this approach is too simple, and it needs a bit more work to actually work. The above handler I posted causes a lock on uwsgi, even with lazy-app mode on. Something isn't quite right.
If you look at what logstash is doing, it is a bit more involved

I think uWsgi is blocking due to thread starting in __init__ method.
That's useful for INI file log inizialization, but attach the log handler by code (addHandler), you can call  start outside the init.
I'm using this handler inside a standalone python application, so I don't have tested it inside uWsgi.
Ok I'll write tests ASAP and I'll fix the import style according to PEP8.

@lrodorigo any update on this?

Closing the PR because no response from the author. @lrodorigo : Raise another PR once your test cases are ready.
Thanks.


Change type on AWS::Route53::HostedZone Name

Use Token[String] instead of String so we can put Ref values there.
Originally submitted against master, resubmitting against develop.

Note that this change is also in #9 now... so unless you choose to reject that one and keep this one, then you can just accept the other PR and close this one.  Leaving open for now so you can choose.


Got EAP Request for Identity

一开始一直EAP Failure，加了-m md5之后提示EAP Success，但是一直报Got EAP Request for Identity，也上不去网
EAP Auth Start
Got EAP Request for Identity
Got EAP Request for Allocation
EAP Success
Got EAP Request for Identity
Got EAP Request for Identity
Got EAP Request for Identity
Got EAP Request for Identity
Got EAP Request for Identity

这是心跳包，正常现象。


Disable scroll zoom

Partial fix to #37
What I would suggest is to add a button to "reset" the map to initial view.
What do you think @Driesvanransbeeck  ?

This is excellent thanks (again!)!
Keep in mind not to spend too much time on the mapbox gl related code here because we plan to replace the map on that page with the data-portal one: https://github.com/bikedataproject/website/issues/43

I will merge this into develop so we see the effect and try it out on https://staging.bikedataproject.org/datamap#8.76/50.7673/4.3726

This is excellent thanks (again!)!
Keep in mind not to spend too much time on the mapbox gl related code here because we plan to replace the map on that page with the data-portal one: #43

Noted, will have a look at the data portal then


Could you please give an example of Image Classification Training using TN?

" The construction of these special MPS tensor networks amounts to the training of the model, the details of which can be found in the work of Stoudenmire and Schwab [35], as well as in our TensorNetwork implementation [47]."
I have read the paper and found that the tensor network can be used in Image Classification.But I do not know the detail. And the "TensorNetwork on TensorFlow: An Application to Machine Learning" is not available now.
So could you please give an example of Image Classification Training using TN(TT format)?

Yes! We have an intern who got a working example using gradient decent.
We should get it out soon. Our implementation uses the new tf.vectorized_map that is only available on the nightly build.

Wow!That's really a wonderful work!Looking forward to your release~

This exists now in the examples/MPS_classifier directory


Switch to ECR Private for git sha tagged images

Description of Problem
Currently we use a combination of ECR Public and Github to store our Docker images. On ECR Public we tag the image as the github sha and update the task definition so that ECS can easily rollback to previous versions. On Gitub we push the latest and staging tags. This causes our ECR public repository to keep growing on every merge to develop or master branch it will create a new tag. AWS doesn't support lifecycle management for ECR public repositories.
Solution
Switch to ECR Private and push the docker tags tagged with the github sha. Then we can configure a ECR lifecycle policy (https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html) to remove the old tags.
On Github we only need to push the latest tag. In the future when we start releasing versions of Somleng we can also push versioned tags to github too.
Additional Info
# Delete all images from repository
# Need to run this multiple times because it doesn't handle pagination
# This is needed so Terraform can delete the public repository as it won't delete it if there are existing images.

require "json"

repository_name = "somleng-nginx"

images = `aws-vault exec administrator -- aws ecr-public describe-images --region us-east-1 --repository-name #{repository_name} --query 'imageDetails[*].imageDigest' --output json`
images = JSON.parse(images)
images.each_slice(100) do |batch|
  image_ids = batch.each_with_object([]) do |digest, result|
    result << {
      "imageDigest" => digest
    }
  end

  cli_json = {
    "registryId": "somleng",
    "repositoryName": repository_name,
    "imageIds": image_ids
  }.to_json

  p "executing: aws-vault exec administrator -- aws ecr-public batch-delete-image --region us-east-1 --cli-input-json '#{cli_json}'"
  `aws-vault exec administrator -- aws ecr-public batch-delete-image --region us-east-1 --cli-input-json '#{cli_json}'`
end

PR
https://github.com/somleng/somleng/pull/1050
Todo

[x] Add ECR Lifecycle Policy
[x] Tag github sha images with prefix to match against lifecycle policy
[x] Make sure the lifecycle policy keeps the last x versions

Closed by #1050 and #1058


Persona and Human not working

I placed text files in the correct directory (under .memgpt/human & .memgpt/persona in my own windows user account) the files were detected and loaded properly as I could see the information on first time load of MemGPT. I can also see the details with /memory however they do not appear to have an effect. The system randomly gives itself a name each time and claims it does not know my name. I was sure to follow the examples and format the .txt files the right way.
I also tried this with the default examples (sam & sam_pov) and got the same results. It knows the information but does not apply it.
I have tried to troubleshoot and even started completely fresh (deleted all saved states and config files) and the experience is the same.

From discord:

Since the discussion about the persona and human elements not working I'm writing to follow up and let you know that it appears to have been a 'wrapper' issue. First with no wrapper (default gets applied) the dysfunctionality exists. Second with the wrong wrapper applied the issue exists but some functionality (recognition of persona and human) is present but still broken. With the proper wrapper, in this case 'airboros' everything works perfectly.


Does it exist any detail documents about caffe2?

I have seen the API document located at here. Did I find the wrong place for API document or it just like that?
I think it is a steep cliff for caffe2 newer with such kind of document. :(

HI @huyangc - there is definitely a learning curve and we understand. However, your best starting point is the tutorials and other content on caffe2.ai. For example
https://caffe2.ai/docs/intro-tutorial.html
https://caffe2.ai/docs/tutorial-models-and-datasets.html
https://github.com/caffe2/caffe2/blob/master/caffe2/python/tutorials/MNIST.ipynb
Then, once you understand the basic parts of the framework (init_net, predict_net, predictor, workspaces, etc), you can look at the operator catalog at
https://caffe2.ai/docs/operators-catalogue.html
This is not exhaustive (we're working on that), but it should give you a good sense of what operators you can use in Caffe2. Also feel free to ask specific questions here.
Hope that helps.

I agree that the caffe2 official site needs more document and information.
as a new comer, is it helpful to look into the caffe1 website for understanding caffe2 ?

@orionr Thanks for your detail reply first!
I have read these documents before I ask the question here. I asked this question was just because when I  want to know the input and output of some operators like brew.concat, it will be a little confused with that document. So I refer to the source code directly. It is very painful when you need some usages, and then you go to the source code first. And it may because I am not familiar with caffe2 as well.
And I am so happy to hear that you are working on the documents!


No loader is configured for ".node" files: node_modules/sharp/build/Release/sharp-darwin-arm64v8.node

Possible install-time or require-time problem

[x] I have read and understood all of the documentation relating to installation.
[x] I have searched for known bugs relating to this problem in my choice of package manager.

You must confirm both of these before continuing.
Are you using the latest version of sharp?

[ ] I am using the latest version of sharp as reported by npm view sharp dist-tags.latest.

If you cannot confirm this, please upgrade to the latest version and try again before opening an issue.
I am not using latest version because it breaks my deployment on Vercel. Instead, I am using version 0.32.6 as a workaround that was suggested by multiple people in issue #3870.
If you are using another package which depends on a version of sharp that is not the latest,
please open an issue against that package instead.

[x] I am using Node.js with a version that satisfies ^18.17.0 || ^20.3.0 || >=21.0.0
[ ] I am using Deno
[ ] I am using Bun

I am on v20.11.0
If you cannot confirm any of these,
please upgrade to the latest version
and try again before opening an issue.
Are you using a supported package manager and installing optional dependencies?

[x] I am using npm >= 9.6.5 with --include=optional
[ ] I am using yarn >= 3.2.0
[ ] I am using pnpm >= 7.1.0 with --no-optional=false
[ ] I am using Deno
[ ] I am using Bun

If you cannot confirm any of these, please upgrade to the latest version of your chosen package manager
and ensure you are allowing the installation of optional or multi-platform dependencies before opening an issue.
 (y) y

  System:
    OS: macOS 14.2.1
    CPU: (8) arm64 Apple M1 Pro
    Memory: 82.03 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.11.0 - /usr/local/bin/node
    npm: 10.4.0 - /usr/local/bin/npm

I'm lost on using sharp right now. I can't use the latest release because it breaks my deployment on vercel saying error Could not load the "sharp" module using the linux-x64 runtime similar to issue #3870. So i followed their suggestion to downgrade which now has not broken my deployment on Vercel but it breaks it locally and I cant develop anything without getting this error: No loader is configured for ".node" files: node_modules/sharp/build/Release/sharp-darwin-arm64v8.node
How to fix?

No loader is configured for ".node" files

It looks like you're using some form of code bundler, please see https://sharp.pixelplumbing.com/install#bundlers

I am not using latest version because it breaks my deployment on Vercel. Instead, I am using version 0.32.6 as a workaround that was suggested by multiple people

This was due to a bug in Next.js - please upgrade to Next.js version 14.1.0 or later.

No loader is configured for ".node" files

It looks like you're using some form of code bundler, please see https://sharp.pixelplumbing.com/install#bundlers

I am not using latest version because it breaks my deployment on Vercel. Instead, I am using version 0.32.6 as a workaround that was suggested by multiple people

This was due to a bug in Next.js - please upgrade to Next.js version 14.1.0 or later.

Hi lovell! Thanks for your response. I am using Astro.js but don't have any Vite file (which is the bundler that i think that Astro is using. How do i go about this? I'm a little new to this stuff so any help and direction i can get is great.
In regards to your second comment about upgrading Next.js, how and why would I do that since I am on Astro? Or is there an Astro-specific fix instead?
Thanks again for your help.

Sorry, I saw Vercel and misinterpreted your initial comment as relating to Next.js. :sweat_smile:
My understanding of Astro is that it bundles sharp for you and should "just work".
Are you trying be doing something extra beyond Astro's built-in image optimisation? If so, Astro exposes the underlying Vite config at https://docs.astro.build/en/reference/configuration-reference/#vite so the info at https://sharp.pixelplumbing.com/install#vite should help.

Hey, as an update:
Still no luck on this so I've submitted an issue on Astro's repo for this. https://github.com/withastro/astro/issues/10297
In that issue submission, I created a minimum reproduction of the issue with a public link to the repo and a public link to it hosted on Vercel.
Hopefully we're able to get a solution.

I agree with the comments on https://github.com/withastro/astro/issues/10297 that this will be due to an out-of-date version of @vercel/nft. I'll close this issue and we can track the required change to Astro at https://github.com/withastro/astro/issues/10297


[text analytics] make sure to remove all changes to ta testcase after deployed to canary

Made changes and merged back into master


User is not able to edit an amount which are before decimal point value if user has entered 2 decimal value in Amount field while proceed for payment.

Frequency: 100%
App version: Staging build v1.5.2 (104694505)
Repro on: Samsung Galaxy A8+(8.0.0), Samsung Galaxy Note 5 (7.0)
Repro Steps:

Launch the app.
Tap on “+” tab.
Select any Celo contact user.
Enter a two decimal value with two amounts. for example 12.34.
Move to cursor to after 1
Tried to enter value and observed.

Impact: User is blocked to edit an amount.
Investigation: Issue does not repro if user has entered only 1 decimal value.
Current Behavior: User is not able to edit an amount
Expected Behavior: User should be able to edit an amount.
Attachment: Android_DecimalValue.mp4 (Bug observed at 14 sec)

Fixed by redesign

Verified with latest IOS test flight build v1.9.1(41) and observed that issue is Repro

User is not able to edit an amount which are before decimal point value if user has entered 2 decimal value in Amount field while proceed for payment.
Device Used: iPhone 6(12.4.7)
Attachment: NotableEditAmountIssue.MP4

@gnardini this may be related to the other digit issues I've assigned to you

This looks intended to me, it's not a normal input, so not sure if there's anything to do here.

closed because fixed in the new design

closed because fixed in the new design

Hi @aleksey-nov We have verified issue using  latest Android Internal Build V1.9.1(1004294332) & Test Flight Build V1.9.1(42) and found that issue is still repro as per the below observations.

User is not able to edit an amount which are before decimal point value if user has entered 2 decimal value in Amount field while proceed for payment.

Cam you please let us know is it expected behavior?

Hi @aleksey-nov We have verified issue using  latest Android Internal Build V1.9.1(1004294332) & Test Flight Build V1.9.1(42) and found that issue is still repro as per the below observations.

User is not able to edit an amount which are before decimal point value if user has entered 2 decimal value in Amount field while proceed for payment.

Cam you please let us know is it expected behavior?

Hey @aleksey-nov I have verified this issue using latest Android internal build V1.15.1 & Test Flight build V1.15.1 & observed that user still not able to edit amount which is before decimal points by entering 2 decimal value. Can you please let us know is it expected behavior ?
Verified On Devices: Samsung Galaxy J5 Prime 8.0.0), Samsung Galaxy A5 (7.0), iPhone SE (14.2)
Thanks..!!