Upgrade to postgres 16.2 in docker-compose file

Summary
There was an upgrade we hadn't applied
Change Type
Mark the type of change your PR introduces:

[ ] Bug fix (resolves an issue without affecting existing features)
[ ] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[x] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Outline how the changes were tested, including steps to reproduce and any relevant configurations.
Attach screenshots if helpful.
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[ ] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 50.089% (-0.006%) from 50.095%
when pulling 3ccbeb97ef8cc509126dcfe6ef9072ba9e9ff937 on postgres-16.2
into f6b5176c8ac3771e3fb259db372c6d3db5cb047e on main.


updating for swift3

I updated the code for swift3.

@nschucky We already migrate to swift3. Thank you for your work in any way.


made some changes to improve responsiveness

made 20th UI cards responsive and added class and ID to some of the cards.

made 20th UI cards responsive and added class and ID to some of the cards.

that's not the way to make contributions, if you think something is not right in a project (hosted by others) you first have to create an issue to inform the mentor about that in a detailed way then, mentor check if the issue is valid or not then if valid approves it and assigned that to you then you start working on it ok...
from next time do this then I will review your pr...


Documentation about onError prop in the wrapper

A little more documentation / cases when  onError gets executed is required

The mapbox-gl-geocoder docs does not provide any more information than what I have in the docs, so not sure what I could add. https://github.com/mapbox/mapbox-gl-geocoder/blob/master/API.md#parameters-18


docs: color page updates

Closes #1991
What I did

implement the docs changes in #1991
inline all the graphics therein
replace the word "component" with "element"
replace the status name "error" with "danger"

Notes to Reviewers
Should some of this text be revised in light of our recent discussion about nomenclature (background, context, color-palette, theme, etc).
for example, the best practices section advises against theming element colours, but our theming docs go into great detail on how to accomplish that: this contradiction should be resolved

@zeroedin i would like your help to properly lay out the <uxdot-example> elements on the usage page.


HTML tags shouldn't need to always be closed

Currently, all HTML tags need to be closed for the virtual DOM to parse things. This is unfortunate for tags like <img> or <input> that don't have closing tags.

Hey @joeybaker! Just a note: this discussion probably belongs over at html-parse-stringify, which is the html parser that this library uses.
The README over there suggests that it should handle closed tags, or self-closing tags. There are even basic tests around it, so perhaps you've found an edge case. Could you make a code sample showing what tag breaks the parser?
Even better, if you wanted to make a failing test PR against the html-parse-stringify library that would be awesome!

@jmeas I took a look at html-parse-stringify, and confirmed that the problem isn't there. As you said, there are already tests to cover this use, and after adding additional tests I'm pretty confident that the module does the right thing.
Here's some sample code that shows the wrong behavior: https://gist.github.com/joeybaker/dbef2bf3885312b43d8a
I looked adding a test to this repo, but you don't have any tests setup. Do you have a preference for testing framworks? I'm partial to (and I noticed that much of ampersand uses) tape, but since this repo might need browser tests, maybe prova is a good choice?

Hey @joeybaker! I'm working on making this module more like production ready, checkout the branch here: https://github.com/AmpersandJS/ampersand-virtual-dom-mixin/tree/towards-1p0 where I've started adding tests with tape. Will probably add zuul + saucelabs once we get past the basics.
I'll take a look at this issue in there, but feel free to add more tests to that branch!

My guess is that the fix for void elements not needing to be closed in html-parse-stringify hasn't actually been published to npm yet. I'll look into that too!

@latentflip cheers!


Add another example w/ cron

Find its difficult to use this package without more examples. Feel free to critique code, would just like more examples for other users

Good job! Thanks!


Use response data in next calls

I think it's an amazing idea! 🥇
I'm just wondering if it's difficult to implement some data passing between calls?
In our case we generate auth tokens first in one call, and then use that token in all succeeding calls.

Thanks, Ivan, appreciate it! No, it's not, going to add this feature as soon as possible. Maybe the next release will come up with this feature.

Wow, that's really amazing! Can't wait for it then :)


Not to log secrets in request header

IMPORTANT: If you have a general question please use Stack Overflow instead where Karate has a dedicated "tag": https://stackoverflow.com/questions/tagged/karate
If you are sure you have found a bug, please make sure you follow the instructions here: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue
Karate logs all request headers. Due to security reason, we need an option not to log sensitive data. For example app secret.
11:15:03.473 [main] DEBUG com.intuit.karate - request:
1 > POST https://xxx
1 > Accept: application/json
1 > Accept-Encoding: gzip,deflate
1 > Authorization: Intuit_IAM_Authentication intuit_appid=xxxx,intuit_app_secret=xxxj,intuit_token_type=IAM-Ticket, intuit_token=xxx,intuit_userid=xxx,intuit_realmid=xxx

@mayzhang2000 yes this is a roadmap item: https://github.com/intuit/karate/projects/3#card-22529225 - the issue referred has some suggestions to work around: #699


[CCE] Hibernation missing

It is currently not possible to hibernate a cluster (and it's nodes) or start it again from CLI. It would be great if that feature that is available via the console would be added to the otc extensions

sadly there is no API for that.

I created a demand request for this feature. This will take some time to get evaluated.

The API now exist : https://open-telekom-cloud.com/en/support/release-notes/new-release-kubernetes-1-21


Disable log callbacks for Xamarin.iOS builds.

This works around https://bugzilla.xamarin.com/show_bug.cgi?id=30144 until a proper solution can be found.

Can you bump the "patch" version in SolutionVersion.cs?


tokens it refreshes the token until the rate limit is reached

from yesterday iam getting a issue with tokens it refreshes the token until the rate limit is reached because of this the supabase is being requested 5000 times by a single user
i dont know how to reproduce this as iam getting this when iam starting the app and calling the supabase
Expected behavior
token regeneration should only trigger when expected
 static Future initialize() => Supabase.initialize(
      url: KeyConstants.SUPABASE_URL!,
      anonKey: KeyConstants.SUPABASE_ANON_KEY!,
      debug: true);

if it helps please check this
final supabaseAuth = SupaFlow.client.auth.onAuthStateChange
    .map<String>((response) => response.session!.user.id)
    .switchMap((id) => id.isEmpty
        ? Stream.value(null)
        : getFilteredRowStream(id).map((row) => log(row.toString())))
    .asBroadcastStream();

iam not sure if this the issue from flutter side or supabase

Please stop creating new issues with the same content, and answer the question I have posted on the other issue.
https://github.com/supabase/supabase-flutter/issues/829


Index page refactor

simplify the creation of statistics by way of refactor
shifts are also an optional configuration, so code will also show stats for today, even if no other shifts are defined.

shifts are also an optional configuration, so code will also show stats for today, even if no other shifts are defined.

Clever! I likey :+1:
Definitely much easier to read now. LGTM

Much saner - thanks!


Feature Request : Tables and Graphs

Description of your request
Tables in the Location Section & Graphs
Describe the solution you'd like

Add a table view with looking at a location that has all the information for the plants (ID, Name, Last Fertilized, Last Watered...)
Add a graph section to chart Water, Fertilizer, Humidity, etc..

Hi,

Do you mean that you could switch between the image card view and a table
based view? This sounds useful if people want to switch the views if they
have way too many plants. Will see if I can already include this in the
next version.
Could you specify this a little more? Do you mean dates for when to
water, fertilize, etc? Like a calendar?
Message ID: @.***>

Yes, I think that would be useful to see all your plant info in one sortable table.

-If there was a way to take the water, fertilize, humidity, & light data and generate some 30day, 90day, 3month, 6 month, 1 year graphs were the users could visualize the data, it might help to find those plants that are, for example, not getting enough water or too much.
Might be able to use PHP's RRD extension to do the work. I am not sure, I haven't played with it first hand.

If not graphs, then maybe a way to export a PDF report

So I was playing around today and tried to use the database data to make some example graphs. It did not go well. So I thought about maybe a calendar & table to show the times that a plant was watered and fertilized.  (See below)
Something like this, you might be able to the existing calendar function.
(made this in chatgpt, because I am currently working 16 hour shifts and I am sooooo tired)

<?php
$host = 'localhost';
$dbname = 'hortus';
$username = 'hortus';
$password = '  ';

// Database connection
$mysqli = new mysqli($host, $username, $password, $dbname);

if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

// Fetch watering and fertilizing events for the last 30 days from the database, along with plant names and scientific names
$query = "
    SELECT p.id AS plant_id, p.name AS plant_name, p.scientific_name AS scientific_name,
           pl.content, DATE(pl.updated_at) AS event_date
    FROM plants p
    LEFT JOIN plantlog pl ON p.id = pl.plant
    WHERE pl.content LIKE '[System] last_%'
    AND pl.updated_at >= NOW() - INTERVAL 30 DAY
    ORDER BY p.id, pl.updated_at
";
$result = $mysqli->query($query);

// Check if query was successful
if (!$result) {
    die("Query failed: " . $mysqli->error);
}

// Initialize an array to store events for each plant
$plantsEvents = [];

// Populate the array with events
while ($row = $result->fetch_assoc()) {
    $plantId = $row['plant_id'];
    $plantName = $row['plant_name'];
    $scientificName = $row['scientific_name']; // Get scientific name
    $eventDate = $row['event_date'];

    // Initialize the plant ID in the array if not already set
    if (!isset($plantsEvents[$plantId])) {
        $plantsEvents[$plantId] = [
            'name' => $plantName,
            'scientific_name' => $scientificName, // Store scientific name
            'watered' => [],
            'fertilised' => []
        ];
    }

    // Extract the type of event (watered or fertilised)
    if (strpos($row['content'], 'last_watered') !== false) {
        $plantsEvents[$plantId]['watered'][] = $eventDate;
    } elseif (strpos($row['content'], 'last_fertilised') !== false) {
        $plantsEvents[$plantId]['fertilised'][] = $eventDate;
    }
}

// Bootstrap header
echo '<!DOCTYPE html>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Plant Care Calendar</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">

Plant Calendar
';

// Loop through each plant to display the calendar
foreach ($plantsEvents as $plantId => $events) {
    echo '
';

    // Get the current month and year
    $currentMonth = date('F'); // Full month name (e.g., October)
    echo "
Plant ID: {$plantId} - {$events['name']} ({$events['scientific_name']})
";
    echo "
$currentMonth
";

    // Legend for watering and fertilizing
    echo '
';
    echo '
 Watered
';
    echo '
 Fertilized
';
    echo '
'; // Close legend div

    echo '
';

    // Get the current month and year
    $currentMonthNumber = date('m'); // Month number
    $currentYear = date('Y'); // Current year
    $firstDayOfMonth = new DateTime("$currentYear-$currentMonthNumber-01");
    $lastDayOfMonth = new DateTime($firstDayOfMonth->format('Y-m-t'));

    // Display blank days before the first of the month
    for ($i = 0; $i < $firstDayOfMonth->format('w'); $i++) {
        echo '

';
    }

    // Display each day of the month
    for ($day = 1; $day <= $lastDayOfMonth->format('d'); $day++) {
        $currentDate = "$currentYear-$currentMonthNumber-" . str_pad($day, 2, '0', STR_PAD_LEFT);
        echo '
';
        echo "$day";

        // Prepare icons container
        echo '
';

        // Mark dots for all watering events
        if (in_array($currentDate, $events['watered'])) {
            echo '';
        }
        // Mark dots for all fertilizing events
        if (in_array($currentDate, $events['fertilised'])) {
            echo '';
        }

        echo '
'; // Close icons div
        echo '
'; // Close day div
    }

    echo '
'; // Close calendar div

    // Display table for watered and fertilized dates
    echo '

                    Date
                    Event

';
    // Display watered dates
    foreach ($events['watered'] as $date) {
        echo "

                $date
                Watered

";
    }
    // Display fertilized dates
    foreach ($events['fertilised'] as $date) {
        echo "

                $date
                Fertilized

";
    }
    echo '

'; // Close table div

    echo '
'; // Close plant calendar div
}

// Close Bootstrap container and HTML tags
echo '
';

// Close database connection
$mysqli->close();
?>

Switch between cards and list: https://github.com/danielbrendel/hortusfox-web/commit/0f1e4cabb5c02b24a660d8cc2a412e9fe97f54a2

Resolved.


rubysrc2cpg: Implicit return handling in blocks

Got implicit returns working when the last method statement is not just an expression but contains blocks like if-else
Could not do this for the last statement of begin blocks since there is an existing issue with the data flow engine. The below Java code does not return flows due to that issue. Raised it with @fabsx00 separately.
Enabled and corrected some other test cases that are working.

Java code that does not produce data flows.
public class Main {
  public static int foo(String args) {
    try {
      System.out.println("in begin");
      return 0 ;
    } catch (Exception e) {
      System.out.println("Something went wrong." + args);
    }
  }
  public static void main(String[ ] args) {
       String x = "1";
       foo(x);
  }
}

If we set source -> x and sink -> println() we do not get data flows in the below code. However, if we remove return 0, we do get data flows.

Inserting return statements with just the AST to work with can be tricky. I was thinking if we could this in the CFG directly. Since I'm not that familiar with the codebase in that regard yet, maybe @DavidBakerEffendi or @max-leuthaeuser can share their thoughts on this?
Otherwise the PR looks good - but I would recommend adding a few explanatory comments for those extra parameters and how they play in.

Inserting return statements with just the AST to work with can be tricky. I was thinking if we could this in the CFG pass directly. Since I'm not that familiar with the codebase in that regard yet, maybe @DavidBakerEffendi or @max-leuthaeuser can share their thoughts on this?
Otherwise the PR looks good - but I would recommend adding a few explanatory comments for those extra parameters and how they play in.

Rahul: Yes this is tricky indeed but we pretty much have it figured out in this PR. This PR will unblock us for other changes and we could always have a separate PR that perhaps does it in the CFG. We could eliminate this change then.


Implement message-list diffing algorithm!

I think I promised this yesterday, and I didn't quite get around to it. One thing is that I have a question about whitespace; see CZO. But I thought I'd get this up in draft form so you can take a look if you like, before I spend too much time on it. 🙂

For the tests, some other interesting cases would include:

Insert/delete the first message of a block that share a sender name/avatar, i.e. the message-full HTML-element that's followed by some message-brief HTML-elements.
Insert/delete all the messages of such a block, coming in between messages that would otherwise make up one such block, so that block splits/rejoins. Also between messages that wouldn't do that.
Similarly with a block of messages that have a common recipient, in between messages with some other common recipient, and also between messages with different recipients.
Similarly with a block of messages that have a common date. Inserting/deleting the first one (when there are more after it) will change which message the date header is associated with; inserting/deleting all of them will make the date header appear/disappear.

And for within a given message:

Add/remove reactions to a message.
Update a poll's data.

Hmm, I wonder if our existing shortcut I mentioned here: https://github.com/zulip/zulip-mobile/pull/5188#discussion_r781663996 is correct for this case. These new tests will make it possible to check that!

Star/unstar a message.
Change a sender's name or avatar.
Mute/unmute a sender.

Thanks for the review! I've made most of those changes, and some others; the major thing I still have to do is add those additional (and I agree interesting) test cases. 🙂

Oh, by the way: do you know off-hand whether the edit-sequence events (once we start sending them) will arrive in the webview in the same order as we send them? That's going to be important; I'll take a closer look if you don't know off-hand.

Oh, by the way: do you know offhand whether the edit-sequence events (once we start sending them) will naturally arrive in the webview in order, or might we have to do something special to ensure that? That's going to be important; I'll take a closer look if you don't know offhand.

I'd sure hope so, but wouldn't be sure without digging into it.

Thanks for the revision! Comments above.
I'd be glad to merge this with just the small changes discussed above, without yet the additional test cases at https://github.com/zulip/zulip-mobile/pull/5188#issuecomment-1009484564 or the optimization at https://github.com/zulip/zulip-mobile/pull/5188#discussion_r793030286 . Then we can close out this PR thread, and those can be in followup PRs.

Thanks for the review! Revision pushed.

Thanks for the review! I've responded, above.

Thanks for the review and chat discussion! Revision pushed; back to using fragment in the 'replace' case.

Thanks! Looks good -- merging.


Split wifi state for AP and STA

cc #210
I wonder what to do with the combined get_wifi_state() function. If esp-wifi ever gets AP-STA support, picking one state will be difficult. Maybe the current "none of these modes? then invalid" logic will be good enough, or maybe that function can be removed altogether. I'm not sure.
I've removed a bunch of possibilities from the set of states, based on what I found here. If it weren't a breaking change, I'd also renamed the event-like ApStop, etc. enum variants to a more grammatically proper form (e.g. ApStopped). Since esp-wifi isn't released yet, maybe I could do this in this PR, depending on opinions.

From a brief look this looks good to me. I think I'm fine with renaming the enum variants at this point of time. (t.b.h given the upcoming breaking changes in the next esp-hal release this is a really minor break)

Sooo... do you think we can move forward with this? 🙃

There two are new
warning: unnecessary `unsafe` block
  --> esp-wifi\src\wifi\os_adapter.rs:45:5
   |
45 |     unsafe { get_sta_state() == WifiState::StaConnected }
   |     ^^^^^^ unnecessary `unsafe` block
   |
   = note: `#[warn(unused_unsafe)]` on by default

warning: unnecessary `unsafe` block
    --> esp-wifi\src\wifi\mod.rs:1462:13
     |
1462 |             unsafe {
     |             ^^^^^^ unnecessary `unsafe` block

Then I guess it's fine


Fix pending migration implied by Django 4.0 changes (#634)

Added new migration as expected by Django 4.0
Pinned django-filer>=1.4.0,<2.1 in tests base requirements because it is incompatible with supported Django versions from tox config

I've launched tox on my work and it runned almost well but failed on environments with Django 3.2 because of missing migrations from some dependencies (filer, easy_thumbnails), possibly because of the same bug we are fixing here.
I'm attaching the full tox run output here so you can check yourself without to run it yet:
tox_log_output.txt
Also i'm not totally sure about my migration which have a dependency to the last CMS one, but i saw there is no CMS migration dependency in any of the djangocms-text-ckeditor migrations, maybe you were removing them for a reason, or this is normal, i don't know..
Let me know if you want me to remove it if it is not expected.

On a side note, coverage reporting needs to ignore migration files.

As a remark: Migration tests are fixed in #631


Use PyVista for 3D viz instead of ParaView

PyVista can do most things that ParaView can do and would meet the needs of the examples I have seen in the docs. It would be great if this library leveraged PyVista for native Python 3D viz to keep users from having to save out static copies of their data. Since PyVista is simply a wrapping layer on top of VTK, users could still use ParaView if they like, but would now have the additional option of using PyVista out of the box. The vtktools module could mostly be replaced by calls to PyVista which would cut down on a lot of maintenance for the VTK code, especially IO functions with formats like VTK, STL, etc. Also, if there are unique utilites in there leveraging VTK features we haven't yet wrapped in PyVista, I'd be happy to implement those functions in PyVista to keep VTK related maintence over in PyVista.
I'm willing to help implement this. @opengeostat, what do you think this might look like?
FYI: With PyVista support, all of the examples in the docs could be converted to be fully reproducible code to make the figures much like PyVista's examples gallery

Just an FYI: in the example notebook from the docs, simply:
cmp = pv.read('cmp.vtk.vtp')
block_model = pv.read('model.vtu')

p = pv.Plotter()

p.add_mesh(cmp, scalars='CU', clim=[0,1],
         cmap='coolwarm',
         render_lines_as_tubes=True,
         line_width=5,
         show_grid=True)

p.add_mesh(block_model.clip('y'), scalars='D1',
           clim=[0, 1], cmap='coolwarm')
p.show()

Or get interactive with:
cmp = pv.read('cmp.vtk.vtp')
block_model = pv.read('model.vtu')

p = pv.Plotter(notebook=0)

p.add_mesh(cmp, scalars='CU', clim=[0,1],
         cmap='coolwarm',
         render_lines_as_tubes=True,
         line_width=5,
         show_grid=True)

p.add_mesh_clip_box(block_model, scalars='D1',
           clim=[0, 1], cmap='coolwarm', rotation_enabled=False)
p.show()

Hi @banesullivan,
Thanks for the advice. It is really cool example. I tried and is a really nice solution for visualization. It also simplifies readers and applying some VTK filters.
I notice that some filters are not implemented yet, for example, vtkLinearExtrusionFilter, and others are very unstable, for example, the boolean operations. However, this issue is on the VTK implementation.
I am considering including some support for CGAL and IGL to overcome some of the limitations in VTK. IGL may be handy to produce unfolding surfaces...
Thanks Again.

Many of the filters that are currently missing are pretty easy to implement - so let us know what is missing for you and we can get it going! It looks like vtkLinearExtrusionFilter  got delayed in https://github.com/pyvista/pyvista/pull/449 - I will try to push that PR forward.
Support for CGAL and IGL would be awesome! I have no experience with those libraries but do let us know what limitations you're seeing with VTK (and PyVista by extension) to help us improve PyVista and some of PyVista's offshoot projects that address those limitations.
Also, what do you mean by an "unfolding surface"? Do you have an example where this is relevant in pygslib?

I just tried a small drillhole DB desurvey and used PyVista for viewing before I saw this (don't have paraview on this machine).

Is there anyway that I can use Pyvista together with ParaView? I have succeeded in installing Pyvista on Pip and installing Paraview on Conda, but when I try to install Pyvista on Conda, I get conflicts.


Deprecate OpenTK Dependency Externally

what?
Create types that replace, wrap around, derive from, or are compatible with the OpenTK types that inhabit AptitudeEngine.
why?
We use OpenTK a lot. Everything including the GameWindow context and it's events is OpenTK. Which means that there is a high likely hood that the developer thats using AptitudeEngine may also have to reference OpenTK to use some of those types.
how?
#12 actually touches on this issue and is technically a step in the direction this issue is intended to be taking.
Enums are castable.
Two enums of the same sub type can be casted between eachother, so implementing an enum in AptitudeEngine like this:
public enum VSyncMode
{
    Off = 0,
    On = 1,
    Adaptive = 2
}

would immediately be castable to OpenTK's VSyncMode like so:
OpenTK.VSyncMode someTkVsync = (OpenTK.VSyncMode)VSyncMode.Off;

Structs are implicitly castable when overriden
We actually do this already because of #2 in Vector2's implicit cast overrides to OpenTK's Vector2 seen here:
public static implicit operator OpenTK.Vector2(Vector2 vec)
    => new OpenTK.Vector2(vec.X, vec.Y);

Classes are inheritable
Our version of, say, GraphicsMode can just derive from OpenTK.Graphics.GraphicsMode with a few hiding variables when needed like so:
public class GraphicsMode : OpenTK.Graphics.GraphicsMode
{
    public static new readonly GraphicsMode Default
            = (GraphicsMode)OpenTK.Graphics.GraphicsMode.Default;
}

Due to a misunderstanding in downcasting, a conversion actually needs to be implemented between reference types.

Completed with merge https://github.com/PhoenixGameDevelopmentTeam/AptitudeEngine/commit/eaa49280434a76fc4c770c85a3e957ce710688e0.


chore(master): Release 0.21.0

:robot: I have created a release beep boop
aztec-packages: 0.21.0
0.21.0 (2024-01-30)
⚠ BREAKING CHANGES

aztec binary (#3927)
add opcode for sha256 compression function (#4229)
add opcode for poseidon2 permutation (#4214)
remove ec_double opcode (#4210)
Updates singleton usage (#4186)
Add big int opcodes (without implementation) (#4050)

Features

3738: AVM basic arithmetic operations for non ff types (#3881) (457a3f9), closes #3996
Accrued substate instructions (#4197) (bfe30d2)
Add big int opcodes (without implementation) (#4050) (bcab9ce)
Add comparators to get/view note (#3136) (#4205) (6de36b3)
Add inclusion check l1->l2 (#4141) (bef65c3)
Add opcode for poseidon2 permutation (#4214) (53c5ba5)
Add opcode for sha256 compression function (#4229) (ac25ff7)
Adding slither to l1-contracts  (#4226) (b4dc31d)
avm: Add tests for memory and bitwise instructions (#4184) (6dac650)
avm: Bytecode avm control flow (#4253) (fb1d742), closes #4209
avm: Bytecode parsing and proof generation (#4191) (6c70548), closes #3791
avm: Environment getters (#4203) (60d2377)
avm: Implement comparator opcodes (#4232) (973ff2f)
avm: Initial external calls (#4194) (d8aa966)
avm: Link up storage (#4150) (3e86870)
avm: Revert instruction (#4206) (bd6e797)
avm: Tagged memory (#4213) (e5ff2f6)
Aztec binary (#3927) (12356d9)
Contract classes and instances (#4192) (1858126), closes #4053
Deserialize AztecAddress when contract's view function returns it in Aztec.js #3641 (#4224) (11f400f)
docs: DIP1: Extract Explanations (#4228) (3b25737)
docs: Historical trees docs (#3895) (8c3efba)
docs: PXE docs (#4021) (a656034)
Implement bigint in Noir, using bigint opcodes (#4198) (3720415)
Implement Embedded EC add and double opcodes (#3982) (ccb7bff)
Limit exposed functions on note utils (#4207) (8338f39)
Nullifier key validation (#4176) (1c72c0d)
Produce graph of internal Barretenberg dependencies (#4225) (88e7923)
Recursive folding and decider verifier for Protogalaxy (#4156) (9342048)
Remove ec_double opcode (#4210) (75f26c4)
Replace single bit range constraints with basic bool gates (#4164) (0a3553b)
Updates singleton usage (#4186) (301f0e6)

Bug Fixes

avm: Fix usage of Fr with tagged memory (#4240) (b82e70c)
bb: .gitignore (#4201) (a56e418)
docs: Add missing deps to token tutorial references (#4265) (d7e2d9c)
Generic Honk dependencies (#4239) (382dfbe)

Miscellaneous

Add note getter test to cci (#4236) (e1184ff)
avm-simulator: Cleanup, tags as first instruction constructor args (#4244) (e46b865)
avm: Remove the state manager in favour of journal (#4195) (40f9324)
bb: Rearrange namespaces (#4147) (5de0a8e)
Cleaning up circuits test setup (#4235) (fa6915a), closes #4237
Delete C++ PK circuits (#4219) (9136d32)
Delete MemoryDB (#4241) (9e6250a)
docs: Fix a few links to docs (#4260) (1c8ea49)
docs: Fix autogen docs (#4261) (3b9927a)
docs: Fix public and private storage not in docs (#4257) (48ceafd)
docs: Fix token bridge tutorial (#3935) (84c9fdb)
docs: Split contract storage pages (#4202) (1e05f33)
Fix typo in yellow paper (#4247) (ac82e6b)
Fixes test file from #4205 (#4216) (18a9b72)
Git subrepo pull (merge) noir (#4252) (80be57d)
Nuking old BlockHeader (#4154) (997791a), closes #3937 #3564 #4134
Remove flaky e2e p2p test (#4181) (688e4af)
Remove mandatory jsdoc (#4180) (9625b43), closes #3860
Remove stubbed docs (#4196) (25a4bc4)
Replace leveldb with lmdb for merkle trees (#4119) (84967b2), closes #3362
Replace relative paths to noir-protocol-circuits (a9839a8)
Replace relative paths to noir-protocol-circuits (2ef6e56)
Replace relative paths to noir-protocol-circuits (426c17d)
Replace relative paths to noir-protocol-circuits (12adb71)
Replace relative paths to noir-protocol-circuits (fcd048d)
Unifying Header serialization accross domains (#4230) (92080a0)
Update .gitrepo with correct parent hash (#4279) (9253c8a)

Documentation

bb: How to use docker_interactive.sh (#4220) (f44c6b1)
Update welcome page and dev pages (#4143) (d2a86ff)

barretenberg.js: 0.21.0
0.21.0 (2024-01-30)
Miscellaneous

barretenberg.js: Synchronize aztec-packages versions

barretenberg: 0.21.0
0.21.0 (2024-01-30)
⚠ BREAKING CHANGES

add opcode for sha256 compression function (#4229)
add opcode for poseidon2 permutation (#4214)
remove ec_double opcode (#4210)
Add big int opcodes (without implementation) (#4050)

Features

3738: AVM basic arithmetic operations for non ff types (#3881) (457a3f9), closes #3996
Add big int opcodes (without implementation) (#4050) (bcab9ce)
Add opcode for poseidon2 permutation (#4214) (53c5ba5)
Add opcode for sha256 compression function (#4229) (ac25ff7)
avm: Bytecode avm control flow (#4253) (fb1d742), closes #4209
avm: Bytecode parsing and proof generation (#4191) (6c70548), closes #3791
Implement Embedded EC add and double opcodes (#3982) (ccb7bff)
Produce graph of internal Barretenberg dependencies (#4225) (88e7923)
Recursive folding and decider verifier for Protogalaxy (#4156) (9342048)
Remove ec_double opcode (#4210) (75f26c4)
Replace single bit range constraints with basic bool gates (#4164) (0a3553b)

Bug Fixes

bb: .gitignore (#4201) (a56e418)
Generic Honk dependencies (#4239) (382dfbe)

Miscellaneous

bb: Rearrange namespaces (#4147) (5de0a8e)
Delete C++ PK circuits (#4219) (9136d32)

Documentation

bb: How to use docker_interactive.sh (#4220) (f44c6b1)

This PR was generated with Release Please. See documentation.

Benchmark results
No metrics with a significant change found.

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit ea840857 and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,412
179,524
716,068

l1_rollup_calldata_gas
221,560
866,488
3,448,252

l1_rollup_execution_gas
313,979
984,160
3,667,841

l2_block_processing_time_in_ms
1,598 (-2%)
5,326 (+1%)
21,153 (+1%)

note_successful_decrypting_time_in_ms
284 (-4%)
846 (-2%)
3,259 (+2%)

note_trial_decrypting_time_in_ms
93.8 (-11%)
73.4 (-22%)
146 (+1%)

l2_block_building_time_in_ms
16,135
64,123
258,349 (+1%)

l2_block_rollup_simulation_time_in_ms
11,736
46,767
188,743 (+1%)

l2_block_public_tx_process_time_in_ms
4,364 (+1%)
17,267
69,310 (+1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
15,763 (-2%)
30,418 (-1%)

note_history_successful_decrypting_time_in_ms
1,948 (-2%)
3,854 (+1%)

note_history_trial_decrypting_time_in_ms
137 (-9%)
229 (-50%)

node_database_size_in_bytes
3,514,439
3,553,069

pxe_database_size_in_bytes
29,923
59,478

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
213
44,681
25,561

private-kernel-ordering
165
43,753
14,809

base-rollup
1,201
128,338
881

root-rollup
78.9
4,088
677

private-kernel-inner
291
71,208
25,561

public-kernel-private-input
206
31,863
25,561

public-kernel-non-first-iteration
203
31,905
25,561

merge-rollup
7.71 (+1%)
2,608
881

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
15,455
32,223

Transaction processing duration by data writes.

Metric
0 new commitments
1 new commitments

tx_pxe_processing_time_ms
376
1,084

Metric
1 public data writes

tx_sequencer_processing_time_ms
537

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/barretenberg.js-v0.21.0 :sunflower:

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/barretenberg-v0.21.0 :sunflower:


[#3397] Airy CLI Installation with Terraform

This is the branch to set up the new install method with Terraform, working on the multiple issues listed in #3397.

After testing, three more things to be added:

[ ] The cli.yaml file isn't updated with the url for the loadBalancer and the airy status and airy config apply cannot be used
[ ] The output should be in line with the output from the previous installation
[ ] The AWS docs should be cleaned-up for the --provider-config customization parameters (will be added later).

Resolves #3275. This commit was added because the status command didn't work properly.


on osx?

Hi Chris,
can you give me any help on getting electrum server running on OS X?
I have electrum/trezor set up properly and I have a full bitcoin node running with 0.16.1... Just can't seem to figure out the connection and have gotten as far as " Run ./server.py "
I'm a layman at best, so be gentle :)

I've never used OSX before, but you need to somehow open a command line interface and make the electrum personal server directory your working directory, then run ./server.py

Ok thx, will give it a try

On Jul 29, 2018, at 3:24 PM, Hasham Ahmad<EMAIL_ADDRESS>wrote:
you might need to start Electrum with Electrum.app/Contents/MacOS/Electrum --oneserver --server localhost:50002:s if you're not able to connect to the local server
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-408710461, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiAChgTLxna3Xc8ciKL3Y-3HtI3qrks5uLjY3gaJpZM4Usn08.

I cant open the latest eps:

On Jul 29, 2018, at 3:24 PM, Hasham Ahmad<EMAIL_ADDRESS>wrote:
you might need to start Electrum with Electrum.app/Contents/MacOS/Electrum --oneserver --server localhost:50002:s if you're not able to connect to the local server
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-408710461, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiAChgTLxna3Xc8ciKL3Y-3HtI3qrks5uLjY3gaJpZM4Usn08.

What's the output of server.py?

Exactly... I may be biting off more than I’m qualified to chew. I’m on a Mac
//Bob

On Jul 29, 2018, at 4:47 PM, Hasham Ahmad<EMAIL_ADDRESS>wrote:
What's the output of server.py?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@nybe if you like to try again, I put together a tutorial here https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md
Would love some feedback on that.

Thanks! Will give it a try today

On Mar 16, 2019, at 7:43 AM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
@nybe https://github.com/nybe if you like to try again, I put together a tutorial here https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md
Would love some feedback on that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-473536076, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiI5-_0i1rK3l8ii2KFkUZJd0KBhdks5vXQMAgaJpZM4Usn08.

As usual I can’t get passed the signature checking part… here’s where I’m at:

On Mar 16, 2019, at 7:43 AM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
@nybe https://github.com/nybe if you like to try again, I put together a tutorial here https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md
Would love some feedback on that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-473536076, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiI5-_0i1rK3l8ii2KFkUZJd0KBhdks5vXQMAgaJpZM4Usn08.

Ok I actually got pretty far with your instructions but have now stalled at the server installation with this error:
Command "/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -u -c "import setuptools, tokenize;file='/private/tmp/pip-req-build-ytqt011y/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /private/tmp/pip-record-c4h_sfij/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /private/tmp/pip-req-build-ytqt011y/
Help?

On Mar 16, 2019, at 7:43 AM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
@nybe https://github.com/nybe if you like to try again, I put together a tutorial here https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md
Would love some feedback on that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-473536076, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiI5-_0i1rK3l8ii2KFkUZJd0KBhdks5vXQMAgaJpZM4Usn08.

Try upgrading setuptools with this command:
sudo pip3 install --upgrade setuptools
Then try to start the server again.

I can’t get it to install at al, no bin shows up in the Python folder…  here’s where I’m at:
Ans here’s what’s returned on terminal:
The directory '/Users/nybemotion/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/nybemotion/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Processing /Users/nybemotion/Downloads/electrum-personal-server-eps-v0.1.6
Installing collected packages: electrum-personal-server
Running setup.py install for electrum-personal-server ... error
Complete output from command /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -u -c "import setuptools, tokenize;file='/private/tmp/pip-req-build-az8ulu7w/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /private/tmp/pip-record-_7rmgkig/install-record.txt --single-version-externally-managed --compile --user --prefix=:
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/electrumpersonalserver
copying electrumpersonalserver/init.py -> build/lib/electrumpersonalserver
creating build/lib/electrumpersonalserver/bitcoin
copying electrumpersonalserver/bitcoin/init.py -> build/lib/electrumpersonalserver/bitcoin
copying electrumpersonalserver/bitcoin/deterministic.py -> build/lib/electrumpersonalserver/bitcoin
copying electrumpersonalserver/bitcoin/main.py -> build/lib/electrumpersonalserver/bitcoin
copying electrumpersonalserver/bitcoin/py2specials.py -> build/lib/electrumpersonalserver/bitcoin
copying electrumpersonalserver/bitcoin/py3specials.py -> build/lib/electrumpersonalserver/bitcoin
copying electrumpersonalserver/bitcoin/secp256k1_deterministic.py -> build/lib/electrumpersonalserver/bitcoin
copying electrumpersonalserver/bitcoin/secp256k1_main.py -> build/lib/electrumpersonalserver/bitcoin
copying electrumpersonalserver/bitcoin/secp256k1_transaction.py -> build/lib/electrumpersonalserver/bitcoin
copying electrumpersonalserver/bitcoin/transaction.py -> build/lib/electrumpersonalserver/bitcoin
creating build/lib/electrumpersonalserver/server
copying electrumpersonalserver/server/init.py -> build/lib/electrumpersonalserver/server
copying electrumpersonalserver/server/common.py -> build/lib/electrumpersonalserver/server
copying electrumpersonalserver/server/deterministicwallet.py -> build/lib/electrumpersonalserver/server
copying electrumpersonalserver/server/hashes.py -> build/lib/electrumpersonalserver/server
copying electrumpersonalserver/server/jsonrpc.py -> build/lib/electrumpersonalserver/server
copying electrumpersonalserver/server/merkleproof.py -> build/lib/electrumpersonalserver/server
copying electrumpersonalserver/server/transactionmonitor.py -> build/lib/electrumpersonalserver/server
running egg_info
creating electrum_personal_server.egg-info
writing electrum_personal_server.egg-info/PKG-INFO
writing dependency_links to electrum_personal_server.egg-info/dependency_links.txt
writing entry points to electrum_personal_server.egg-info/entry_points.txt
writing top-level names to electrum_personal_server.egg-info/top_level.txt
writing manifest file 'electrum_personal_server.egg-info/SOURCES.txt'
reading manifest file 'electrum_personal_server.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'doc/*.md'
warning: no files found matching 'config.cfg_sample'
writing manifest file 'electrum_personal_server.egg-info/SOURCES.txt'
creating build/lib/electrumpersonalserver/certs
copying electrumpersonalserver/certs/cert.crt -> build/lib/electrumpersonalserver/certs
copying electrumpersonalserver/certs/cert.key -> build/lib/electrumpersonalserver/certs
running install_lib
running install_data
error: can't copy 'config.cfg_sample': doesn't exist or not a regular file
----------------------------------------

Command "/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -u -c "import setuptools, tokenize;file='/private/tmp/pip-req-build-az8ulu7w/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /private/tmp/pip-record-_7rmgkig/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /private/tmp/pip-req-build-az8ulu7w/

On Mar 17, 2019, at 8:31 AM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
Try upgrading setuptools with this command:
sudo pip3 install --upgrade setuptools
Then try to start the server again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-473676562, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiCtZLCKG5zc2xwe9pzAxRkoJTtuhks5vXl-4gaJpZM4Usn08.

I THINK I GOT IT!!
Was missing the config file

On Mar 17, 2019, at 8:31 AM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
Try upgrading setuptools with this command:
sudo pip3 install --upgrade setuptools
Then try to start the server again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-473676562, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiCtZLCKG5zc2xwe9pzAxRkoJTtuhks5vXl-4gaJpZM4Usn08.

Thanks Helge!
After much tinkering I got my eps up and running

On Mar 17, 2019, at 8:31 AM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
Try upgrading setuptools with this command:
sudo pip3 install --upgrade setuptools
Then try to start the server again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-473676562, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiCtZLCKG5zc2xwe9pzAxRkoJTtuhks5vXl-4gaJpZM4Usn08.

Awesome, glad to hear that! :) Was there something in my tutorial that didn't work out? Did you have to do something else except what was written there (in case other people have the same problems later)?

Maybe wait to edit the config until after full installation is complete...
I had to leave the config file alone until after the install, basically I just made a copy of the unedited config file, with its original name (config.cfg_sample), in the EPS folder before install.
I guess the best way would be to duplicate it and rename new file to config.cfg, etc.

On Mar 17, 2019, at 2:10 PM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
Awesome, glad to hear that! :) Was there something in my tutorial that didn't work out? Did you have to do something else except what was written there (in case other people have the same problems later)?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-473715159, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiK0RBR4tuoc5BScSMrtvfMWvPzVjks5vXq87gaJpZM4Usn08.

Hi, I have and old transaction that keeps showing up and says there’s still a certain amount of money at one of my addresses… but that address was fully spent months ago. Is there a way to get electrum and/or core to update to the current record? I can’t seem to figure that out

On Mar 17, 2019, at 2:10 PM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
Awesome, glad to hear that! :) Was there something in my tutorial that didn't work out? Did you have to do something else except what was written there (in case other people have the same problems later)?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-473715159, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiK0RBR4tuoc5BScSMrtvfMWvPzVjks5vXq87gaJpZM4Usn08.

If you use an old wallet and want all transaction history, you need to rescan from before the first transaction was made. If you use a script to start the server change it to:
~/Library/Python/3.7/bin/electrum-personal-server-rescan ~/electrum-personal-server-eps-v0.1.6/config.cfg
When you run it you should be asked to enter a date  from where to start scanning. Enter it in format DD/MM/YYYY and hit enter. It should suggest a block height and start rescanning. The longer back you go the longer it'll take. After it's done, change the script back to
~/Library/Python/3.7/bin/electrum-personal-server ~/electrum-personal-server-eps-v0.1.6/config.cfg
And run the server again.

Awesome, worked like a charm
thanks
Bn

On Mar 28, 2019, at 1:07 PM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
If you use an old wallet and want all transaction history, you need to rescan from before the first transaction was made. If you use a script to start the server change it to:
~/Library/Python/3.7/bin/electrum-personal-server-rescan ~/electrum-personal-server-eps-v0.1.6/config.cfg
When you run it you should be asked to enter a date from where to start scanning. Enter it in format DD/MM/YYYY and hit enter. It should suggest a block height and start rescanning. The longer back you go the longer it'll take. After it's done, change the script back to
~/Library/Python/3.7/bin/electrum-personal-server ~/electrum-personal-server-eps-v0.1.6/config.cfg
And run the server again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-477751612, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiNJlzYZFfAUu6_sKuuy948sEJMy7ks5vbSD6gaJpZM4Usn08.

Hi @nybe and @chris-belcher,
I'm also using a MacOS and got all installed but my eps is not connecting to my localhost. I think it might be the port number or the RPC config in both files (bitcoin and eps) but tried almost everything and didn't work. Any recommendation? thanks

@nybe if you like to try again, I put together a tutorial here https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md
Would love some feedback on that.

Hi appreciate this guide. I've found that the signing in keys link does not work.
"Belchers signing-keys. It can be found here."
I'm a struggling noob in the tech sphere

As usual I can’t get passed the signature checking part… here’s where I’m at:
…
On Mar 16, 2019, at 7:43 AM, Helge Hundingsbane @.***> wrote: @nybe https://github.com/nybe if you like to try again, I put together a tutorial here https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md https://github.com/HelgeHunding/guides/blob/master/hodl-guide/hodl-guide_64_eps-mac.md Would love some feedback on that. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#33 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiI5-_0i1rK3l8ii2KFkUZJd0KBhdks5vXQMAgaJpZM4Usn08.

Hi nybe, do you remember how you got past signature checking?
Also I notice later that you used python, did you have to install that or were you already familiar with it. I'm new to coding. Really want to set up the EPS though.
Thanks.

Ok guys, I am having a HUGE problem: my current version of EPS won’t connect and I’m back to square one with trying to open the new version (signature not recognized) and updating to your newest version.
I went back to look for the Mac install directions but they no longer exist on GitHub…
PLEASE HELP

On Mar 17, 2019, at 2:10 PM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
Awesome, glad to hear that! :) Was there something in my tutorial that didn't work out? Did you have to do something else except what was written there (in case other people have the same problems later)?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-473715159, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiK0RBR4tuoc5BScSMrtvfMWvPzVjks5vXq87gaJpZM4Usn08.

I cannot get my current version of EPS to run (keeps closing out with an error) therefore I cannot get electrum to connect.
I’ve spent quite a bit of time today trying to figure this out but am at a complete loss.
PLEASE HELP

On Mar 28, 2019, at 1:07 PM, Helge Hundingsbane<EMAIL_ADDRESS>wrote:
If you use an old wallet and want all transaction history, you need to rescan from before the first transaction was made. If you use a script to start the server change it to:
~/Library/Python/3.7/bin/electrum-personal-server-rescan ~/electrum-personal-server-eps-v0.1.6/config.cfg
When you run it you should be asked to enter a date from where to start scanning. Enter it in format DD/MM/YYYY and hit enter. It should suggest a block height and start rescanning. The longer back you go the longer it'll take. After it's done, change the script back to
~/Library/Python/3.7/bin/electrum-personal-server ~/electrum-personal-server-eps-v0.1.6/config.cfg
And run the server again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-477751612, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiNJlzYZFfAUu6_sKuuy948sEJMy7ks5vbSD6gaJpZM4Usn08.

If you're on telegram tell me your name and i'll try to help you through this.

 I cannot get my current version of EPS to run (keeps closing out with an error) therefore I cannot get electrum to connect. I’ve spent quite a bit of time today trying to figure this out but am at a complete loss. PLEASE HELP
…
On Mar 28, 2019, at 1:07 PM, Helge Hundingsbane @.***> wrote: If you use an old wallet and want all transaction history, you need to rescan from before the first transaction was made. If you use a script to start the server change it to: ~/Library/Python/3.7/bin/electrum-personal-server-rescan ~/electrum-personal-server-eps-v0.1.6/config.cfg When you run it you should be asked to enter a date from where to start scanning. Enter it in format DD/MM/YYYY and hit enter. It should suggest a block height and start rescanning. The longer back you go the longer it'll take. After it's done, change the script back to ~/Library/Python/3.7/bin/electrum-personal-server ~/electrum-personal-server-eps-v0.1.6/config.cfg And run the server again. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#33 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiNJlzYZFfAUu6_sKuuy948sEJMy7ks5vbSD6gaJpZM4Usn08.

Hi,
I had to change my username a while back. You can find the guide here https://driftwoodpalace.github.io/Hodl-Guide/hodl-guide_64_eps-mac.html
I'll open a pull request to update the README file.

Hi thanks… I think I’ve gotten it installed for the most part (I think) but I get this when I try to run the server:
Traceback (most recent call last):
File "/Users/me/Library/Python/3.7/bin/electrum-personal-server", line 5, in
from electrumpersonalserver.server.common import main
ModuleNotFoundError: No module named 'electrumpersonalserver'
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
 I cannot get my current version of EPS to run (keeps closing out with an error) therefore I cannot get electrum to connect. I’ve spent quite a bit of time today trying to figure this out but am at a complete loss. PLEASE HELP
… x-msg://79/#
On Mar 28, 2019, at 1:07 PM, Helge Hundingsbane @.***> wrote: If you use an old wallet and want all transaction history, you need to rescan from before the first transaction was made. If you use a script to start the server change it to: ~/Library/Python/3.7/bin/electrum-personal-server-rescan ~/electrum-personal-server-eps-v0.1.6/config.cfg When you run it you should be asked to enter a date from where to start scanning. Enter it in format DD/MM/YYYY and hit enter. It should suggest a block height and start rescanning. The longer back you go the longer it'll take. After it's done, change the script back to ~/Library/Python/3.7/bin/electrum-personal-server ~/electrum-personal-server-eps-v0.1.6/config.cfg And run the server again. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#33 (comment) https://github.com/chris-belcher/electrum-personal-server/issues/33#issuecomment-477751612>, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqiNJlzYZFfAUu6_sKuuy948sEJMy7ks5vbSD6gaJpZM4Usn08 https://github.com/notifications/unsubscribe-auth/AERqiNJlzYZFfAUu6_sKuuy948sEJMy7ks5vbSD6gaJpZM4Usn08.
Hi,
I had to change my username a while back. You can find the guide here https://driftwoodpalace.github.io/Hodl-Guide/hodl-guide_64_eps-mac.html https://driftwoodpalace.github.io/Hodl-Guide/hodl-guide_64_eps-mac.html
I'll open a pull request to update the README file.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chris-belcher/electrum-personal-server/issues/33?email_source=notifications&email_token=ABCGVCELSTDVSO4W32D46M3QXJNNJA5CNFSM4FFSPU6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGEGZEY#issuecomment-562588819, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABCGVCEL2F336LXCHUG7EELQXJNNJANCNFSM4FFSPU6A.

We are trying to solve that here https://github.com/DriftwoodPalace/Hodl-Guide/issues/7 (at the end). Will update here if we find a solution

I got it working last night! Here’s what I did: updated python to 3.8.0 and then had to edit the start up script to point to the correct directory for python:
~/Library/Python/3.8/bin/electrum-personal-server ~/electrum-personal-server-eps-v0.2.0/config.ini
I’m not sure what else I did, but it is working now.

On Dec 7, 2019, at 1:16 AM, Driftwood Palace<EMAIL_ADDRESS>wrote:

We are trying to solve that here DriftwoodPalace/Hodl-Guide#7 (at the end). Will update here if we find a solution
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


Crash fixes

This fixes a bunch of crashes found while running type inference on the whole rustc repo :sweat_smile:

avoid infinite recursion with ref bind patterns
avoid another infinite recursion
handle literal patterns, add a new LITERAL_PAT syntax node for this
fix an expect that's wrong on some invalid code

Nice! How did you run inference over the repo? That's a great test.

Does this fix #717 ?

@kjeremy unlikely, #717 is about "unknown files", so, something VFS related.

Nice! How did you run inference over the repo? That's a great test.
See #774 ;)

Does this fix #717 ?

No, all crashes I found were in type inference.

bors r+


Add int type to set function since the param key can be int as well

Cherry-picked from https://github.com/MindTouch/HyperPlug/pull/1 to make the fix available in 1.x


[PDI-14893] - UnsupportedMethodException on ps metadata fetch

Build completed
:x: This pull request has errors. They will need to be addressed before it can be accepted. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands:

ant -Dtestreports.dir=bin/reports/unit-test -f core/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f core/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands:
rm -r ~/.ivy2/local || echo no publish local to remove
Changed files:
core/src/org/pentaho/di/core/database/Database.java
core/src/org/pentaho/di/core/database/GuptaDatabaseMeta.java
Unit test coverage change:
org.pentaho.di.core.database.Database:

Branch Change :  + .02%
Complexity Change :  + .01%
Instruction Change : -.03%
Line Change : -.01%

org.pentaho.di.core.database.GuptaDatabaseMeta:

Complexity Change : -.18%
Instruction Change : -.04%
Line Change : -.07%
Method Change : -.83%

License header violations:

Copyright year is not the current year on core/src/org/pentaho/di/core/database/GuptaDatabaseMeta.java. Found 2013. Was expecting 2016


Kamel cli fails with wait flag when updating existing Failed integration

Steps to reproduce:

Create integration with error, e.g.

- route:
    from:
      uri: timer://tick
      steps:
        - to:
            uri: log:info
      parameters:
        period: 3000
        repeatCount: {{param.count}}

Run it kamel --name test-api-int run integraion.yaml --config file:/my.properties --wait
Observe it failed to deploy
Fix integration

- route:
    from:
      uri: timer://tick
      steps:
        - to:
            uri: log:info
      parameters:
        period: 3000
        repeatCount: "{{param.count}}"

Run it with wait flag kamel --name test-api-int run integraion.yaml --config file:/my.properties --wait

Actual behavior: Observe it failed again
Integration "test-api-int" updated
Progress: integration "test-api-int" in phase Error
Error: integration "test-api-int" deployment failed

while it is actually running in k8s in Running phase
Expected behavior: kamel run with --wait updates integration and completes with no errors

Thanks for reporting. Yes, it seems to be a cosmetic bug caused by a race condition. Basically what it happens is that as soon as the Integration is updated, still the status phase is in Error as it had not yet the time to reconcile. The wait flag immediately checks the Integration status and report it, although it's not the one that will eventually be after the next reconciliation cycle.


Update QuickStartGuide - add library

In XCode 15.4 and 16, the instructions in the Quickstart guide don't work. We need to add the Turbo library to the target after installing the package.
Recent XCode no longer has a lifecycle option.

You know this is a solid repo when you have 2 Steve Mitchell's submitting PR's.

Got bit by this just now — can confirm that this fixed the build for me 🙇🏻

Just a heads up, this library is migrating to Hotwire Native.  It appears that the docs there have this step included.
https://github.com/hotwired/hotwire-native-ios
Docs:
https://native.hotwired.dev/ios/getting-started
https://github.com/hotwired/hotwire-native-site/blob/main/_source/ios/01_getting_started.md


DevTools Error

I can't get into the dev tools and I'm getting this error. Did I do something wrong? I'm on the newest Signal version (5.3.0).

Will look into it!


feat: :sparkles: add verify_package_properties()

Description
This adds:

verify_package_properties_complete(): checks if all required fields are present and not empty.
verify_package_properties_well_formed(): checks if the object has the expected structure, ignoring blank fields. This is so that blank fields don't fail frictionless format checks.
verify_package_properties(): checks both of the above.

I've also generalised InvalidResourcePropertiesError to InvalidPropertiesError because each individual error says whether it's a package or a resource error anyway.
Closes #712
Reviewer Focus

This PR needs an in-depth review.
Focus on whether this is the error-behaviour we want.
Checklist

[x] Added or updated tests
[x] Tests passed locally
[x] Linted and formatted code
[x] Build passed locally
[x] Updated documentation

I think I'll end up changing this to make it play nicer with the contents of datapackage.json.

I refactored this a bit to make the verification functions more general, so that we can use them for resources as well.

@martonvago should this PR be a draft, if you're still working on it? :)

I didn't really plan on adding more stuff to it, but as I was working on #757, it became clear that some things needed to be changed -- and this seemed like a sensible place for it. That said, I'm hoping it's all done now!

Makes sense! All good!
I have merged #767 now and the tests don't fail anymore. Yay!


Directory Org Card Spacing

This PR implements a fix for the incorrect spacing of org cards in the Directory. It turns out that the grid of cards was not taking up the full screen width, which is resolved here. Additionally, the spacing in each size class is refined so that items are properly spaced apart as the screen width changes.

The spacing is good but the click boxes are still too big

No longer with needed with the changes in #36 .


Player might shoot if left click on Puzzle

I'll test this later.

This will be solved by changing left click to shoot to space to shoot.


getting this error for one of tenant (W1) for UAE users. This is a production database implemented last year. Other tenant are easily accessible in UAE.

Describe the bug
surprisingly getting this error for one of tenant (W1) for UAE users. This is a production database implemented last year. Other tenant are easily accessible in UAE.
Error We don’t support your country or region yet. We’ll add more countries and regions in the near future, so come back again.
To Reproduce
Steps and to reproduce the behavior:
Login to http://businesscentral.dynamics.com/ using<EMAIL_ADDRESS>Expected behavior
Should login as before, this is production database, even sandbox is also not working. Admin page is working fine
Screenshots

5. Versions:

Business Central:

Hi! This issue concerns a production system. This repository is only for issues related to the AL compiler and developer tools of the latest developer preview environment for Dynamics 365 Business Central and we cannot guarantee a timely resolution of your issue.
We suggest that you open a support case and work with our customer support team to gather all the information necessary to fix this problem.
Please read this post on how to file an issue: https://cloudblogs.microsoft.com/dynamics365/it/2019/09/25/new-process-to-submit-support-requests-for-dynamics-365-business-central/


🧪  Cross-Account Cross-Region LF Module Testing

This is a testing branch created in relation to this piece of work.
This branch tests the module terraform-aws-analytical-platform-lakeformation Cross-Region and Cross-Account.
Source Account: analytical-platform-development
Target Account: analytical-platform-data-development
Source Region: eu-west-1
Target Region: eu-west-2
This presumes the existence of a Lake Formation Database and Table in the source account analytical-platform-development, in eu-west-1 (Ireland). The database relies on an S3 bucket gary-apd-s3 which contains a test.csv file containing a simple two column setup. The database has a schema which matches the column names in test.csv.
Database: gary-apd-ireland-database
Table: gary-apd-ireland-table
Once the terraform is applied, as per below...
module.lake_formation.aws_lakeformation_resource.data_location["arn:aws:s3:::gary-apd-s3"]: Creating...
module.lake_formation.aws_lakeformation_resource.data_location["arn:aws:s3:::gary-apd-s3"]: Creation complete after 1s [id=arn:aws:s3:::gary-apd-s3]
module.lake_formation.aws_lakeformation_permissions.data_location_share["arn:aws:s3:::gary-apd-s3"]: Creating...
module.lake_formation.aws_lakeformation_permissions.data_location_share["arn:aws:s3:::gary-apd-s3"]: Creation complete after 0s [id=4002781413]
module.lake_formation.aws_lakeformation_permissions.database_share["gary-apd-ireland-database"]: Creating...
module.lake_formation.aws_lakeformation_permissions.database_share["gary-apd-ireland-database"]: Creation complete after 1s [id=3882892419]
module.lake_formation.aws_glue_catalog_database.target_account_database_resource_link["gary-apd-ireland-database"]: Creating...
module.lake_formation.aws_glue_catalog_database.target_account_database_resource_link["gary-apd-ireland-database"]: Creation complete after 1s [id=042130406152:gary-apd-ireland-database_resource_link]

... a user can consume a database in analytical-platform-development from analytical-platform-data-development using AWS Athena.

Closing to tidy up.


never stops

i'm running this on a rpi3 to flash a CM3. running ./rpiboot never exits after killing the process the device /dev/sdX is there and working.
running ./rpiboot -v -l also shows that it can't find some file/files.

I have done a series of systematic tests trying to understand this issue. I am almost certain that it is a software problem as I have done the tests on two different I/O boards and two different CM3 (as a matter of fact two complete kits). I am following these tests collecting also information on the reliability and potential issues/workarounds on the CM3 kit as I am road testing the device for Element14. The tests done today always reach the same point: the second phase find the Broadcom USB then read the first file and stop never ending with a list of missing files.
Host platforms used:

Intel PC running Debian Jessie desktop
Raspberry PI modle B3
Compute module 3 board running the CM3 lite booting from a microSD as host and a second CM board running as slave.

Always same result. I am setting a Windows10 machine to test also this vase (not great hope frankly). I will post further updates tomorrow.
[Note: Casually I have run the usbboot tool also in a case without the slave enable switch correctly set but the result was the same.]

@alicemirror I've been recently running the software on Windows 10, and confirm it all seems to work fine.
@Tychus Can you show us the actual log?

on Windows it works fine almost all the time (i've had some issues where it won't detect the device or keep running forever when it did)
On linux it never worked ( at least not like they show in the documentation).
sudo ./rpiboot
Waiting for BCM2835/6/7
Sending bootcode.bin
Successful read 4 bytes
Waiting for BCM2835/6/7
Second stage boot server
File read: start.elf

sudo ./rpiboot -v -l
Waiting for BCM2835/6/7
Device located successfully
Initialised device correctly
Found serial number 0
Sending bootcode.bin
libusb_bulk_transfer returned 0
Writing 50216 bytes
libusb_bulk_transfer returned 0
Successful read 4 bytes
Waiting for BCM2835/6/7
Device located successfully
Initialised device correctly
Found serial number 1
Second stage boot server
Received message GetFileSize: autoboot.txt
Cannot open file autoboot.txt
Received message GetFileSize: config.txt
Cannot open file config.txt
Received message GetFileSize: recovery.elf
Cannot open file recovery.elf
Received message GetFileSize: start.elf
File size = 433616 bytes
Received message ReadFile: start.elf
File read: start.elf
libusb_bulk_transfer returned 0
Received message GetFileSize: fixup.dat
Cannot open file fixup.dat

I can confirm that (on Linux at least) after @ghollingworth 's recent changes, sudo ./rpiboot -v now successfully prints Second stage boot server done and cleanly exits, whereas before I always used to see the same behaviour as @Tychus where it would 'hang' after printing Cannot open file fixup.dat
:tada:

Works like a charm now.
Thanks @ghollingworth

Hi guys! I have finished just now testing the Windows 10 version and it works, but the issue remain, simply it is easy to by pass. When I launch the rpiboot under Windows 10 it starts a terminal and - exactly in the same way I experienced under Linux - the program starts and seems looping or waiting indefinitely after reading the first file at the second stage.
What is the difference? It is that despite this issue Windows recognises the CM3 as an external removable device, I format it then I copy the raspbian image. The rpiboot terminal can be ignore or closed forcely without any parceptual difference. Then the CM3 boots regularly.
Enrico

Just a small point, but there's no need to format the CM3 before writing the Raspbian image to it :)

I have now updated both the Windows installer and the rpiboot code to fix this problem, please try again.  Also note I've now added the installer generation code to the usbboot github tree...
For latest version check out:
https://github.com/raspberrypi/usbboot/raw/master/win32/rpiboot_setup.exe
Thanks
Gordon


Configure Roles for multiple Databases

Hi,
I'm trying to create multiple dbs and then configure roles for multiple users. But I always get an error message "A conflict was detected between resources" when creating the .mof files.
Example configuration:
xSqlServerDatabase Database1 {
Database = "Database_001"
SQLServer = "SP2016_EXP"
Ensure = "Present"
PsDscRunAsCredential = $InstallAccount
}
xSQLServerDatabaseRole Database1_Role1 {
Name = "Domain\User1"
Database = "Database_001"
SQLServer = "SP2016_EXP"
Role = "db_owner"
PsDscRunAsCredential = $InstallAccount
Ensure = "Present"
DependsOn = "[xSqlServerDatabase]Database1"
}
xSqlServerDatabase Database2 {
Database = "Database_002"
SQLServer = "SP2016_EXP"
Ensure = "Present"
PsDscRunAsCredential = $InstallAccount
}
xSQLServerDatabaseRole Database2_Role1 {
Name = "Domain\User1"
Database = "Database_002"
SQLServer = "SP2016_EXP"
Role = "db_owner"
PsDscRunAsCredential = $InstallAccount
Ensure = "Present"
DependsOn = "[xSqlServerDatabase]Database2"
}
How can I get around this error message?
Thanks for help

No workaround as of yet. This is the same issue as #108


Do not use pathlib for hdf5 datasets, fixes #2318

fixes #2318

Was there a reason to implement this by hand rather than just switching to using PurePosixPath as stated in the issue?

I only used (and moved) the already existing functionality to fix this specific issue.
I agree that we probably should cleanup all our path handling in the hdf5 modules and PurePosixPath might be a good solution, but I'd keep that for another PR.


docs: Update READMEs to include badges and buttons

Development instructions were included in this item in the SoW, but will probably be taken care of as part of #14

Done


Add ContainerException::getContainer()

It's seems rather weird that an exception which relates to a container has no means of retrieving the container instance. I suggest adding getContainer() to ContainerExceptionInterface, which would return ContainerInterface|null, just in case there really somehow isn't a container associated with it for some reason.

That would be a huge bc break though. And in which scenario would that be useful? I've never seen such a need (but that's just my own experience).

Hi! Yes, this is totally for v2.0, due to the BC break. Not sure how I hadn't noticed it earlier in container-interop. If added, it would break implementations, though; the consumers would not have to be changed.
This could be useful in any scenario where you would need to know which container caused an error. As such, if you have generic code that retrieves services and does something with them, and you have some generic exception handling in high-level app code. then it could be extremely useful to be able to tell which container caused the problem. The container can then be used to display a more helpful message, or for debugging purposes.
A particularly important scenario is where you are dealing with a composite container, such as my implementation. Composite containers are very useful in a truly modular system, and I imagine that I am not alone in this use case.
In any case, IMHO conceptually you should be able to understand which container caused the error from the exception alone, without having prior reference to the container, or knowledge of the implementation or hierarchy of the container.

2.x is out. Gentle reminder.


hooks support

May be the good think to provide hooks for each repo to get ability to build package or run tests...

Does anyone know which hosted continuous integration services work with Gogs hooks?

Drone.io
26 мая 2015 г. 21:28 пользователь "Christopher Su"<EMAIL_ADDRESS>написал:

Does anyone know which hosted continuous integration services work with
Gogs hooks?
—
Reply to this email directly or view it on GitHub
https://github.com/gogits/gogs/issues/98#issuecomment-105625540.

@vtolstov Thanks!


Add support for embedding comments when plugin is enabled

Should be pretty straightforward: https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963

👍


VIPER Camera Pose info

Where can I find text file containing camera pose info of "playing for benchmark" dataset?
The following link is supposed to have it but I can't find it under which zip it is present.
https://playing-for-benchmarks.org/download/
says, "We provide the camera poses as one TXT file for each video sequence."

The files were temporally down and are back online now.

Appreciate for taking care of it quick.
Regards, Soyeb
On Sat, Aug 1, 2020 at 1:47 AM srrichter<EMAIL_ADDRESS>wrote:

The files were temporally down and are back online now.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ozendelait/rvc_devkit/issues/26#issuecomment-667338837,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGCMVB7KMTSD5ZSTDDTEI5LR6MRFRANCNFSM4POFUQMA
.


Rebased and Push : d3.js repeatition issue

Hey @rishavanand
I just rebase pushed again.

[X] fixed: 3d.js repetition

There are still some conflicts. Please rebase.


Test discovery fails

Environment data

VS Code version: 1.42.1
Extension version (available under the Extensions sidebar): 2020.2.64397
OS and version: MacOS 10.15.3
Python version (& distribution if applicable, e.g. Anaconda): Python 3.7.4 (Conda 4.8.1)
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): Docker Desktop for Mac 2.2.0
Relevant/affected Python packages and their versions: pytest 5.3.5
Relevant/affected Python-related VS Code extensions and their versions: Remote - Containers 0.101.1 Remote - SSH 0.49.0

Expected behaviour
Discovers pytest tests.
Actual behaviour
Test discovery fails. Pytest succeeds in CLI.
Steps to reproduce:

Suspects the problem occurs when some dependency module's API del returns None

Logs
Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)
Traceback (most recent call last):
  File "/root/.vscode-server/extensions/ms-python.python-2020.2.64397/pythonFiles/testing_tools/run_adapter.py", line 15, in <module>
    main(tool, cmd, subargs, toolargs)
  File "/root/.vscode-server/extensions/ms-python.python-2020.2.64397/pythonFiles/testing_tools/adapter/__main__.py", line 87, in main
    parents, result = run(toolargs, **subargs)
  File "/root/.vscode-server/extensions/ms-python.python-2020.2.64397/pythonFiles/testing_tools/adapter/pytest/_discovery.py", line 39, in discover
    raise Exception("pytest discovery failed (exit code {})".format(ec))
Exception: pytest discovery failed (exit code 2)
Exception ignored in: <function DepedencyApi.__del__ at 0x7fe187dea9e0>
Traceback (most recent call last):
  File "/opt/conda/lib/python3.7/site-packages/dependency/module.py", line 179, in __del__
  File "/opt/conda/lib/python3.7/site-packages/dependency/module.py", line 210, in close
TypeError: 'NoneType' object is not callable

Output from Console under the Developer Tools panel (toggle Developer Tools on under Help; turn on source maps to make any tracebacks be useful by running Enable source map support for extension debugging)
Traceback (most recent call last):
  File "/root/.vscode-server/extensions/ms-python.python-2020.2.64397/pythonFiles/testing_tools/run_adapter.py", line 15, in <module>
    main(tool, cmd, subargs, toolargs)
  File "/root/.vscode-server/extensions/ms-python.python-2020.2.64397/pythonFiles/testing_tools/adapter/__main__.py", line 87, in main
    parents, result = run(toolargs, **subargs)
  File "/root/.vscode-server/extensions/ms-python.python-2020.2.64397/pythonFiles/testing_tools/adapter/pytest/_discovery.py", line 39, in discover
    raise Exception("pytest discovery failed (exit code {})".format(ec))
Exception: pytest discovery failed (exit code 2)
Exception ignored in: <function DepedencyApi.__del__ at 0x7fe187dea9e0>
Traceback (most recent call last):
  File "/opt/conda/lib/python3.7/site-packages/dependency/module.py", line 179, in __del__
  File "/opt/conda/lib/python3.7/site-packages/dependency/module.py", line 210, in close
TypeError: 'NoneType' object is not callable

at ChildProcess.<anonymous> (/root/.vscode-server/extensions/ms-python.python-2020.2.64397/out/client/extension.js:1:455844)
    at Object.onceWrapper (events.js:288:20)
    at ChildProcess.emit (events.js:200:13)
    at maybeClose (internal/child_process.js:1021:16)
    at Socket.<anonymous> (internal/child_process.js:430:11)
    at Socket.emit (events.js:200:13)
    at Pipe.<anonymous> (net.js:586:12)]

@lseongjoo, thanks for letting us know about this.  We'll get back to you as soon as we can.

@lseongjoo, anything written to stderr while discovery is running will cause it to fail.  (Unlike pytest itself, the extension does not ignore failures.)
We have plans for making extraneous output a non-issue.  See #6594.  Until then, there isn't much we can do about this problem.


fix: pause request stream on backpressure

The request stream should be paused if the downstream is indicating that it cannot handle any more data at the moment. The request stream should be resumed once the downstream does accept data again. This reduces memory consumption and potentially out of memory errors when
a result stream is piped into a slow writer.
Fixes #934

This change looks good to me @olavloite. Thanks for working on this. I can't say I have the expertise to review it properly. @bcoe could I kindly ask you to take a look to see if this is reasonable?

I'm also very confused by these test failures that are happening on all PRs. I can't reproduce it locally.

I've been doing some additional testing with and without this fix using the function below. It does a select from a Spanner database, transforms the rows into JSON strings and writes that to a file. There is also a custom transformer in the pipeline that artificially slows the write progress every 50 rows to simulate a slow flush.
Running this script with/without the change in this PR on mid-sized (87MB) and a huge (2GB) result set gives the following results for maximum memory usage:
Normal result set (87MB)

Without this fix: 324MB
With this fix: 330MB

Huge result set (2GB)

Without this fix: out-of-memory error (max heap size was set to 1.5GB)
With this fix: 918MB

The exact effect of this fix will depend a lot on multiple factors:

The size of the result set that is streamed.
The size of the individual partial result sets that Cloud Spanner generates.
The delay in the pipeline.

Larger values for any of the above will result in higher memory usage in all cases, and without this fix it can cause the entire result set to be loaded into memory.
Without slow flush
It should also be noted that streaming result sets will in most cases be extremely efficient. Running the same test without the simulated slow flushes show the same results both with and without this fix. It also shows the effect of how Spanner chunks the result set. The memory consumption when streaming the huge result set is a lot lower than when streaming the normal result set (test results are equal with/without this fix):

Normal result set: 299MB
Huge result set: 33MB

Test script
async function queryWithMemUsage(instanceId, databaseId, projectId) {
  // Imports the Google Cloud client library
  const {Spanner} = require('@google-cloud/spanner');

  // eslint-disable-next-line node/no-unpublished-require
  // const {Spanner} = require('../build/src');
  const fs = require('fs');
  const stream = require('stream');
  const util = require('util');
  // eslint-disable-next-line node/no-unsupported-features/node-builtins
  const pipeline = util.promisify(stream.pipeline);

  // Creates a client
  const spanner = new Spanner({
    projectId: projectId,
  });

  // Gets a reference to a Cloud Spanner instance and database
  const instance = spanner.instance(instanceId);
  const database = instance.database(databaseId);

  const query = {
    sql: `SELECT *
          FROM TableWithAllColumnTypes
          ORDER BY ColInt64`,
  };

  let count = 0;
  let maxMemMeasured = 0;
  const fileStream = fs.createWriteStream('/home/loite/rs.txt');
  const rs = database.runStream(query);

  console.time('process result set');
  // eslint-disable-next-line node/no-unsupported-features/node-builtins
  await pipeline(
    rs,
    new stream.Transform({
      objectMode: true,
      highWaterMark: 100,
      transform(chunk, encoding, callback) {
        count++;
        if (count % 100 === 0) {
          console.log(`Processed ${count} rows so far`);
          global.gc();
          const used = process.memoryUsage().heapUsed / 1024 / 1024;
          const memUsed = Math.round(used * 100) / 100;
          console.log(`Current mem usage: ${memUsed} MB`);
          maxMemMeasured = Math.max(maxMemMeasured, memUsed);
        }
        this.push(`${JSON.stringify(chunk.toJSON({wrapNumbers: true}))}\n`);
        callback();
      },
    }),
    // Create an artificially slow transformer to simulate network latency.
    new stream.Transform({
      highWaterMark: 100,
      transform(chunk, encoding, callback) {
        // Simulate a slow flush every 50 records.
        if (count % 50 === 0) {
          setTimeout(() => {
            this.push(chunk, encoding);
            callback();
          }, Math.random() * 200 + 100);
        } else {
          this.push(chunk, encoding);
          callback();
        }
      },
    }),
    fileStream
  );
  console.timeEnd('process result set');
  console.log(`Max memory used: ${maxMemMeasured} MB`);
  console.log('Finished writing file');
  await database.close();
}

@olavloite this is pretty great. We've been carrying around the subtle issue where we have a single data event that needs to be split apart and forwarded to the next stream as multiple data events. That's the core issue we're attacking here, right?
One thing I noticed-- it looks like the transform stream would indefinitely try if the consumer never becomes ready. We probably want a cap on the maximum amount of attempts to avoid that.
I have a module "split-array-stream" which currently has the same problem. We use split-array-stream throughout various libraries, maybe even this one, although it looks like not from this file. I haven't merged this change yet, but would this class either be plug-and-playable here, or be useful in some way to incorporate in PartialResultStream? The description of this PR shows how it can be used: https://github.com/stephenplusplus/split-array-stream/pull/4
Note that it's not merged and released, as it has not yet had a formal review. However, at the time, I had put it through similar tests as you did for this change. Since it seems like we're attacking the same issue, I thought it could be worth checking out.
Let me know what you think!

@stephenplusplus
Thanks for having a look at this.

We've been carrying around the subtle issue where we have a single data event that needs to be split apart and forwarded to the next stream as multiple data events. That's the core issue we're attacking here, right?

Correct. Cloud Spanner returns a stream of PartialResultSets which each contains a set of rows. The PartialResultSets are split into the individual rows which are forwarded to the next stream.

One thing I noticed-- it looks like the transform stream would indefinitely try if the consumer never becomes ready. We probably want a cap on the maximum amount of attempts to avoid that.

Good point. I'll add an escape for that possibility.
Regarding split-array-stream: That's interesting. And also quite a bit to digest to really understand what it does :-) I'll look into it.
It does however seem that it's solving much of the same problem that we are having here, but there's one thing that might be different (or that I'm missing): During my testing of the Spanner client library without this PR I was able to make it go out of memory. That seems to have been caused by request stream that kept pushing PartialResultSets into the PartialResultSetStream. To prevent that, this change also explicitly pauses and resumes the request stream as needed. Does the split-array-stream also support that, either in this way or some other way?

@stephenplusplus Would you mind taking a second look at this?

@olavloite looks good to me. Just a thought that I know would be inconvenient to implement, and potentially not worth it because of that-- after this change, the stream philosophy of "each stream doesn't concern itself with another stream" is broken when we pass PartialResultStream needs to know about requestStream.
Possibly a way around this would be to have the PRS emit events to indicate it needs a break, and concerned streams could react as a result.
Something like:
values.forEach(value => {
  res = this._addValue(value) && res;
  if (!res && !this._requestStream.isPaused()) {
-    this._requestStream.pause();
+    this.emit('paused');
  }
});

requestsStream
  .pipe(batchAndSplitOnTokenStream)
  // If we get this error, the checkpoint stream has flushed any rows
  // it had queued. We can now destroy the user's stream, as our retry
  // attempts are over.
  .on('error', (err: Error) => userStream.destroy(err))
  .on('checkpoint', (row: google.spanner.v1.PartialResultSet) => {
    lastResumeToken = row.resumeToken;
  })
  .pipe(userStream)
+  .on('paused', () => {
+    requestsStream.pause();
+  })

In fact, writing that made me realize that should work by default, shouldn't it? The only reason we don't get built-in backpressure is because we do the one-to-many split of data events. But now that we push each data event singularly, you should be able to pause the PRS stream itself and have the streams before it react properly automatically.

Just a thought that I know would be inconvenient to implement, and potentially not worth it because of that-- after this change, the stream philosophy of "each stream doesn't concern itself with another stream" is broken when we pass PartialResultStream needs to know about requestStream.

I like the idea of this. It does make it more idiomatic while the end result is the same. We do need two events, though: paused and resumed. The implementation is straightforward.

Thanks for doing that!


Micromax AQ4501 + 6.0.1 video recording is not working

Recording on this particular device doesn't work
adb shell
shell@AQ4501_sprout:/ $ cd sdcard/flick
/system/bin/sh: cd: /sdcard/flick: No such file or directory
2|shell@AQ4501_sprout:/ $ cd sdcard
/system/bin/sh: cd: /sdcard: No such file or directory

flick video -a stop -p android
shows message Stopping Recorder!!!
It will nice to throw error couldn't perform recording on this device.
Please review

for this particular devicels -ls after adb shell
has got below entry
lrwxrwxrwx root     root              2017-07-17 10:45 sdcard -> /storage/self/primary

you don't have to run flick inside the device .... do gem install flick on your machine and then run it against the decide udid

@saikrishna321 Yes, but some android devices don't have this particular directory and it fails as mentioned in original description. In that case user should be informed about it

I added a temporary fix for this. Flick will just abort the run if the device is non-readable. I don't have time to come up with a more elaborate solution right now.


 doesn't imply

https://travis-ci.org/whatwg/quirks/builds/395827182

If you use markdown paragraphs you won't have a problem with this. 😀


[5.3] Notification - Unable to  BroadcastNow

Laravel Version: 5.3.28
PHP Version:7.0
Database Driver & Version: N/A

Description:
I need to broadcast the event now rather than through the queue. There is currently no way to say it should broadcast now.
Steps To Reproduce:
Create a new notification , looked through the api saw
class BroadcastNotificationCreated implements ShouldBroadcast
Suggested Solution (may write a PR for it depending if you think its the right way) :
Would need to make another class saying it should implement ShouldBroadcastNow, unless reflection classes can add interfaces?

Submitted a PR for that https://github.com/laravel/framework/pull/16867
Let's continue the discussion there
Thank you :)


Assign method does not work in custom base entity for nested entities

Describe the bug
I have a custom base entity of which all of my entities extend from. This entity base has an assign method which I'd like to use for both my constructor and when merging entities.

When using the assign method in the constructor of the base entity, my nested objects don't get perstisted. However, when I move this assign method to the constructors of the Entities itself, the assign works as expected.
I'd like to use this assign for my base entity constructor (so I don't have to call it all entities) and also use it to merge entities after they've been created. This makes it so I can pass DTOs (that have been validated), in order to create (using the constructor) and update entities (using the assign method that is called in the constructor).
Entities
Base entity:

abstract class that extends the BaseEntity from MikroOrm
Used for shared variables

Question entity:

extends Base entity
has a 1:M to Option

Option entity

extends Base Entity
has a M:1 to Question

Tests
I've setup 4 tests to show the issue in 2 test files.
in-base.test.ts
I assign the body of my DTO in the custom entity base constructor.
Should create nested entities with assign in base
This test fails because it expects options to be persisted to the database. For some reason, using assign in the custom base entity constructor, does not persist the options.
should update nested entities with assign in base
This test succeeds because I used the create method first, instead of the constructor, and update the object, using the same assign method.
not-in-base.test.ts
I assign the body of my DTO in each specific entity constructor.
I've also tested leaving out the assign in the option constructor, but that does not seem to make a difference.
should create nested entities with assign not in base
This test succeeds because it expects options to be persisted to the database. Which is the case, if the assign is not in the constructor of the custom base entity.
should update nested entities with assign not in base
This test succeeds. I did not have to use the .create method, but just used the constructor. (because I've tested should create nested entities with assign not in base mentioned above)
To Reproduce
I've setup a reproduction repo with a couple of tests:
https://github.com/driescroons/mikro-orm-constructor-assign-issue
To run
yarn

docker-compose up -d

yarn test

Versions

Dependency
Version

node
14.15.4

typescript
4.2.4

mikro-orm
4.5.5

your-driver
postgresql

I had seen this comment from this issue and wanted to check if I could just pass (validated) DTOs (with nested entities) without having to do any transformations to the objects.

I said this many times, assign was designed for updating existing entities, so using it from inside ctor seems quite weird. Also seeing that you are feeding the em parameter via RequestContext helper sounds weird too, but as long as you managed to run everything inside the handler, it should be fine'ish - still not perfect, you need to pass the right EM instance there, and there can be multiple for a single request (e.g. nested explicit transactions). Doing assign(new Entity, {...}) is literally the opposite of what the API was designed for, we have em.create for that (and the behaviour is not the same, especially when it comes to nested entities and collections). But as long as you are aware of what you are doing, it should work somehow 🤷
Worth noting, that the updateNestedEntities parameter will change behaviour, I would not use that as the (in your case unchangable) default, unless you understand what it does, especially for collections. See #1811.
FYI this kind of reproductions are not very good for me, if you want to make this nicer, one single file test case with 4 methods would be 100x better - e.g. just the one file so I can copy&paste into the repo directly, right now there are way too many files and moving parts in general, also it's nice to provide test case, but if you use different testing/assertion FW than the ORM, it just adds more work to me).
Anyway, I managed to port it to jest and plug it into the ORM codebase, and the problem here is that you are calling assign too early - before the collections gets instanced. As you are doing it inside the base entity, it is executed earlier than the leaf entity ctor, which effectively means that the property intializers of its properties are not yet executed. In other words, you are trying to assign to a collection that is not there, so it gets ignored.

I had seen this comment from this issue and wanted to check if I could just pass (validated) DTOs (with nested entities) without having to do any transformations to the objects.

This is just about the new EntityDTO type that is new in v5.

Thanks for the quick reply. I'll use the .create method when initializing new entities.
I used two test files because of the changes in the entities. I figured it was going to be too complex if I just put everything into 1 test file. Makes sense though. As for mocha + chai, my bad. I should've looked at the tests in the repository.

Best way for me is to add a test to tests/issues folder (either make a PR, or just copy the test code into issue).
Btw I'd call this a won't fix, even if we handle the "collection instance is not yet there" problem in assign, the leaf entity constructor would be called right after the assign from base entity, and it would override the (just updated) collection instance with new Collection().

Base.constructor is called, after Base entity property intializers, but before child entity ones
Base.constructor calls assign, we still not have the initializers of child entity (e.g. Question.options is undefined)
let's say we create the instance automatically and pass the values, Base.options will be now the updated collection
Question.constructor is called, executing Question initializers first, so overriding the Question.options with new Collection()