Fix hello_world.py test

Fixed syntax errors but blocked by bug. Opened ticket: #158

Running into issues with getting the follow-on to access files in the GlobalFileStore.  Will need to talk with Benedict about intended functionality.


Local custom toolcalling

What does this PR do?

Add custom tool calling for local inferencing
Handles multiple custom tool calls
Show "..." when prefill/inferencing is happening
Fix in getRecentSavedTextMessages() to ignore the temporary empty response

Feature/Issue validation/testing/test plan
https://github.com/user-attachments/assets/d6b2fc51-8cd9-47f1-84e1-2fe0d3b57f71
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[X] Did you read the contributor guideline,
Pull Request section?
[ ] Was this discussed/approved via a Github issue? Please add a link
to it if that's the case.
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

Thanks for contributing 🎉!

some rebasing may be required so not merging at the moment.

We'll soon move the tool prompt format to the SDK, right? :)

That's correct we have a task planned for this.

We'll soon move the tool prompt format to the SDK, right? :)

Yea, next release with Agent flow together. Just enabled streaming in SDK gen in this release.


Derived Service and EndpointSlice is created at member cluster, not parent cluster

I follow this document(https://clusternet.io/docs/tutorials/mutil-cluster-service/visting-services-in-child-cluster/ ) to enalbe MultiClusterService,  the serviceimport is created at parent cluster, not at member cluster,  there is no Derived Service and EndpointSlice created at member cluster.  however,  the Derived Service  shoud be accessd at member cluster.

@zjzhangkui Please check whether ServiceExport exists in child clusters. Also please check the logs of clusternet-agent and find out some suspicious error traces.
cc @lmxia Please take a look. Thanks.

As expected, Derived Service  should be created at parent cluster  rather  NOT member cluster. Sorry i did't really get the error messages.

As expected, Derived Service  should be created at parent cluster rather NOT member cluster. Sorry i did't really get the error messages. Could you please give us more further info ?

@lmxia If Derived Service is create at parent cluster, how to access the service by service name for application deployed at member cluster? the parent cluste is controll cluster, and applications is deployed at member cluster.
Does clusternet-controller-manager will create serviceimport at all child clusters which has serviceexport created? If not, the crd of service import created at child cluster for what?

As expected, Derived Service  should be created at parent cluster rather NOT member cluster. Sorry i did't really get the error messages. Could you please give us more further info ?

@lmxia If Derived Service is create at parent cluster, how to access the service by service name for application deployed at member cluster? the parent cluste is controll cluster, and applications is deployed at member cluster.
Does clusternet-controller-manager will create serviceimport at all child clusters which has serviceexport created? If not, the crd of service import created at child cluster for what?

That is a good question,for now we only support  north-south service traffic from parent cluster and this feature has a pre-condition: parent cluster can visit child clusters pod CIDR directly. Surely it's limited and tasteless, so we provide a sulotion to  integrate with submariner. , and keep Clusternet mainly focus on application and cluster management.
As you said, submariner will handle and sync serviceimports accross clusters.


Fix typo

a -> an

@changeworld : Thanks for your contribution! The author, @anirudhcavale, has been notified to review your proposed change.


SQL dump file not imported during container creating

I want to import the database structure of my project when the container is being created but looks like it does nothing.
This is how I have the container set up:
login-data-mysql:
    image: percona/percona-server
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
      - MYSQL_DATABASE=users
      - MYSQL_USER=users
      - MYSQL_PASSWORD=******
    volumes:
      - ./login/docker/mysql:/docker-entrypoint-initdb.d:ro

Inside of login/docker/mysql there is a file called dump.sql but it never gets imported.
What am I doing wrong? Any help would be appreciated.

Looks like you're using percona/percona-server, which comes from https://github.com/percona/percona-docker/tree/master/percona-server (and from what I can tell, doesn't support the /docker-entrypoint-initdb.d bit you're trying to use).


Add eslint, prettier & github actions

I've added a basic eslint & prettier config.
I've also added a github action that checks these + typecheck + runs the tests.

Let me know if the rules need to be adjusted

Closing this one in favour of #35


Remove SQLite Validations table

This PR is a small step in preparation for self-contained portable shards. The ledger.Validations table and related indexes are removed entirely. The Validations table stores observed validations but the data is not used by rippled. The same information can be gathered using a WebSocket subscription.

Jenkins Build Summary
Built from this commit
Built at 20190619 - 02:00:05
Test Results

Build Type
Log
Result
Status

msvc.Debug
logfile
1178 cases, 0 failed, t: 568s
PASS :white_check_mark:

msvc.Debug, NINJA_BUILD=true
logfile
1178 cases, 0 failed, t: 592s
PASS :white_check_mark:

msvc.Debug -Dunity=OFF
logfile
1177 cases, 0 failed, t: 1078s
PASS :white_check_mark:

msvc.Release
logfile
1178 cases, 0 failed, t: 393s
PASS :white_check_mark:

gcc.Release -Dassert=ON, MANUAL_TESTS=true
logfile
915 cases, 0 failed, t: 4m48s
PASS :white_check_mark:

docs, TARGET=docs
logfile
1 cases, 0 failed, t: 0m1s
PASS :white_check_mark:

clang.Debug
logfile
1178 cases, 0 failed, t: 2m47s
PASS :white_check_mark:

clang.Debug -Dunity=OFF
logfile
1177 cases, 0 failed, t: 1m17s
PASS :white_check_mark:

gcc.Debug -Dcoverage=ON, TARGET=coverage_report, SKIP_TESTS=true
logfile
1178 cases, 0 failed, t: 16m36s
PASS :white_check_mark:

gcc.Debug
logfile
1178 cases, 0 failed, t: 2m52s
PASS :white_check_mark:

clang.Release -Dassert=ON
logfile
1178 cases, 0 failed, t: 4m43s
PASS :white_check_mark:

gcc.Debug -Dunity=OFF
logfile
1177 cases, 0 failed, t: 5m17s
PASS :white_check_mark:

gcc.Debug -Dstatic=OFF
logfile
1178 cases, 0 failed, t: 2m54s
PASS :white_check_mark:

gcc.Release -Dassert=ON
logfile
1178 cases, 0 failed, t: 4m50s
PASS :white_check_mark:

gcc.Debug -Dstatic=OFF -DBUILD_SHARED_LIBS=ON
logfile
1178 cases, 0 failed, t: 2m53s
PASS :white_check_mark:

gcc.Debug, NINJA_BUILD=true
logfile
1178 cases, 0 failed, t: 2m44s
PASS :white_check_mark:

clang.Debug -Dunity=OFF -Dsan=address, PARALLEL_TESTS=false, DEBUGGER=false
logfile
1177 cases, 0 failed, t: 11m11s
PASS :white_check_mark:

clang.Debug -Dunity=OFF -Dsan=undefined, PARALLEL_TESTS=false
logfile
1177 cases, 0 failed, t: 12m10s
PASS :white_check_mark:

@miguelportilla, regarding verifying "... an existing ledger database is properly modified and the new validation.Validations table is populated", what methods would you suggest for doing this verification on macOS?
Also, just from a curiosity stand point, what's the backwards compatibility story for this change?  What will happen if I...

Run a new server (with this change) that migrates the database,
Shut that server down, and then
Use an older server version without wiping the database.

I suspect it's not pretty, and that may be inevitable.  But we should have some idea what to expect.  Thanks.

@scottschurr I recommend inspecting the tables before and after on the ledger and validation databases. The number of table records should be the same after migration. The ledger database should be absent of the indexes and the Validations table etc... You can do that using a tool like sqlitebrowser.org (Mac OS is supported), which is easy to use.
Although I haven't tested it, running an older rippled version after this branch edition should work fine. The older rippled version will ignore the new validation database and create a new Validations table and indexes inside the ledger database.
@scottschurr @thejohnfreeman @mtrippled  Please halt review of this PR until further notice. After some discussion with David and Nik, I will be pushing a commit that removes the Validations table entirely from the project.

Looks like the build failure, at least in part, is due to this line: https://github.com/ripple/rippled/blob/828b531764e92bc0591ba3e67600e5f3a6b0d031/src/test/consensus/Validations_test.cpp#L740
Clang thinks that's an unused variable.  Remove that line and it builds for me.
Beyond that, I see one unit test failure in SHAMapStore clearPrior
#5 failed: unhandled exception: sqlite3_statement_backend::prepare: no such table: Validations while preparing "SELECT count(*) AS rows FROM Validations;"

Hope that helps.

can src/test/csf/Peer.h|148 col 9| onStale(Validation&& v) be removed too?

@scottschurr @mtrippled @thejohnfreeman The PR is ready for review, thanks.

FWIW, I just remembered to try the experiment of running this branch and then running the current develop.
There is an interesting artifact to be aware of.

After running a rippled server from this branch I gracefully shutdown that server.
Without changing any of the database I started a rippled server using 1.3.0-b6.  It started fine.
I let the server achieve sync.
After syncing I requested a graceful shutdown of 1.3.0-b6 and got this message:

libc++abi.dylib: terminating with uncaught exception of type boost::system::system_error: No such file or directory
Abort trap: 6

I only saw this symptom once -- the first time I tried it.  I attempted unsuccessfully to reproduce the symptom three additional times.  So I'm unsure anything needs to be done.  But you should be aware.

@mtrippled I think your suggested log changes to RCLValidations.cpp are outside this scope and may be better suited for another PR.

I like the lambda.  Still :+1: from me.

Oh, the commit message should be "Validations table" not "validation database".

@miguelportilla Can you rebase this on to the latest develop? I'm having trouble building it, and I think it's more because of the older dependencies.

Thanks for the feedback and review! @scottschurr @mtrippled @thejohnfreeman @ximinez

Incorporated in #2995.


Preview doesn't work with SECURE_SSL_REDIRECT + SECURE_PROXY_SSL_HEADER

Issue Summary
With the following configuration:
MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    # ...
    'wagtail.wagtailcore.middleware.SiteMiddleware',
    'wagtail.wagtailredirects.middleware.RedirectMiddleware',
]

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

SECURE_SSL_REDIRECT = True

The preview fails with this stack trace:
AttributeError: 'WSGIRequest' object has no attribute 'site'
  File "django/core/handlers/exception.py", line 39, in inner
    response = get_response(request)
  File "django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "django/core/handlers/base.py", line 217, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "django/core/handlers/base.py", line 215, in _get_response
    response = response.render()
  File "django/template/response.py", line 109, in render
    self.content = self.rendered_content
  File "django/template/response.py", line 86, in rendered_content
    content = template.render(context, self._request)
  File "django/template/backends/jinja2.py", line 71, in render
    return self.template.render(context)
  File "jinja2/environment.py", line 989, in render
    return self.environment.handle_exception(exc_info, True)
  File "jinja2/environment.py", line 754, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/app/backend/templates/blog/post.html", line 1, in top-level template code
    {% extends 'website/cms.html' %}
  File "/app/backend/templates/website/cms.html", line 1, in top-level template code
    {% extends 'website/base.html' %}
  File "/app/backend/templates/website/base.html", line 40, in top-level template code
    {% block content %}{% endblock content %}
  File "/app/backend/templates/blog/post.html", line 18, in block "content"

{{ page.blog.title }}

  File "wagtail/wagtailcore/templatetags/wagtailcore_tags.py", line 21, in pageurl
    return page.relative_url(context['request'].site)

It looks like this happens because the SiteMiddleware doesn't run, however, I'm not sure why it doesn't run, given that wagtail runs all middleware, regardless of responses they return:
            # call each middleware in turn and throw away any responses that they might return
            for middleware_method in handler._request_middleware:
                middleware_method(request)

Steps to Reproduce
You need a project deployed over HTTPS with the settings above.
Then go to the wagtail admin and preview any page.
Technical details

Python version: 3.5.2
Django version: 1.10.2

with a MIDDLEWARE_CLASSES setting, not MIDDLEWARE

Wagtail version: 1.6.3
Browser version: latest Chrome or Firefox

I believe the patch I just submitted is the correct way to fix this issue.
It's consistent with the treatment of HTTP_X_FORWARDED_FOR.


when test methods are in base class, traits on a child class, they show as

I have this:
public abstract class A
{
   [Fact]
   public void TestA()
   {

   }
}

[Trait("Type", "TypeB")]
public class B : A, IClassFixture<FixtureB>
{
 // no test methods here, just the setup for class fixture
}

[Trait("Type", "TypeC")]
public class C : A, IClassFixture<FixtureC>
{
 // no test methods here, just the setup for class fixture
}

Unit Test Explorer and Unit Test Sessions show these as uncategorized and the categories Type[TypeB] and Type[TypeC] do not include these tests in the view. However these tests are run by xunit, when I select the whole category and click Run/Debug.
Is this something which can be fixed here or a resharper problem?

I've just tested with ReSharper 2016.1.1, and it seems to be working as you'd expect (ReSharper shows both Type[TypeB] and Type[TypeC], listing A.TestA under both).


Recipients issue

I have this very weird issue when trying to post a transmissioni using recipients from the API.

$response = $sparky->request( 'GET', 'recipient-lists/test-list?show_recipients=true' )->wait();
$recipients = $response->getBody()['results']['recipients'];
echo json_encode( $recipients, JSON_PRETTY_PRINT );

$transmission = $sparky->transmissions->post([
	'campaign_id' => 'test_campaign',
	'content' => [ 'template_id' => 'templateid' ],
	'recipients' => $recipients
]);

$response = $transmission->wait();

[
    {
        "address": {
            "email"<EMAIL_ADDRESS>            "name": "Eduard"
        },
        "return_path": ""
    },
    {
        "address": {
            "email"<EMAIL_ADDRESS>            "name": "Eduard"
        },
        "return_path": ""
    },
    {
        "address": {
            "email"<EMAIL_ADDRESS>            "name": "Test"
        },
        "return_path": ""
    }
]

Fatal error: Uncaught exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: POST https://api.sparkpost.com/api/v1/transmissions/ resulted in a 400 Bad Request response: { "errors": [ { "message": "At least one valid recipient is required", "code": 5002 } ] }

To note the fact that I installed this via Composer so everything works fine.
Weird thing is that if I try using an inline recipients list ( as in manually writing the same exact array of recipients ), it goes through perfectly.
Any ideas on this one ?

Hey @EduardJS. Try the sending the same post request but use the content fields instead of the template. Let me know what happens.

@avrahamgoldman Hello!

Array
(
    [0] => Array
        (
            [address] => Array
                (
                    [email] =><EMAIL_ADDRESS>                    [name] => Geir
                )

            [return_path] =>
        )

    [1] => Array
        (
            [address] => Array
                (
                    [email] =><EMAIL_ADDRESS>                    [name] => Eduard
                )

            [return_path] =>
        )

    [2] => Array
        (
            [address] => Array
                (
                    [email] =><EMAIL_ADDRESS>                    [name] => Tor
                )

            [return_path] =>
        )

    [3] => Array
        (
            [address] => Array
                (
                    [email] =><EMAIL_ADDRESS>                    [name] => Example
                )

            [return_path] =>
        )

)

Fatal error:  Uncaught exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: `POST https://api.sparkpost.com/api/v1/transmissions/` resulted in a `400 Bad Request` response:
{ "errors": [ { "message": "At least one valid recipient is required", "code": 5002 } ] }
' in /var/www/vhosts/bio365.no/email.bio365.no/lib/sparkpost/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:107
Stack trace:
#0 /var/www/vhosts/bio365.no/email.bio365.no/lib/sparkpost/vendor/guzzlehttp/guzzle/src/Middleware.php(65): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response))
#1 /var/www/vhosts/bio365.no/email.bio365.no/lib/sparkpost/vendor/guzzlehttp/promises/src/Promise.php(203): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response))
#2 /var/www/vhosts/bio365.no/email.bio365.no/lib/sparkpost/vendor/guzzlehttp/promises/src/Promise.php(156): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), Array)
#3 /var/www/vh in /var/www/vhosts/bio365.no/email.bio365.no/lib/sparkpost/lib/SparkPost/SparkPostPromise.php on line 69

I have replaced the emails here with some fake ones.

@avrahamgoldman Any news on this one ?

Hi @EduardJS, sorry about the delay. It looks like the last error you got is because you passed in the recipients as a JSON encoded string - it takes an Array.
Your original problem comes from the way that the API is giving back the recipients. The API is returning each recipient with a blank return_path. The error
 { "errors": [ { "message": "At least one valid recipient is required", "code": 5002 } ] } is because there is no email specified in that field. The best solution for this is to strip that value out of each of the recipients.
In between getting the recipients and the transmission, loop through each recipient and unset return_path.
for ($i = 0; $i < count($recipients); $i++) {
	unset($recipients[$i]['return_path']);
}

Works fine after removing the return_path.
foreach ( $recipients as &$recipient )
   unset( $recipient['return_path'] );

Took the opportunity to optimize your code a bit.

Hello! I sent 2 emails to the support, nobody replied so I thought asking here. I have successfully sent the transmission using the code above, id<PHONE_NUMBER>1899596. At that point in time, using GET /transmissions would have returned the specific transmission as being submitted. Problem is that in my dashboard, I cannot see anything. The list had 24k recipients, knowing the limit is 20k daily, was the transmission "denied" ? What's the expected behaviour in this case ? I thought it would just take 20k and ignore the rest of 4 thousands.
Why would it show "submitted" if after 4 days I have nothing in my GET /transmissions nor in the dashboard ?

Hi again @EduardJS,
The best place to ask general questions is in our community slack. You can also check out this support article which might answer your question.


Importing decks from ThronesDB

Hello, ThronesDB webmaster here.
It came to my attention that it's currently a bit difficult to import a deck into Throneteki, from ThronesDB. I'd like to discuss possible ways to make the process smoother.
One possibility is for Throneteki to support ThronesDB's API to read public decks (doesn't require authentication) and private decks (requires authentication via Oauth).
Another possibility is for us to agree on a common deck format that could be exported from ThronesDB and imported into Throneteki. Such a format would have a focus on a common nomenclature of card identifiers and a common format for card quantities.
What do you think? Is it something you'd be ready to work on?

Hey!
Thanks for getting in touch.
I'm happy to implement to the API but it's a little down the order of priorities at the moment.
In the mean time, I'm also happy to agree on a format for the export of the data.
Currently we support copy/pasting the file generated by ThronesDB, or someone selecting all of the text on the deck view page and pasting that into the deck builder.  Both work, but the format involves downloading a file, and the latter is not super intuitive.
Netrunnerdb (which i believe is also your site) has a handy little "jinteki,net format" button which gives you the decklist in a nice simplified format which can be pasted direct into jinteki's deck builder.  The only complication for thrones is the pack name is significant.
The deckbuilder's native format is:

or by example:
3 Eddard Stark (Core)
But I can tweak the parser to understand whatever format we can agree on

What if the format was a json serialization of the deck? The benefit is that there is no need for parsing card names and pack names, no need for guesswork. Also, you'll only need to write the deserialization once, and you'll be ready to use the API when the time comes. The downside is that it is not user-readable.
The json format has the following relevant keys:
- name
- faction_code
- agendas
- slots

Where slots is an object which keys are the card codes and the values are the card quantities.
So a complete serialization is for example:
{
   "name":"Secrets and Schemes (1 core set)",
   "faction_code":"lannister",
   "agendas":[
      "01205"
   ],
   "slots":{
      "01003":1,
      "01007":1,
      "01013":1,
      "01020":1,
      "01021":1,
      "01024":1,
      "01026":1,
      "01028":2,
      "01029":2,
      "01030":2,
      "01031":2,
      "01032":1,
      "01033":1,
      "01034":1,
      "01035":2,
      "01036":1,
      "01037":1,
      "01038":1,
      "01039":3,
      "01040":3,
      "01041":1,
      "01042":2,
      "01043":2,
      "01044":1,
      "01045":1,
      "01084":1,
      "01085":1,
      "01086":1,
      "01087":1,
      "01088":1,
      "01089":1,
      "01090":1,
      "01091":1,
      "01092":1,
      "01093":1,
      "01094":1,
      "01095":1,
      "01096":1,
      "01097":1,
      "01098":1,
      "01099":2,
      "01100":1,
      "01101":1,
      "01102":1,
      "01179":1,
      "01180":1,
      "01181":1,
      "01183":1,
      "01184":1,
      "01185":1,
      "01187":1,
      "01188":1,
      "01189":1,
      "01190":1,
      "01191":1,
      "01194":2,
      "01195":1,
      "01197":1,
      "01205":1
   }
}

The complete json can be fetched here: http://thronesdb.com/api/public/decklist/1
If you agree, Throneteki can display a button "Import deck" alongside the button "Add new deck". This would let a user copy the raw json from ThronesDB. On my side, I would add a button "Export for Throneteki" that would display the raw json, for the user to copy/paste it.

Sure, that works.
It has two benefits.

It encourages me to redo the way decks are stored on thronteki and
When I implement the thronesdb API it will be much simpler to do as it will be working with the same format

Ok, great. Let me know when you're ready to push to prod, I'll push the export the same day.

After thinking for a bit about this, I think we rather need the ability to keep specific decks synced between ThronesDB and Throneteki.
It happens to me often to develop decks on ThronesDB, import them on Throneteki, and then struggling when making changes on one site or another, to remember which version is the latest (and the fact Throneteki doesn't have a deck version number or changelog doesn't really help with that).
So I think what we really want is marking specific decks on Throneteki as originating from ThronesDB, and an easy way to sync them. It might be a one way sync I suspect, as ThronesDB is the place where people develop decks and I don't think we want to compete with its ease of deckbuilding on Throneteki. So we can expect people to always make changes to their deck there. On the other hand, we need to make trivial to import changes made there on Throneteki, with a button like "update this deck from ThronesDB".
This will require storing in the Throneteki deck representation a reference to the corresponding ThronesDB deck, I suspect. Once we have that, doing an initial import or a subsequent one for "syncing" would essentially be the same thing.
Bonus point: showing into the Throneteki deck list the version of the deck extracted from ThronesDB, as a way to reassure the players they are indeed working with the right version. We might even go further, by showing a "Warning: this deck is out of date w.r.t. ThronesDB" message where appropriate.

This would be more of a 'phase 2' integration, where we actually use the proper thronesdb to do this, I'm not against the idea.
@Alsciende FYI I've finally gotten around to doing the work on this, i'll probably be good to go sometime next week


Write a pytest plugin that opens the temp project after the test run

Would like to be able to run:
$ pytest -x -p open_test_project

Rationale: Often times, especially after a failed test, it's helpful to drop into the test project and re-run some commands, or look at the state of the project. This can also be useful during general development, as a way to diagnose ongoing development issues. (The -p flag tells pytest to use the specified plugin.)

[x] Make a plugin that opens a new terminal tab after the test session ends.
[x] Activate the virtual env in that tab.
[x] Run git log --pretty=oneline in that tab.
[ ] Clean up the implementation for macOS.
[ ] Write a brief mention of this in the docs.
[ ] Update changelog.
[ ] Merge to main.
[ ] Share a screencast of this in action, with a failing test.

Working notes

Running pytest -s shows output from test run, which is helpful in watching how the sample project is copied and activated to the temp directory.

Resuming work

Current command: pytest -x --open-test-project
Opens a new terminal tab with the following output:

Last login: Fri Jun 16 12:10:08 on ttys002
/var/folders/.../commands.sh ; exit;
.../commands.sh ; exit;
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   .gitignore
    modified:   Pipfile
    modified:   blog/settings.py

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .platform.app.yaml
    .platform/

no changes added to commit (use "git add" and/or "git commit -a")
b33357e77b72c5762bd9b289db6f6bcb9733c8a8 (HEAD -> main) Added simple_deploy to INSTALLED_APPS.
fc9e86de1b0bd8f82316cca5c186db2ce569a3f4 Removed unneeded dependency management files.
821f48376220758c539a24b1e5c7b38532a72061 (tag: INITIAL_STATE) Initial commit.

--- Feel free to poke around the temp test project! ---

(b_env) blog_project0$

This output is after a successful test run. After a failed test run, the project looks different because simple_deploy has probably been run?

Experimental support for now, but good enough to move on to higher-priority work.


Expand README

Add install instructions to the README and see if there is way to try and auto-install pacpy from pip (ones I upload it there).
Usage instructions needed to (as also with pacpy).

usage example added.
current install instructions added.
will keep this issue open because will need to be updated once pacpy is on pypi


Add Snap Strategy and DCGM snap

DCGM and smartctl- will be installed via snap. This PR creates the SnapStrategy so we can install, remove and check as it happens with other stratigies in the code base.
This PR is blocked by the https://github.com/canonical/dcgm-snap/pull/4 that adds port config for the DCGM exporter and transform it into a daemon service

@samuelallan72
The DCGM and Smartctl snaps are not ready yet. This PR can be pending until those snaps are available. The idea here is just start having conversations about the approach and not wait until is ready for trying to figure out what to do.

@gabrielcocenza  Would you mind separating this PR into two parts? The first part is common to both the smartctl-exporter-snap and dcgm-exporter-snap, so it would be more convenient to work on them in parallel if we decouple the first and second parts. Thanks!

SnapStrategy
Integrate dcgm exporter snap

I propose to merge SnapStrategy first.

while I agree that we should remove the constructor for consistency with the other strategies, I don't quite get why it would be preferable to move complexity to the install function, as that requires the caller to have deeper knowledge about how each strategy works and adds extra conditionals to HWToolHelper.install

I agree....
@aieri @jneo8 @samuelallan72  After putting more effort on how to integrate the dcgm snap I ended up noticing that we might not need to have a SnapStrategy for exporters that are snaped.
When we have debian packages or other binaries the Strategy is installing and removing the packages while the exporter on the service module is responsible to render the systemd configs and check the health of the daemons.
When we have a snap I'm not seeing the need to have this kind of separation and it's seems to me that it's simpler just handle everything as a service and we'll be able to do pretty much everything in just one module.
Please take a look at the draft PR that I've created at https://github.com/canonical/hardware-observer-operator/pull/319
Unfortunately this PR is showing to be hard to have the Generic snap class without a real implementation. In any case, I think this other PR has a cleaner approach

Closing this PR. The approach changed to not have a SnapStrategy and work directly with the exporter class itself. The new PR is at #319


Support micro-services application generation

Can you please elaborate on what this means exactly? Does it mean only monoliths are supported as of now?

Currently, we only support monolithic applications generation. As part of this ticket, we will add micro-service applications generation support.


Allow admins to edit requester comments

Refactor request comments into the comment table, and use existing comment editing functionality.
Introduced a new "visibility" setting to mark comments from the requester.
Fixes #490

Codecov Report

Merging #559 into newinternal-releasecandidate will not change coverage.
The diff coverage is 0.00%.

@@                      Coverage Diff                       @@
##             newinternal-releasecandidate    #559   +/-   ##
==============================================================
  Coverage                            0.70%   0.70%
- Complexity                           2241    2244    +3
==============================================================
  Files                                 173     173
  Lines                               11912   11912
==============================================================
  Hits                                   84      84
  Misses                              11828   11828

Impacted Files
Coverage Δ
Complexity Δ

includes/DataObjects/Comment.php
0.00% <0.00%> (ø)
17.00 <0.00> (ø)

includes/DataObjects/Request.php
9.77% <ø> (+0.68%)
37.00 <0.00> (-3.00)
:arrow_up:

includes/Pages/PageEditComment.php
0.00% <0.00%> (ø)
10.00 <0.00> (+1.00)

includes/Pages/PageViewRequest.php
0.00% <0.00%> (ø)
36.00 <0.00> (ø)

includes/Pages/Request/PageRequestAccount.php
0.00% <0.00%> (ø)
16.00 <7.00> (+5.00)

includes/SiteConfiguration.php
0.00% <ø> (ø)
98.00 <0.00> (ø)

Continue to review full report at Codecov.

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

Superseded


Switch to sqlite3 metadata storage

I am not sure about this at all. On one hand, it would be great not to pay the 4K price for storing metadata for every file in its own file. Also I think using sqlite3 would be far faster. On the other, there are serious issues to using sqlite3 on e.g. NFS-mounted drives, and I do not want to be bitten by corrupted databases down the road. The benefit of using files is that, on a shared computing platform like JASMIN, you can guarantee that only one job will write to (or even access) any metadata at one time, which is very useful.
My suggestion is I could make a base MetadataManager, then subclass this for FileMetadataManager and SqliteMetadataManager. This would provide a low-risk way of proceeding. Then the sqlite would be a simple key-value store (with value being a collection of values appropriate to the object -- i.e. held natively in the DB with correct fields/schema etc.). This might mitigate the risk of corruption but I'm not sure. Testing would be hard too.

I do not think this is worthwhile now. It breaks the fundamental idea that each file is only written to by one task. It would need a complete re-engineering of the metadata model with a server/client arrangement too I think.


chore(master): release 0.105.0-alpha

:robot: I have created a release beep boop
0.105.0-alpha (2024-05-15)
Features

new (6be4e16)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/mafqla/yalis-blog/releases/tag/v0.105.0-alpha :sunflower:


[ja] Translate tasks/inject-data-application/distribute-credentials-secure into Japanese

fix #30518

@nasa9084
レビューありがとうございます。

/lgtm

Not mergeable. Merging is blocked by issue 30779.

https://github.com/kubernetes/website/issues/30779 is closed.

/lgtm

/approve


Build(deps-dev): Bump @storybook/addon-actions from 6.4.7 to 6.4.8 (#2110)

Pull request opened by the merge tool on behalf of #2110

Merged in aea8ab4ccee2d53b2d20e7f243015c757714d19d


Fix STAR "Math" VS. "Mathematics"

Notes

No more importing information about STAR from X2 Aspen

STAR's SFTP server is the only source of truth about STAR assessments

Aspen X2 was storing these assessments with the subject "Math"
The same information was coming in from STAR's SFTP server with the subject "Mathematics"

Use only "Mathematics", validate STAR subjects as either "Reading" or "Mathematics"

@alexsoble This is an awesome improvement!  It looks like there's a bug somewhere, this is production right now:
At https://somerville.studentinsights.org/schools/hea:

From looking quickly, I think it's a UI or controller bug, since the v1 and v2 student profile pages both show data for STAR Math.  I'll take a look later this morning.


Rdpwrapper not working on ver 10.0.23575.1001

termsrv.zip

https://github.com/sebaxakerhtc/rdpwrap.ini/commit/fcf69b8525e6e59d4370de0538bddfb045398367

Reopened. Not included in official INI by Stas'M :)


[Frontend][TFLite] Densify Op added

Densify Op performs sparse to dense transformation for sparse weights based on their sparse parameters provided.
This Op is needed for sparse ConvNet models.

cc @tkonolige , @u99127 !

Thanks @ANSHUMAN87. Overall looks pretty good, but I am a little confused at exactly what is happening is this pass. Is it converting matrices from sparse to dense at compile time?

Thanks @tkonolige for review! The Densify Op does not need to be present in TVM runtime currently, because its purpose is to convert sparse weights(constant) to dense form. So i have optimized it out. However in case it is required in future to be present in TVM runtime, we can always do it with sparse_to_dense Op with the indices produced from the utility prepare_dense_matrix_from_sparse().
As to your other comments i have tried to add comments in the necessary places. Please have a look. In case anything more required. Please let me know. TIA!

cc @FrozenGene !

Thanks @ANSHUMAN87. Overall looks pretty good, but I am a little confused at exactly what is happening is this pass. Is it converting matrices from sparse to dense at compile time?

Thanks @tkonolige for review! The Densify Op does not need to be present in TVM runtime currently, because its purpose is to convert sparse weights(constant) to dense form. So i have optimized it out. However in case it is required in future to be present in TVM runtime, we can always do it with sparse_to_dense Op with the indices produced from the utility prepare_dense_matrix_from_sparse().

Sorry about the delay in reviewing .
I think there are a couple of design points here that we should consider and take a well-informed decision on this direction.

The advantage of keeping the sparse weights representation all the way through is something that helps with keeping the weights size low in the final binary generated which could help with static size / footprint in the final binary at the expense of some runtime (obviously). For usecases where we go through this with BYOC or others where there are weight compression techniques, this should clear up reasonably ok, however where we fall back to traditional tvm compilation on CPUs and GPUs there's no weight compression techniques and thus this contributes to rodata bloat or flash bloat.

Even if it doesn't make sense to keep this in the final representation to be expanded at the runtime either in the form of an op for the Relay VM or a new op in the graph runtime - is this operator something that appears in other frameworks and if so does it make sense to keep this behaviour common across the stack to allow us to reuse this logic for other frontends as well i.e. the various frontends lower to a relay.op.densify () and the result of that is something that represents a dense weight tensor. Further legalization could end up creating this dense weight tensor ? One of the principles in compiler design is to try and bind things as late as possible to give us a chance of optimizing and being able to recover easily without too much reverse engineering. So this comes back to that as well.

TBH I would probably prefer #2 as an approach to try and reduce any duplications in the frontends and give other compilers or others who use Relay a chance to get to the densify op. I don't think we can use it for any of our work instantly. If the performance or code size becomes an issue we'll need to reconsider a runtime or partial runtime representation of sparse weights at which point #1 would be a stepping stone towards it .
These are my thought on the design.
regards
Ramana

As to your other comments i have tried to add comments in the necessary places. Please have a look. In case anything more required. Please let me know. TIA!

Sorry about the delay in reviewing .
I think there are a couple of design points here that we should consider and take a well-informed decision on this direction.
1. The advantage of keeping the sparse weights representation all the way through is something that helps with keeping the weights size low in the final binary generated which could help with static size / footprint in the final binary at the expense of some runtime (obviously). For usecases where we go through this with BYOC or others where there are weight compression techniques, this should clear up reasonably ok, however where we fall back to traditional tvm compilation on CPUs and GPUs there's no weight compression techniques and thus this contributes to rodata bloat or flash bloat.

2. Even if it doesn't make sense to keep this in the final representation to be expanded at the runtime either in the form of an op for the Relay VM or a new op in the graph runtime - is this operator something that appears in other frameworks and if so does it make sense to keep this behaviour common across the stack to allow us to reuse this logic for other frontends as well i.e. the various frontends lower to a relay.op.densify () and the result of that is something that represents a dense weight tensor. Further legalization could end up creating this dense weight tensor ? One of the principles in compiler design is to try and bind things as late as possible to give us a chance of optimizing and being able to recover easily without too much reverse engineering. So this comes back to that as well.

TBH I would probably prefer #2 as an approach to try and reduce any duplications in the frontends and give other compilers or others who use Relay a chance to get to the densify op. I don't think we can use it for any of our work instantly. If the performance or code size becomes an issue we'll need to reconsider a runtime or partial runtime representation of sparse weights at which point #1 would be a stepping stone towards it .
These are my thought on the design.
regards
Ramana

Thanks @u99127 for your inputs! Most of your arguments i concur.
I think we have 2 possible approaches to bring Sparse Convnet models onto TVM:
1:> Keep the sparse weight and convert to dense in runtime, as Sparse inference is not complete in TVM currently.
2:> Optimize out the Sparse weights, by transforming to Dense while on-boarding to TVM.
  When i went through first approach, i found the performance is too bad and Sparse_to_Dense Op resulted in stack corruption when fed with higher dimension inputs, hence i switched to second approach, which makes sense if we think from TFLite perspective. Because TFLite framework, optmizes  out Densify Op when it comes to Sparse Inference. As my future work will include the Sparse Inference as well, i think at this point it will suffice to keep densified weight in Runtime.

                However as i mentioned earlier, if we want to keep in TVM runtime, current PR changes supports that as well, with the steps i mentioned in my previous comment. Provided we first fix the Sparse_to_Dense limitations(which i am looking into right now).

I think keeping a Densify Op is not a good option as it will be duplicate of Sparse_to_Dense Op.
May be we can do this Op conversion with a configurable user option in Frontend.
Now by default we optimize out this Op and keep the dense weight in Runtime.
When i am ready with an appropriate solution for Sparse_to_Dense Op, we can make that as default and keep the first approach to user choice.
Let me know your thoughts on this. TIA!

I have added TODO to use sparse_to_dense Op as well to enable user to have Sparse weights in store rather than Dense weight when board onto TVM.
I believe this PR is ready to be merged. Unless any further comment.
@zhiics , @FrozenGene : Would you please help proceed with the PR. TIA!

Gentle ping @zhiics , @FrozenGene !

Gentle ping @zhiics , @FrozenGene !

Thanks @FrozenGene, @tkonolige!

Thanks @FrozenGene, @tkonolige!


Trained 1080p model?

Is it possible to share the trained 1080p model (in checkpoint or protobuf) ??

I am sorry, for some reasons, the model is temporarily inconvenient to expose, you can train your own model, parameters may need to be adjusted.

@Byronnar I am trying to export a 1080p using pretrained darknet weights and the Python graph definition but changing the input resolution brakes the export process.
I understand that if I change the input resolution I have to somehow change the network definition (architecture). Do you know which parts should I change ? I don’t mind if the 1080p network that you have does not produce good scores, I just want to check the network structure to see the difference from current version.
Thanks again 🤟

your input is 1080*1080?

The target resolution is 1920 x 1080

hello, You can modify the yolov3.py file at lines 47
with tf.variable_scope('pred_multi_scale'):
self.pred_multi_scale = tf.concat([tf.reshape(self.pred_sbbox, [-1, 19, 19, 85]),
tf.reshape(self.pred_mbbox, [-1, 19, 19, 85]),
tf.reshape(self.pred_lbbox, [-1, 19, 19, 85])], axis=0, name='concat')
what is your classes?
The darknet pretrained file should be first changed to ckpt model.

Thank you for the information. However, when I try to inference using the extracted network through image_demo_Chinese.py the script breaks...
I intend to use the same classes with the ones that used on the pre-trained network (so coco->80 classes).

Have you used the frezz.py script？ And then use the image_demo .py script.


Add WebSocket client/server library

Use https://github.com/machinezone/IXWebSocket

Also remove the old HTTP library and use IXWebsocket built in HTTP client/server


Bioconductor Version Discrepancy

https://github.com/Nanostring-Biostats/GeoMxWorkflows/blob/e9f783544fa4fa41cf7682e9bed853ec4e632329/vignettes/GeomxTools_RNA-NGS_Analysis.Rmd#L108
The vignette uses Bioconductor v3.17, not 3.15.

Good catch. I will update to say "LATEST.VERSION" so we don't have to keep updating that.


pcr.seqs

Hello,
Can I use the pcr.seqs command to isolate my PCR insert from the plasmid vector? I see that it has the option to trim up to a certain point and trim from a certain point. Can I use pcr.seqs to accomplish this? And will it output my trimmed fasta sequences?
Thanks.

Hi - you should be able to do that, but there are probably tools better designed for working with plasmids and cloning products.
Pat

On Oct 15, 2020, at 3:29 PM, aganve<EMAIL_ADDRESS>wrote:
Hello,
Can I use the pcr.seqs command to isolate my PCR insert from the plasmid vector? I see that it has the option to trim up to a certain point and trim from a certain point. Can I use pcr.seqs to accomplish this? And will it output my trimmed fasta sequences?
Thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/mothur/mothur.github.io/issues/45, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJUUBDJWGYSONV3RSEM36LSK5EQXANCNFSM4SSNADVA.


release v1

~refactor~ rewrite
fix issues https://github.com/tkuchiki/go-timezone/issues/6 https://github.com/tkuchiki/go-timezone/issues/10 https://github.com/tkuchiki/go-timezone/issues/12
godoc

I'm now implementing it.

released


Prune unused/unneeded/old versions of llvm

We have 8 versions of LLVM currently:
llvm_34
llvm_35
llvm_37
llvm_38
llvm_39
llvm_4
llvm_5
llvm_6

Let's get rid of the older ones where possible.

So... we delete all unreferenced versions (after some time) and then see if someone minds?  Is there some other way to find which are likely to be useful?

See also https://github.com/NixOS/nixpkgs/issues/30229

One alternative might be to at least not (re)building all of them on Hydra all the time, but in any case I'd try to find at least a couple to remove completely.

Huge 👍to this. How much I mind old versions for me is roughly proportional to how long the builds are (if they all take 5 seconds, I don't really care) and how much duplicated code there is between them (LLVM is an awful offender here). As someone who often needs changes to LLVM because of its integration with the Darwin stdenv, old versions of LLVM have been the bane of my existence.

It seems to me that LLVM 5 and 6 are both unused at this point and we currently have 10 versions of LLVM packaged (5-14). Would there be any opposition to the removal of these two versions?

LLVM5:

[ ] Cling: interactive C++ interpreter
[ ] Mozart: Implementation of the Oz programming language
[ ] python39Packages.llvmlite: older versions of the Python package

LLVM6

[ ] emacs in withMacports = true;: @NixOS/emacs could you enlighten us?
[ ] python39Packages.llvmlite: older versions of the Python package

LLVM7

[ ] mrustc: unknown?
[ ] ghc884: @NixOS/haskell do we need this attr?

emacs in withMacports = true;: https://github.com/orgs/NixOS/teams/emacs could you enlighten us?

I don't have a short and sweet explanation, but more context can be found at https://github.com/NixOS/nixpkgs/issues/127902.

emacs in withMacports = true;: https://github.com/orgs/NixOS/teams/emacs could you enlighten us?

I don't have a short and sweet explanation, but more context can be found at #127902.

It seems like a packaging mistake: UniformTypeIdentifiers/UniformTypeIdentifiers.h seems to come from a macOS framework: UniformTypeIdentifiers.framework.
The patch mentioned here: https://github.com/NixOS/nixpkgs/issues/127902#issuecomment-921941925 seems to fix the compilation issue and let us drop the old LLVM requirement I believe.
Of course, it may not fix the underlying issue.

@progval @r-burns What would it take to bump mrustc to use LLVM12? I am fine with bumping it to a unstable version (to target something like Rust 1.54.0 for example).

According to ghc docs https://downloads.haskell.org/ghc/8.8.4/docs/html/users_guide/8.8.1-notes.html#llvm-backend ghc 8.8 is only compatible with LLVM 7. We have not yet decided to drop 8.8.4, yet. So until then, I think it’s best llvm 7 stays.
Otoh @sternenseemann might have more insight.

According to ghc docs https://downloads.haskell.org/ghc/8.8.4/docs/html/users_guide/8.8.1-notes.html#llvm-backend ghc 8.8 is only compatible with LLVM 7. We have not yet decided to drop 8.8.4, yet. So until then, I think it’s best llvm 7 stays.
Otoh @sternenseemann might have more insight.

Do you have a vision on when 8.8.4 will be deprecated/dropped?

@RaitoBezarius the latest mrustc tag (v0.10) supports Rust 1.54.0, which does support LLVM 12.0.0 (not sure about >= 12.0.1 though)

The patch bumps should be compatible by design.

@RaitoBezarius the latest mrustc tag (v0.10) supports Rust 1.54.0, which does support LLVM 12.0.0 (not sure about >= 12.0.1 though)

If you have any time to bump it before the branch off, that would be extremely awesome. :)

I had some issues with mrustc 0.10 last I tried, but unstable seems to be working okay. I already had a wip bump to unstable, and I was planning to wait until the next mrustc release but I'll go ahead and open a PR later so we can get on rust 1.54 with llvm 12.

WIP at https://github.com/NixOS/nixpkgs/pull/224970

LLVM7

Given that this was the default nixpkgs LLVM version not that long ago, I'm not sure if it is prudent to remove it already. In general it seems to me that a push to remove old stuff just for the sake of it is just annoying busywork that usually only has the tangible result of annoying downstream users.
I do not think that removing old versions of LLVM helps us with refactoring the LLVM expressions. Only unifying all LLVM >= 8 expressions is already an incredibly big task. I'd rather recommend having a common expression going forward, i.e. git, 15, 16, … that we continuously update to also support whatever new version comes out.
That being said, GHC 8.8.4 is not strictly needed anymore from a nixpkgs perspective, i.e. it is neither used for bootstrapping nor required by any specific package, but there is also no particular reason to remove it either.

Dropping LLVM 5 & 6 for NixOS 23.11.
We can explore LLVM 7 drop for NixOS 24.05 or 24.11 depending on the situation.

Dropping only LLVM 5 because GHC 8.6.5 depends on LLVM 6…

See: #283954.


[Feature Request]  Table row expand and collapse, automatically

When click on edit expand programatically, the row, by code.
When you click Submit, programmatically collapse, the row, using code.
It is possible by code to cause the row to expand and collapse???
Thanks..

toggleRowExpansion is added in 2.0


Rename TransactionType/Version to EntityType/Version + code improvements

issue #111 and issue #118 - Renamed TransactionType/Version to align it with changes in GO SDK and made other general code quality improvements based on the static code analysis
No functional changes whatsoever, just code cleanup

added commit to actually use default fee calculation strategy for the transaction builder factory
this PR is last thing in 0.5.0 release. after approval I will prepare and publish the release


Can't load webpack ES6 config

Failed to start server:
/Users/vinhlh/my-project/webpack/config.dev.babel.js:1
(function (exports, require, module, __filename, __dirname) { import webpack from 'webpack'
                                                              ^^^^^^
SyntaxError: Unexpected token import
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at getResolver (/Users/vinhlh/Library/Application Support/Sublime Text 3/Packages/tern_for_sublime/node_modules/tern/plugin/webpack.js:27:67)

I believe this has to do with this library not using babel-register:
https://www.npmjs.com/package/babel-register

The require hook will bind itself to node's require and automatically compile files on the fly.


Mutated store paths

Issue description
I bumped into a weird permission problem in nix store and when digging into it, I found out that there were some paths that had been mutated:
$ sudo nix-store --verify --check-contents --repair
reading the Nix store...
checking path existence...
checking hashes...
path '/nix/store/s7jlb60pgwp308gp85han2p31vz0n792-python3.6-pyOpenSSL-17.5.0' was modified! expected hash 'sha256:1p77cpnsab9gpdf34gm32c194lvmb3angc5sx75lx87x9n45klxa', got 'sha256:0all05zdy2fj8blp8v78ds49gbg7bpsv9ghawlg8j0yncp3a7d24'
copying path '/nix/store/s7jlb60pgwp308gp85han2p31vz0n792-python3.6-pyOpenSSL-17.5.0' from 'https://cache.nixos.org'...
path '/nix/store/x9yd5nwcqndjmqzpysfhl426wwpzbqz9-python2.7-bootstrapped-pip-10.0.1' was modified! expected hash 'sha256:0p5y43lp2pxwwysmr1avwrxx9zcrm9pja98mrff4kncvasmzhwg2', got 'sha256:0m92a2ylzn25k0nmwdzpjqmjih7i727kadagnhcs31yq9b47i6n3'
copying path '/nix/store/x9yd5nwcqndjmqzpysfhl426wwpzbqz9-python2.7-bootstrapped-pip-10.0.1' from 'https://cache.nixos.org'...
path '/nix/store/ylw0c8y390vh8xxcyanxvaxb9s1wjwxx-python3.6-pyOpenSSL-17.5.0' was modified! expected hash 'sha256:0gfv1qkkxpwqr6mi38fibdyps71yyp5gmhxmca1l9v2in8yghpqr', got 'sha256:17vj386l2c59p5sa7np66l4wjs6bqjhv033xpq1s0zc75cr50ac3'
copying path '/nix/store/ylw0c8y390vh8xxcyanxvaxb9s1wjwxx-python3.6-pyOpenSSL-17.5.0' from 'https://cache.nixos.org'...
path '/nix/store/zda2m151qxg6wz6qirh56ij6fn4hdscz-python3.6-pyOpenSSL-17.5.0' was modified! expected hash 'sha256:1vwd7q5mf5sx7937x2i74iwwvi8m6550vq4n12cmx7f02s8pafby', got 'sha256:0a3fbbzp5w66riq850l7l21l9bh18vaxwcdmpnnwvjvkiw5qcgrh'
copying path '/nix/store/zda2m151qxg6wz6qirh56ij6fn4hdscz-python3.6-pyOpenSSL-17.5.0' from 'https://cache.nixos.org'...

To the best of my knowledge, I haven't done anything to mutate them. At least, not knowingly as I don't even know how to mutate them. I'm a bit worried that there is something wrong somewhere..
Steps to reproduce
Unfortunately, I have no idea how reproduce. I'm reporting it here in case someone else has similar issues or ideas what could have caused this. Just in case there is something that can cause this kind of errors for anyone.
Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.
$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 4.14.42, NixOS, 18.09.git.5da8543 (Jellyfish)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.0.2`
 - nixpkgs: `/etc/nixpkgs`

Not sure if this can be related, but a bit before I noticed this problem, I was running nox-review and I stopped it with CTRL-C.

Likely related to nix-shell, https://github.com/NixOS/nix/issues/1336.

Considering this is a Nix issue I am closing this.


Missing quick fix auto import option after changing moduleResolution to node16

I am not sure if this is a bug, but after switching moduleResolution from node to node16 there is no longer Add import from "./Example". Of course, it works if I add it manually at the top of the file but it is annoying when you need to do it for each import. I've checked how it works in other popular IDE and it also presents those two imports but also can do automatic import from ./Example. Am I missing something? Is there any solution to auto import from ./Example instead of ./Example/Example and ./Example/index?

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.74.0 (also present in previous version)
OS Version: Mac OS Ventura

Steps to Reproduce:

I guess any project with Node and TypeScript (and React) will be ok to reproduce it.
Create a directory with some component and index.ts files.
Setup moduleResolution to node16 in tsconfig file.
Then try to do an automatic import from Quick Fix menu.
Missing Add import from "./Example" option.

Please share a minimal example project which demonstrates this issue so we can investigate

Thanks but works fine for me:

Any extra repo steps? Also does this reproduce in the latest VS Code insiders build with all extensions disabled?

I mean there is no ./Example autoimport option which was present when moduleResolution was set to node. Is it possible to have that option also with node16?


Added sliding progress bar to quickly scroll through images and to ma…

…rk progress

Feature requested by Andrew to scroll through the pictures


How can I change different priority to different colors?

like this

thanks a lot. I used View Customize plugin ,it also works good for me


add latex support!

Please add better support for latex like in https://github.com/azemoh/vscode-one-monokai
This is how it looks right now:

This is how it looks in vscode one monokai

@alex180500
Sorry for the delay. I didn't even know if the issue was created until now.
The color for latex case was removed unintentionally during adding highlighting support for typescript decorator.
I've restored the color for latex case. Though it's more of a temporary solution, but should be working as expected.


Added six remove functions

Added six remove functions.

Thanks for the PR, great addition! 👍
I'm going to merge it in, but will make changes to it to better match native API's and comments.

This is what I ended up with:
    /// Removes and returns the first element of the collection.
    ///
    /// The collection must not be empty.
    /// The task is performed asynchronously due to thread-locking management.
    ///
    /// - Parameter completion: The handler with the removed element.
    func removeFirst(completion: ((Element) -> Void)? = nil) {
        queue.async(flags: .barrier) {
            let element = self.array.removeFirst()
            DispatchQueue.main.async { completion?(element) }
        }
    }

    /// Removes the specified number of elements from the beginning of the collection.
    ///
    /// The task is performed asynchronously due to thread-locking management.
    ///
    /// - Parameters:
    ///   - k: The number of elements to remove from the collection.
    ///   - completion: The block to execute when remove completed.
    func removeFirst(_ k: Int, completion: (() -> Void)? = nil) {
        queue.async(flags: .barrier) {
            defer { DispatchQueue.main.async { completion?() } }
            guard 0...self.array.count ~= k else { return }
            self.array.removeFirst(k)
        }
    }

    /// Removes and returns the last element of the collection.
    ///
    /// The collection must not be empty.
    /// The task is performed asynchronously due to thread-locking management.
    ///
    /// - Parameter completion: The handler with the removed element.
    func removeLast(completion: ((Element) -> Void)? = nil) {
        queue.async(flags: .barrier) {
            let element = self.array.removeLast()
            DispatchQueue.main.async { completion?(element) }
        }
    }

    /// Removes the specified number of elements from the end of the collection.
    ///
    /// The task is performed asynchronously due to thread-locking management.
    ///
    /// - Parameters:
    ///   - k: The number of elements to remove from the collection.
    ///   - completion: The block to execute when remove completed.
    func removeLast(_ k: Int, completion: (() -> Void)? = nil) {
        queue.async(flags: .barrier) {
            defer { DispatchQueue.main.async { completion?() } }
            guard 0...self.array.count ~= k else { return }
            self.array.removeLast(k)
        }
    }


Create ybu.txt

please add ybu domain

@Zersphaiz I am sorry, the domain ybu.edu.tr is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


make curl fail for non-200 status code in download

See https://mesosphere.atlassian.net/browse/DCOS-5906

Can we make this use our standard set of curl arguments: https://github.com/dcos/dcos/blob/master/gen/dcos-services.yaml#L29?
There's a lot more than just -f which is sometimes important.

@cmaloney fixed!

:ship:


Futures Multiplex Socket Receives Spot Data

Describe the bug
When using the USDM futures multiplex socket for @bookTicker, the order ID and prices are the same as those received by a spot multiplex socket. To my knowledge it is the futures socket receiving spot data, because the order IDs are consistent with the spot order IDs when I directly connected to the websocket. This does not appear to be a problem when connecting with an individual start_symbol_ticker_futures_socket, which works correctly for both USDM and COINM future.
To Reproduce
symbols = ['BTCUSDT', 'ETHUSDT']

twm = ThreadedWebsocketManager()
twm.start()

twm.start_multiplex_socket(callback=lambda msg: print('Spot:', msg), streams=[f'{s.lower()}@bookTicker' for s in symbols])
twm.start_futures_multiplex_socket(callback=lambda msg: print('Futures:', msg), streams=[f'{s.lower()}@bookTicker' for s in symbols])

Expected behavior
The futures socket output should show different order ID's and prices than the spot socket's output.
Environment (please complete the following information):

Python version: 3.8
Virtual Env: None
OS: Windows and Ubuntu (wsl): issue persists across each
python-binance version 1.0.11

This is fixed in v1.0.12

Great, thanks!


Missing metric

Hi @Lusitaniae
Metric apache_duration_ms_total is missing and apache version is unknown. Can someone provide some guidance on how to handle this?
[root@centos-test /]# curl -s http://x.x.x.x:9117/metrics | grep apache | grep -v "^#"
apache_accesses_total 55587
apache_cpuload 0.00257345
apache_exporter_build_info{branch="HEAD",goarch="amd64",goos="linux",goversion="go1.19.8",revision="7fb777fa88f6210f92d44212b8de9e94a27615ff",tags="netgo",version="0.13.3"} 1
apache_info{mpm="UNKNOWN",version="UNKNOWN"} 1
apache_scoreboard{state="closing"} 0
apache_scoreboard{state="dns"} 0
apache_scoreboard{state="graceful_stop"} 0
apache_scoreboard{state="idle"} 36
apache_scoreboard{state="idle_cleanup"} 0
apache_scoreboard{state="keepalive"} 0
apache_scoreboard{state="logging"} 0
apache_scoreboard{state="open_slot"} 475
apache_scoreboard{state="read"} 0
apache_scoreboard{state="reply"} 1
apache_scoreboard{state="startup"} 0
apache_sent_kilobytes_total 862426
apache_up 1
apache_uptime_seconds_total 3.649183e+06
apache_workers{state="busy"} 1
apache_workers{state="idle"} 36

Is it somehow related to MPM prefork?
[root@abcd ~]$ httpd -V | grep MPM
Server MPM:     prefork

+1, but my MPM is worker

No, the issue is related to the apache version. In my case version 2.4.6 is not exposing those.
On the latest version on RHEL 9 I'm able to see those metrics correct


Text areas should remember how expanded they were

See Maximum-Apocalypse-v8-variable-textareas branch

Implemented expand/collapse with 1 to 6 rows for special ability & gear descriptions via checkbox control


Update odrivetool

Note sure if this is intentional but currently liveplotter is listed as 'Upgrade the ODrive's Firmware' in the odrivetool help file. That doesn't seem right to me.

Thanks!


Remove flutter_sprites

This code is now in its own standalone library. The library is in a private git
repository in the flutter organization because the code is unmaintained. If
you're interested in using and maintaining this code, please contact
<EMAIL_ADDRESS>for more information.

@Hixie @sethladd

lgtm


Problem with verbose argument?

I noticed that in https://github.com/EdGrrr/pyLRT/blob/master/pyLRT/RadTran.py#L64-L70, calling run(verbose=True) sends stderr to subprocess.PIPE.  Doesn't this have the effect of turning off error messages from radtran?
This seems to be my experience in calling run().
>>> slrt.run(verbose=True)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [4], in <cell line: 1>()
----> 1 slrt.run(verbose=True)

File ~/resources/pyLRT/pyLRT/RadTran.py:87, in RadTran.run(self, verbose, print_input, print_output, regrid)
     85 if error_flag:
     86     error = ''.join(error)
---> 87     raise ValueError(error)
     89 if print_output:
     90     print('Output file:')

ValueError: UVSpec Error Message:
Error 2 while opening the representative wavelengths file.
Error 2 returned by function set_transmittance_wl_grid_reptran in (line 291, function 'setup_wlgrid', file 'ancillary.c')
Error 2 setting up transmittance wavelength grid in uvspec (uvspec.c)
Error 2 during execution of uvspec

>>> slrt.run(verbose=False)
 ... using CH4 volume mixing ratio profile from US standard atmosphere.
 ... using N2O volume mixing ratio profile from US standard atmosphere.
 ... using CO volume mixing ratio profile from US standard atmosphere.
 ... using N2 volume mixing ratio profile from US standard atmosphere.
 ... calling uvspec_check(), checking model input data
 ... calling setup_wlgrid(), generating transmittance wavelength grid
     reading bands from ../data/correlated_k/reptran/reptran_solar_medium.cdf.
**********************************************************************************
*Error: Data files for REPTRAN not found in directory data/correlated_k/reptran. *'
*       Please check whether you have downloaded the required REPTRAN data files *
*       from http://www.libradtran.org/doku.php?id=download and unzipped the data*
*       in the libRadtran folder.                                                *
**********************************************************************************
Error 2 while opening the representative wavelengths file.
Error 2 returned by function set_transmittance_wl_grid_reptran in (line 291, function 'setup_wlgrid', file 'ancillary.c')
Error 2 setting up transmittance wavelength grid in uvspec (uvspec.c)
Error 2 during execution of uvspec
/home/evan/resources/pyLRT/pyLRT/RadTran.py:101: UserWarning: genfromtxt: Empty input file: "<_io.StringIO object at 0x7fbf698e2430>"
  return np.genfromtxt(io.StringIO(process.stdout))
Out[5]: array([], dtype=float64)

Hi @Evidlo, thanks for raising this.
Redirecting stderr to subprocess.PIPE was intended to help convert a uvspec error to a python exception - https://github.com/EdGrrr/pyLRT/blob/master/pyLRT/RadTran.py#L77-L87 checks stderr for any lines that indicate an error, then converts this to a python exception. This setting should not depend on the 'verbose' argument though, so I suggest removing the if statement at https://github.com/EdGrrr/pyLRT/blob/master/pyLRT/RadTran.py#L64, sending all output to stderr to be parsed.
This has the effect of silencing uvspec warnings though (which I didn't realise). To address this, I suggest an extra loop that looks for warnings in the uvspec output then prints them. This can be silenced with the 'quiet' option for RadTran.run(). This would be inserted at L77.
# Check uvspec output for errors/warnings
if not quiet:
    print_flag = False
    for line in io.StringIO(process.stderr):
        if line.startswith('*** Warning'):
            # Some uvspec warnings start with three stars
            # These have three stars for every line
            print(line.strip())
        elif line.startswith('*****'):
            # Many uvspec warnings are in a star box
            print(line.strip())
            print_flag = not(print_flag)
        elif print_flag:
            # Print line if we are within a star box
            print(line.strip())

I can see the naming of the 'verbose' option here can be confusing - it comes from the libradtran naming, so the 'verbose' argument shouldn't affect the amount of output printed to screen, but it controls whether we try to parse the uvspec verbose output (which has optical depths, concentrations etc.). I am not sure whether it is a good idea to change this though, as we might want to keep the link to the libradtran name?

Commit https://github.com/EdGrrr/pyLRT/commit/0d0ae0f759278f14cd7d6f701e4c74576dc90bce should include these changes.
As a test, the first two of these calls should return a warning, the third should not.
from pyLRT import RadTran, get_lrt_folder

LIBRADTRAN_FOLDER = get_lrt_folder()

slrt = RadTran(LIBRADTRAN_FOLDER)
slrt.options['rte_solver'] = 'disort'
slrt.options['source'] = 'solar'
slrt.options['wavelength'] = '200 2600'
slrt.options['output_user'] = 'lambda eglo eup edn edir'
slrt.options['zout'] = '0 5 TOA'
slrt.options['albedo'] = '0'
slrt.options['umu'] = '-1.0 1.0'
slrt.options['quiet'] = ''
slrt.options['sza'] = '0'

##############
# Run the RT #
##############
print('Verbose run - prints warning')
sdata, sverb = slrt.run(verbose=True)
print('')
print('Non-verbose run - prints warning')
sdata = slrt.run(verbose=False)
print('')
slrt.options['wavelength'] = '250 2600'
print('Verbose run - doesn\'t print warning')
sdata, sverb = slrt.run(verbose=True)

Which reminds me #4

Thanks for the fix!


Add screen for failed authentication

It would be better if you add a prompt in GUI for failed SQL authentication. Because currently the program fails to run if you haven't setup the SQL Credentials. Instead you can open up the GUI first and then inform the users that the Authentication failed.

Alright, on the roadmap


Wrong resultSet when execute desc table; using EncryptRule

Bug Report
For English only, other languages will not accept.
Before report a bug, make sure you have:

Searched open and closed GitHub issues.
Read documentation: ShardingSphere Doc.

Please pay attention on issues you submitted, because we maybe need more details.
If no response more than 7 days and we cannot reproduce it on current information, we will close it.
Please answer these questions before submitting your issue. Thanks!
Which version of ShardingSphere did you use?
4.0.0.RC2
Which project did you use? Sharding-JDBC or Sharding-Proxy?
Sharding-Proxy
Expected behavior
When execute desc encryptTable, it will show logic columns of encryptTable
Actual behavior
when execute desc encryptTable, it shows actual columns of encryptTable
Reason analyze (If you can)
Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.
Example codes for reproduce this issue (such as a github link).
The coding entrance:
JDBCDatabaseCommunicationEngine.java
 private BackendResponse merge(final SQLRouteResult routeResult) throws SQLException {
        if (response instanceof UpdateResponse) {
            if (!isAllBroadcastTables(routeResult.getOptimizedStatement())) {
                ((UpdateResponse) response).mergeUpdateCount();
            }
            return response;
        }
        mergedResult = MergeEngineFactory.newInstance(databaseType,
                logicSchema.getShardingRule(), routeResult, logicSchema.getMetaData().getTable(), ((QueryResponse) response).getQueryResults()).merge();
        if (mergedResult instanceof ShowTablesMergedResult) {
            ((ShowTablesMergedResult) mergedResult).resetColumnLabel(logicSchema.getName());
        }
        handleColumnsForQueryHeader(routeResult);
        return response;
    }

You need to replace actual columns of BackendResponse with logic columns here.

Here are some ideas:

Create DescribeTableMergedResult extends MemoryMergedResult to handle QueryResults of DESC encryptTable, but U need to pass ShardingRuel not EncryptRule to DALMergeEngine
Modify BackendResponse in merge() of JDBCDatabaseCommunicationEngine

@tristaZero actual columns more than  logic columns,we should hide some actual columns,Is my understanding correct?

@betterjava  yes, we should hide actual columns, i.e, AssistedQueryColumn and cipherColumn, and show user the virtual column name, i.e, encryptColumn.


gem error: "OpenSSL is not available." on macOS Big Sur

Using macOS Big Sur 11.5.2 (2019 MBP) I installed frum via homebrew, ran frum install 3.0.2, and tried installing a ruby gem (colorls) and received an error about OpenSSL not being available.
$ gem install colorls
ERROR:  While executing gem ... (Gem::Exception)
    OpenSSL is not available. Install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources

I see that you can specify the OpenSSL directory but I'm not sure exactly how this should be used. If Big Sur has OpenSSL at /usr/bin/openssl should I be using that? Installing 3.0.2 with --with-openssl-dir=/usr/bin/openssl didn't work. I'm not sure what might be going wrong here.
The gem error says to install OpenSSL and rebuild Ruby. I'm able to install OpenSSL (brew install openssl) but I'm not sure how to rebuild ruby with frum.
Is something wrong here or is am I just missing some foundational Ruby knowledge here that is preventing me from getting this to work?

@wfendler
Thank you for opening the issue! By default, frum uses OpenSSL installed via Homebrew.  I tried installing Ruby with frum just now in case I've already installed OpenSSL with Homebrew. After that I was able to run gem install colorls successfully. If you want to solve your problem quickly, I think you should uninstall Ruby version 3.0.2 and reinstall it when you've already installed OpenSSL with Homebrew like the following.
$ brew install openssl
$ frum uninstall 3.0.2
$ frum install 3.0.2

Environment
macOS: macOS Bug Sur 11.5.1
OpenSSL: 1.1
Frum: 0.1.1
Ruby: 3.0.2

@TaKO8Ki - Thanks, that was it! I could've sworn I tried it in that order at some point but I must've tried all combinations except that.


Change the database for better dictionary performance

On lowend devices with slow storage (8 Gb) and old CPUs, loading the suggestions while typing could be quite slow. In particular, loading the fuzzy suggestions for two-letter words, could take 200-280 ms, on a Samsung SM-T230. This is also true for Sonim XP3 and other devices with similar specifications.
A Slow database makes typing painfully slow as well and it could even lead to incorrect results. For example, if one tries to type a three-letter word, the two-letter suggestions may load too slow and replace the three-letter ones, leaving the user with invalid choices for the key presses. Another example is trying to type "I'm" in English, which could result in "Imim", because the three-letter suggestions depend on the two-letter ones, but they load in the wrong order.
Another problem is dictionary loading speed, which could take minutes in some cases.
The current storage mechanism, SQLite + RoomDb, can not provide much faster loading speed, besides, it is not the most optimal choice for storing the words. So let's switch to a different storage to optmize the performance.

Remove RoomDb
Adopt Objectbox. According to random benchmarks, it offers at least ~4x faster reading and ~10x faster insert performance.
Ensure DictionaryDb interface remains the same. The rest of the application does not need to know about the database change.
Add a flag for distinguishing custom added words.
Consider separating the words for each language in a separate document - No need to do it at the moment. Queries are reasonably fast and it will require separate models for each document, which will make adding new languages more difficult.
Ensure "Delete All" does not cause a crash while loading is in progress.
Figure out a migration path for the custom added words. The SQLite database would still be there, so it would be possible to recover them. The migration might take some time, so it would be better if the users decide whether to do it or not, instead of blocking their phones for no apparent reason. - Will be handled separately, in here

If Objectbox happens to be too difficult to use (highly unlikely), keep SQLite, but use GreenDao ORM instead of RoomDb. Random benchmarks show a potential 1.5x speed improvement.
Doing this will make #53 obsolete.

It looks like Objectbox is quite fast, but it takes way too much storage space.
Here are the statistics:

#
Sqlite / 1 table
Objectbox / 1 table
Objectbox / 2 words, sequences tables
Objectbox / 2 words, sequences tables, compressed*
SQLite / words, sequence, custom_words tables

English
27.8 Mb
50 Mb
88 Mb
75 Mb
16.3 Mb

Romanian
200 Mb
219 Mb
--
--
?

Spanish
260 Mb
360 Mb
--
490 Mb
99 Mb

Ukrainian
384 Mb
414 Mb
--
--
?

* The "compressed" Objectbox fields were: short frequency, short langId, word, sequence, no uniqueId. Converting int -> short reduced English size by about 4-5 Mb. Combining "word" + "langId" in "uniqueId" column reduced the size from 88 Mb to 72 Mb.
Having said all this, the better choice is using SQLite with no libraries, for full query control and normalizing the data.


Fix output channel streaming breaking highlights

Fixes: https://github.com/microsoft/vscode/issues/199253

That smells a bit like debt and layer breaking. If a scheme is used across contexts, we typically have it here and use it from here:
https://github.com/microsoft/vscode/blob/8be09bfd3828af8ee104ab48b50c2b4a33bf9f29/src/vs/base/common/network.ts#L13

@bpasero Fair point, it's originally defined here but can't be used due to layer breaking as you mentioned.
https://github.com/microsoft/vscode/blob/a4f676a510a4df14e6ba14caa7f4263949e1ebca/src/vs/workbench/services/output/common/output.ts#L17-L20
The issue is that streaming changes to the output channel will always trigger onDidChangeModelContent which should stop the occurrence highlights. There needs to be some way to ignore modelChange events from the output channel, which would require knowing that schema.
Would it be reasonable to shift the definition of the output schema to Schemas under network.ts? Not sure if there is a reason to restrict it to just the workbench.
The other option would be to avoid creating a wordHighlighter for that editor (though that also would require checking and therefore knowing the schema I think), but I think it's valid to want to a wordHighlighter for that panel, I've certainly used it before.

Would it be reasonable to shift the definition of the output schema to Schemas under network.ts?

Yes, that is fine.


AbstractSectionableItem items not showing header when adding items at runtime

Wanted to start out by saying thanks for providing this awesome library! I have loved it so far.
I am however having some trouble trying to show a list with headers in my application. All of my views are dynamically added at runtime and are not set in the adapters constructor. I have created an item that extends AbstractSectionableItem and a header that abstracts AbstractHeaderItem. I am trying to add these items using addItem(position,item)  and am not sure if the only way to make these work is with addItemToSection() functions. However even with calling that the headers will not show unless I add them with addSection(). I am not sure if this is intended functionality however I was under the assumption that you are not supposed to have to handle the section headers manually and they work based on the list of items. Here is what I have currently:
Header view -
public class ProfileListHeader extends AbstractHeaderItem {

    public ProfileListHeader() {
        setHidden(false);
        setEnabled(false);
        setSelectable(false);
    }

    @Override
    public boolean equals(Object o) {
        return o instanceof ProfileListHeader;
    }

    @Override
    public int getLayoutRes() {
        return R.layout.profile_list_header;
    }

    @Override
    public RecyclerView.ViewHolder createViewHolder(View view, FlexibleAdapter adapter) {
        return new ProfileListHeaderHolder(view, adapter);
    }

    @Override
    public void bindViewHolder(FlexibleAdapter adapter, RecyclerView.ViewHolder holder, int position, List payloads) {

    }

    /**
     * The ViewHolder used by this item.
     * Extending from FlexibleViewHolder is recommended especially when you will use
     * more advanced features.
     */
    public class ProfileListHeaderHolder extends FlexibleViewHolder {

        ProfileListHeaderHolder(View view, FlexibleAdapter adapter) {
            super(view, adapter, true);
            ButterKnife.bind(this, view);
        }
    }
}

Sectionable -
public class ProfileListCell extends AbstractSectionableItem<ProfileListCell.ProfileViewHolder, ProfileListHeader> {

    @Getter
    private final String id;
    private final String name;

    public ProfileListCell(@NonNull ProfileListHeader header, @NonNull String id, @NonNull String name) {
        super(header);
        setEnabled(true);
        this.id = id;
        this.name = name;
    }

    @Override
    public boolean equals(Object inObject) {
        if (inObject instanceof ProfileListCell) {
            ProfileListCell inItem = (ProfileListCell) inObject;
            return this.id.equals(inItem.getId());
        }
        return false;
    }

    @Override
    public int hashCode() {
        return id != null ? id.hashCode() : 0;
    }

    @Override
    public int getLayoutRes() {
        return R.layout.profile_view_holder;
    }

    @Override
    public ProfileViewHolder createViewHolder(View view, FlexibleAdapter adapter) {
        return new ProfileViewHolder(view, adapter);
    }

    @Override
    public void bindViewHolder(FlexibleAdapter adapter, ProfileViewHolder holder, int position, List payloads) {
        // todo subscribe observable
        holder.setName(name);
    }

    @Override
    public void unbindViewHolder(FlexibleAdapter adapter, ProfileViewHolder holder, int position) {
        // todo unsubscribe observable
    }

    /**
     * The ViewHolder used by this item.
     * Extending from FlexibleViewHolder is recommended especially when you will use
     * more advanced features.
     */
    public class ProfileViewHolder extends FlexibleViewHolder {

        @BindView(R2.id.name)
        TextView name;

        ProfileViewHolder(View view, FlexibleAdapter adapter) {
            super(view, adapter);
            ButterKnife.bind(this, view);
        }

        public void setName(String name) {
            this.name.setText(name);
        }
    }

}

My simple adapter setup -
adapter = new FlexibleAdapter<>(null);
        recyclerView.setAdapter(adapter);
        adapter.setDisplayHeadersAtStartUp(true);

Simple adding item -
    @Override
    public void addListItem(int position, BaseSectionView listItem) {
        Assert.assertNotNull(adapter);
        final ISectionable sectionable = (ISectionable) listItem.getView();
        adapter.addItem(position, sectionable);
    }

I am assuming I am doing something wrong however it was not clear in the documentation how its supposed to be done and the sample app does all its adding of headers with one list at initialization. I was able to get it to work by adding the section using addSection() however then also the headers seem to be calculated into the list so and when dealing with click listeners I have I get the global position even when using getCardinalPositionOf() I notice that the mScrollableHeaders size is 0. I dont know if this means I have to manage my own position including headers or if there is another way for flexible adapter to manage it.
Thanks again for the library and the help!

@orrinLife360, thank you very much! I appreciate.
This implementation is wrong:

Okay I will try this. Thanks. So if I add a ISectionable using addItem it will not add a header?
Also just to confirm if headers are added they are counted as part of the list items? Is there any way to get position of items discarding the headers?

@orrinLife360, also addItem will display a header if not already visible, but the position should be calculated before. With addItemToSection, you can pass a custom Comparator. Also you have calculatePositionFor.
To count the specific items you have getItemCountOfTypes.

Thanks, I understand the adding sections now and modified my implementation to work to fit into that using addItemToSection.
I am still not sure if flexible adapter provides a way to find out the position of an item in the list without including headers. I can make that logic myself if needed but wanted to leverage flexible adapter if possible.

@orrinLife360, can you please elaborate better the way a position is retrieved without including headers?

Sure. Say I have a list that looks like this:
HEADER_0 (0)
ITEM_0 (1)
ITEM_1 (2)
HEADER_1 (3)
ITEM_2 (4)
HEADER_2 (5)
ITEM_3 (6)

I would like a way to get the position of item 3 without including the headers 0, 3, & 5. So I would like ITEM_3 to return position 3 not the index in the global list 6.
Right now I am just getting all the headers and finding how many are in between the start of the list and the item to get it to get that count but if flexible adapter could handle that logic too.

@orrinLife360, ah ok, I understood and we can add it. Just that, getCardinalPositionOf is already dedicated for position excluding the scrollable headers and footers. So, for the position of this kind it, we should count only the items of the same type, but I don't find a name for it: getXXXPositionOf(item).
Regarding the routine, I don't see another quick elaboration than that.

Okay awesome. Thanks for all the help. I have what i need working for now.


shall we raise an error or just warning

https://github.com/marrlab/DomainLab/blob/7d8b83a8870cfe1c904b385741a4e37937ac2970/domainlab/exp_protocol/run_experiment.py#L44
@schoersch

I'm not sure what's better. Currently, the command line args translate like this:

--x=1 -> x: 1
--x 1 2 ->

x:
  - 1
  - 2

So the user has to create lists rather explicit, which let me tend to a warning. On the other hand, if the conversions happens unintentionally, it will likely lead to subsequent errors which are hard to pinpoint down to this warning.

I also thought again about this warning:
https://github.com/marrlab/DomainLab/blob/7d8b83a8870cfe1c904b385741a4e37937ac2970/domainlab/exp_protocol/run_experiment.py#L55
Unknown keys are silently ignored for the reasons I pointed out already. However, this is also the reason while the bs != batchsize error hasn't shown up for such a long time.
One idea I had to resolve this would be, that we filter the dictionaries passed to this function by removing all benchmark specific keys. Since this is a known set, only keys that should be passed on to domainlab should remain. Then we can securely raise an error if a unknown key is given.
Moreover, this function can then also be used here
https://github.com/marrlab/DomainLab/blob/7d8b83a8870cfe1c904b385741a4e37937ac2970/domainlab/arg_parser.py#L171
to reduce code duplication.
I can make a PR for this proposal.

A problem determining the set of all benchmark specific keys is that all snakemake keys (i.e. commandline options) need to be contained in it.
So maybe a better option would be, that we introduce a domainlab_args section, e.g.
...
# benchmark and snakemake related stuff
# domainlab specific settings given here are ignored.
output_dir: dir
....
domainlab_args:
  # here only valid domainlab names are allowed.
  lr: 1e-3
  te_d: 5
  ...

Task_x:
   # Arguments specific to this task. Same as currently, arguments
   # here overwrite specifications of the domainlab_args part.
   aname: algo
   # also here, inside the task, only domainlab valid arguments can be specified,
   # except the hyperparameters block.
   ....

@smilesun what do you think?

I need sometime to digest this, but bs!=batchsize is a good example, that we surely want to avoid in the future and hopefully guarantee that no  other "batchsize" exist.
--x 1 2  can be integrated with original x's value by list extension,would be helpful for a concrete example


chore: add waitress for win32 platform

SUMMARY
This PR add a platform condition while installing libs from setup.py.
If sys platform is Windows we ignore gunicorn installation and instead of it we install waitress
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[x] Has associated issue:
Fixes #22922
Fixes #22918
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Hey @rusackas @sedanursayer @zeynepkoyun!
I guess lib installation should be work good.
Can you test the logic locally on Windows machine?

Hello, we added the relevant line of code to the setup.py file, but it didn't work.

Hi @zeynepkoyun. Do you run pip install -e . for it?

yes, after editing setup.py, I installed it, but superset app was started with waitress-serve

How do you run superset app?

waitress-serve --host <IP_ADDRESS>:8088 superset:app

flask run -p 8080
Does it work?

I'll test it and let you know

For waitress you should use the next command:
waitress-serve --host <IP_ADDRESS> --call superset:create_app

@zeynepkoyun About country_holidays issue. Can you text me in Slack? It will be more efficient

How can I reach you on slack?

I have the same nickname in Slack

@zeynepkoyun http://bit.ly/join-superset-slack

@villebro @dpgaspar Can you review it?


helmfile delete doesn't use the specified tillerNamespace

helmfile version v0.21.0

→ head -2 helmfile.d/0100.app.yaml
helmDefaults:
  tillerNamespace: {{ env "DEPLOY_ENV" }}

sync works as expected via
DEPLOY_ENV=staging helmfile -l chart=app sync

delete complains:
→ DEPLOY_ENV=staging helmfile --log-level debug -l chart=app delete
Deleting app-staging
exec: helm delete app-staging
Error: could not find tiller

err: exit status 1

Thanks for reporting!
This should be fixed by #201. The PR has been already merged but not yet released. I'll release v22.0 asap.

v22.0 has been already released with the fix for this!


Determine first NN architecture to implement

1, copy from ConvNet
2, convolution
3, RBM
4, Recurrent Network with LSTM

convolution it is


[Bug Report] while using the button group with only one button in plain style, the left and right border is transparent

Element UI version
2.5.4
OS/Browsers version
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36
Vue version
2.6.6
Reproduction Link
https://jsfiddle.net/1dwjzyu8/
Steps to reproduce
1.input a button group and then create a button with 'plain' style
2.the left and right border is transparent
I've checked the css, only one plain button in a button group is the first child and also the last child. So the style set the left and right border color is transparent in 0.5. These two style occur each other to make this wrong style.
So, I suggest the style: .el-button-group .el-button--primary:last-child & .el-button-group .el-button--primary:first-child also set the other border color in the color suit for the button type with '!important'. It will make the button group to show more better. Like this: https://jsfiddle.net/rg2dyhou/1/
What is Expected?
the only one plain button in a button group has left and right border color
What is actually happening?
it has only transparent border color

only one plain button in a button group

Do not do like this


library name not compatible with databinding

library cannot find located when buildFeatures.databinding is truned on

Thanks for the report! I am not sure if that is a fault on my side or if kapt should be updated. Have you also filled an issue to the kapt team?

This is a problem, hyphens are not allowed in java package names.

I created a new release which should fix this issue. Could you please update to version com.github.ln-12:multiplatform-connectivity-status:1.2.0, change the imports fromln-12 to ln_12 and verify that it is working for you?

I confirm that the issue is fixed in the new release.


Add truncated test

This is my result on Windows.

Thanks for adding the test! Looking into the failure now.


Facebook Messenger used over app will trigger onChange, onHide and onShow when using keyboard

Let me know if you need more information


Transaction Details - Transaction submitted typo.

Bug Description
If a transaction has yet to be finalized and is in submitted status
Steps to Reproduce

Send a transaction
Click the transaction (before it is finalized)
Observe the text in the 'Block Hash' field.

Expected Result
'Submitted'
Actual Result
'Submitte'
Versions
3.0.0 (49)

Known issue but worth fixing when time allows. Will moved it to backlog.

Copied to https://concordium.atlassian.net/browse/CBW-219


Bubble Sort implementation is not most efficient

The current implementation of bubble sort goes from first index to last index in every loop. As each loop in Bubble Sort shifts the largest element to right there is no need to check for already sorted array on right side. https://github.com/muhammadkarbalaee/jalgorithm/blob/e6bd6b2121c46f427f464097c3760b7456f04b80/src/main/java/io/github/jalgorithm/algorithms/sorts/BubbleSort.java#L45

That's true.


Can it support multiple screens?

Yes, it is supported.

how to enable it ?

It is enabled by default.


Document cluster templates with RKE2

Issue: https://github.com/rancher/rancher/issues/30099
Point of contact: Daishan

related
https://github.com/rancher/docs/issues/3369
https://github.com/rancher/rke2/issues/1215

One of the things around using cluster templates for 2.6 is that in order to use a template as part of continuous delivery/gitops, the template/cluster definition would need to be deployed in the fleet-local namespace of the local cluster


[wip] add support for tEXt

Unfortunately I've not been able to test this locally as the download button isn't working. Would you be able to point me in the right direction when you get the chance?
This code uses a combination of uintxxBuffers and Blobs to insert the tEXt after the IHDR in the addOrUpdateExifData function

I've since been able to test this and exported the following png

Running my getmeta test script, this returns


Anaconda to Atom

I have being using Anaconda and Jupyter Notebook but I would like to migrate to Atom.
After installing Atom it does not work when I try to run a python code. Displaying a message of error saying that Atom could not locate the python exe.
Also this message prompts at Atom when it initiates:
"python-tools was unable to find your machine's python executable.
Please try set the path in package settings and then restart atom."
I tried to set the path to the Anaconda3 folder which there is the python.exe, using the package "python-tools" but it didn`t work.
Anyone knows how to solve this issue? Since I am a beginner I need detailed instructions. Thanks in advance.

Hello,
I've been facing the same issue.
Each time I try to indicate a path to python-tools (say "D:\ProgramData\Anaconda3") and reboot the app, the pop shows again and again.
Then I realized that the plugin page inside Atom (and on the github homepage) states that the issue is known:

Common Problem: "python-tools was unable to find your machine's python executable"
Make sure python is installed on your machine (jedi is used internally which runs off python)
Make sure your python executable is added to your PATH environment variable

So what I did was:
Define an ANACONDA_BASE_PATH environment variable:
set ANACONDA_BASE_PATH=O:\Lib\site-packages;O:\Library\bin;O:\Lib;O:\Scripts;O:\DLLs; O:\;
(my anaconda is directly accessible to O:\ drive. Others might have in a path that looks like: D:\ProgramData\Anaconda3)
I also added ANACONDA_BASE_PATH to my PATH (system or user, its your choice):
set PATH=%ANACONDA_BASE_PATH%;%PATH%
Then I rebooted Atom, and voilà. No more weird pop-up.
N.B.: the plugin 'Path to python directory was empty'


[release-2.37.0][BEAM-12164]: Fixes SpannerChangeStreamIT (#16806)

The GSON object was being initialized in a static context. When the DoFn
that used it was called in another JVM, which did not initialized this
object, we were getting a NPE exception.
Here, we move the initialization of the GSON object inside the DoFn
itself (through a setup method).
Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @TheNeuralBit

Is this a cherry pick of a PR merged on master already?
If so I think I'd be ok with cherrypicking, since it's just changing test code.

Is this a cherry pick of a PR merged on master already?
If so I think I'd be ok with cherrypicking, since it's just changing test code.

yeah it is merged on master already, to fix PostCommit_Java_DataflowV2

Looksl ike iti was merged here: https://github.com/apache/beam/pull/16806


Notation: Add new features

[x] Abaqus UMAT notation

[x] stress
[x] strain
[x] stiffness
[x] compliance

[x] Abaqus VUMAT notation (stress, strain, )

[x] stress
[x] strain
[x] stiffness
[x] compliance

Solution is given in ExplicitConverter


Update to highlight the use of glob based file naming option for data…

…frame exports
Added a section to highlight users should use glob based file names instead of trying to write to a single file. Issue occurs with to_csv() but may affect other export options. The use of glob based naming is reported here https://groups.google.com/a/continuum.io/forum/#!searchin/blaze-dev/to_csv/blaze-dev/NCQfCoOWEcI/S7fwuCfeCgAJ as being common practice for parallel librarys

Closing as this PR seems to be superseded by #1525