Trouble Mocking (faking) AsyncStream

I'm trying to mock a stream for testing my session class.  When I do so I get a very long compiler error which eventually complains about an implicitly-deleted copy constructor of boost::beast::http::detail::write_some_op.  The deepest level of compiler error is included below, the stack is very long so I've omitted the other lines in the stack.  When I replace FakeStream with boost::beast::tcp_stream the program compiles. Since there are various asserts on Handler types and Stream types it looks like the method signatures for FakeStream are correct.  Is there something else I'm missing?
Any help you can provide would be useful.
boost beast version 248
/usr/bin/clang++-7 --version
clang version 7.0.0-3~ubuntu<IP_ADDRESS> (tags/RELEASE_700/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_function.h:173:10: error: call to implicitly-deleted copy constructor of 'boost::beast::http::detail::write_some_op<boost::beast::http::detail::write_op<boost::beast::http::detail::write_msg_op<std::_Bind<void (Session<boost::beast::http::basic_dynamic_body<boost::beast::buffers_adaptor<std::vector<boost::asio::mutable_buffers_1, std::allocatorboost::asio::mutable_buffers_1 > > >, FakeStream>::(std::shared_ptr<Session<boost::beast::http::basic_dynamic_body<boost::beast::buffers_adaptor<std::vector<boost::asio::mutable_buffers_1, std::allocatorboost::asio::mutable_buffers_1 > > >, FakeStream> >, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code, unsigned long)>, FakeStream, true, boost::beast::http::basic_dynamic_body<boost::beast::buffers_adaptor<std::vector<boost::asio::mutable_buffers_1, std::allocatorboost::asio::mutable_buffers_1 > > >, boost::beast::http::basic_fields<std::allocator > >, FakeStream, boost::beast::http::detail::serializer_is_done, true, boost::beast::http::basic_dynamic_body<boost::beast::buffers_adaptor<std::vector<boost::asio::mutable_buffers_1, std::allocatorboost::asio::mutable_buffers_1 > > >, boost::beast::http::basic_fields<std::allocator > >, FakeStream, true, boost::beast::http::basic_dynamic_body<boost::beast::buffers_adaptor<std::vector<boost::asio::mutable_buffers_1, std::allocatorboost::asio::mutable_buffers_1 > > >, boost::beast::http::basic_fields<std::allocator > >'
new _Functor(__source._M_access<_Functor*>());
#include <memory>
#include <string>
#include <vector>
#include <iostream>

#include <boost/asio/strand.hpp>
#include <boost/beast/core.hpp>
#include <boost/beast/http.hpp>
#include <boost/beast/version.hpp>

namespace http = boost::beast::http;  // from <boost/beast/http.hpp>
namespace net = boost::asio;          // from <boost/asio.hpp>
using tcp = boost::asio::ip::tcp;     // from <boost/asio/ip/tcp.hpp>

struct FakeStream {
  using results_type = tcp::resolver::results_type;

  using endpoint_type = tcp::endpoint;

  using executor_type = boost::asio::strand<boost::asio::io_context::executor_type>;

  struct State {
    executor_type executor;
    explicit State(const executor_type& executor) : executor{executor} {}
  };

  std::shared_ptr<State> state_;
  explicit FakeStream(const executor_type& executor) {
    state_ = std::make_shared<State>(executor);
  }

//  FakeStream(const FakeStream& other) = default;
//  FakeStream& operator=(const FakeStream& other) = default;
//
//  FakeStream(FakeStream&& other) = delete;
//  FakeStream& operator=(FakeStream&& other) = delete;
//  ~FakeStream() = default;

  void expires_after(std::chrono::seconds expiration_time) {}

  using read_write_handler_t = std::function<void(boost::system::error_code, size_t)>;
  // https://www.boost.org/doc/libs/1_71_0/doc/html/boost_asio/reference/AsyncReadStream.html
  template<typename MutableBufferSequence>
  void async_read_some(MutableBufferSequence const& mutable_buffer,
                       read_write_handler_t handler) {
    async_read_called_ = true;
    boost::system::error_code ec;
    boost::asio::post(
      boost::asio::bind_executor(get_executor(), std::bind(std::forward<read_write_handler_t>(handler), ec, 0))
    );
  }

  template<typename ConstBufferSequence>
  void async_write_some(ConstBufferSequence const & const_buffer,
                        read_write_handler_t&& handler) {
    async_write_called_ = true;
    boost::system::error_code ec;
    size_t bytes_in_buffer = boost::beast::buffer_bytes(const_buffer);
    boost::asio::post(
      boost::asio::bind_executor(get_executor(), std::bind(std::forward<read_write_handler_t>(handler), ec, bytes_in_buffer))
      );
  }

  static bool async_connected_called_;
  static bool async_handshake_called_;
  static bool async_write_called_;
  static bool async_read_called_;

  static void ClearAllCalledFlags() {
    async_connected_called_ = false;
    async_handshake_called_ = false;
    async_write_called_ = false;
    async_read_called_ = false;
  }

  executor_type get_executor() {
    return state_->executor;
  }

};

bool FakeStream::async_connected_called_ = false;
bool FakeStream::async_handshake_called_ = false;
bool FakeStream::async_read_called_ = false;
bool FakeStream::async_write_called_ = false;

template<typename Body, typename AsyncStream>
struct Session : std::enable_shared_from_this<Session<Body, AsyncStream>> {

  std::shared_ptr<AsyncStream> stream_;
  std::shared_ptr<http::request<Body>> request_;

  Session(net::io_context& io_context) :
    stream_{std::make_shared<AsyncStream>(net::make_strand(io_context))} {
  }

  void InitiateWrite(std::shared_ptr<http::request<Body>> request) {

    request_ = request;
    http::async_write(*stream_, *request_, std::bind(
      &Session::OnWrite,
      this->shared_from_this(),
      std::placeholders::_1,
      std::placeholders::_2
    ));
  }

  void OnWrite(boost::system::error_code ec, std::size_t bytes_transferred) {
    std::cout << "OnWrite called." << std::endl;
  }

};

int main(int argc, char** argv) {
  net::io_context io_context;

  std::string a = "abc";
  std::string b = "wzyz";
  auto buffer0 = boost::asio::buffer(a);
  auto buffer1 = boost::asio::buffer(b);
  std::vector buffers{buffer0, buffer1};
  auto buffer_adaptor = boost::beast::buffers_adaptor(buffers);
  buffer_adaptor.prepare(buffer0.size() + buffer1.size());
  buffer_adaptor.commit(buffer0.size() + buffer1.size());
  using body_type = boost::beast::http::basic_dynamic_body<decltype(buffer_adaptor)>;
  using request_type = boost::beast::http::request<body_type>;
  using header_type = request_type::header_type;
  auto request = std::make_shared<request_type>(header_type(), buffer_adaptor);
  //works: auto session = std::make_shared<Session<body_type, boost::beast::tcp_stream>>(io_context);
  auto session = std::make_shared<Session<body_type, FakeStream>>(io_context);
  session->InitiateWrite(request);

}

std::function cannot capture move-only types. Try using this mock stream instead:
https://github.com/boostorg/beast/blob/develop/include/boost/beast/_experimental/test/stream.hpp#L49

I looked at the experimental stream testing class.  It seems useful,  but I would need to modify it in order to do what I want to do.  Without some understanding of what I'm doing wrong I'm afraid I would end up in the same spot.
The program still fails to compile with the same error when these static_asserts are added (meaning these static asserts succeed).  So FakeStream seems to be copyable.  The write_op
  static_assert(std::is_copy_assignable<FakeStream>::value);
  static_assert(std::is_copy_constructible<FakeStream>::value);

FakeStream needs to support move-only handlers, so you can't use std::function.

I would need to modify it in order to do what I want to do

What do you need it to do?

Thanks for the quick reply.  Move-only handlers was the thing that I was missing.
I don't remember all the compiler errors I got when using the fake stream in experimental, but I believe it does not use strand or have an executor type parameter. It could probably be make to work with more effort.

Is there a good place to ask general asio questions?  Stackoverflow?

That's a good place, you can try the C++ Slack, email me for a link.


The front end part

Make the website more dynamic and user friendly.

kindly assign me @preeti13456

kindly assign me @preeti13456

I have assigned it already to @akrish4  so @harikishantk if you want to work on backend part for making payment gateway integration kindly let me know.

Yes, I would like to contribute to the backend part. Does this contribution come under SWOC?

we need to wait till jan 5 for making our contribution marked in SWOC. @preeti13456 @harikishantk

Yes, I would like to contribute to the backend part. Does this contribution come under SWOC?

yes
right @preeti13456

Yes

No actually @akrish4 try to do this front end part within 4-5 days after that i will assign it to @harikishantk .

I am intrested

Firstly discuss the approach here how will you proceed both @akrish4  and @anshshankar

@preeti13456  I am using bootstrap to make it fully responsive and along with it i will be improving the header and footer.

Good try to do the changes in respective file itself @akrish4 . And before pushing send the screenshot here

Good try to do the changes in respective file itself @akrish4 . And before pushing send the screenshot here

sure

Firstly discuss the approach here how will you proceed both @akrish4 and @anshshankar

I could use bootstrap, css to make the website look user friendly and Dynamic.
I would do following things

Make a tabs column where in all main categories will be available to the user
A carousel with wherein all major offers and promos for new user would be displayed
A minor changes in the all tabs
Additional some new pages such Faqs, etc

Can I work on it

yes but try to send the output here before pushing and start the pr making from 10 Jan

sure

@anshshankar  you can work on this  :)

@preeti13456 can i make afew changes to urls.py .
Such as after successful login the page is redirected to rent_now.html but can I redirect it to home.html and rent_now will be a tab
which will be opened after the user clicks on it

Sure

ok thanks

Hi @preeti13456
Progress Report :-
1) The Login Page has been modified with the addition of of buttons of fb/g+/twitter

2) The Blue Print Has been made for the First Page (Regex.html)

Good  work but in login page try to align forgot
Password and sign up text and about the first page let me know guys is the background color will looking good. And any other suggestions for modifications.

And try to add forgot password before login.

ok

I'm interested on this project

@anshshankar have started contributing and will send his pr after 3 jan. @Ajaykumar34 I will assign this issue to you afterwards till then you can tell any changed looking to modeified change.
In the meantime look to other unassigned issues as well.

I have Questions regarding this projects

Yes please ask, you can ping me on slack or linkledin.

I would like to work on it too.

I would like to work on it too.

ya @nporia , I am currently Working on it.
I would make pr by 10th Jan . After that you can work on it.

ya @nporia , I am currently Working on it.
I would make pr by 10th Jan . After that you can work on it.

@anshshankar  make the pr as soon as possible

@anshshankar  make the pr as soon as possible

ya sure

ya sure

@preeti13456  could you open an issue for each and every page of the project . As this makes this lightens up the programer's work and you could get your work done in short period of time, due to involment of many coders. And the website will more looks more awesome . You could Fix a theme for the website.  As I couldn't do much work due to time constraint from my side. I had Fully prepared About us page. If you Like You could pick That theme ,as that theme looks good for the project

@preeti13456  could you open an issue for each and every page of the project . As this makes this lightens up the programer's work and you could get your work done in short period of time, due to involment of many coders. And the website will more looks more awesome . You could Fix a theme for the website.  As I couldn't do much work due to time constraint from my side. I had Fully prepared About us page. If you Like You could pick That theme ,as that theme looks good for the project

As i have closely monitored this project for almost 1 and half week . I could understand the project very well .
And will soon available for contribution in span of 2 weeks ,Since there is event going on in my university , i couldn't do much to project. And I regret it.

As i have closely monitored this project for almost 1 and half week . I could understand the project very well .
And will soon available for contribution in span of 2 weeks ,Since there is event going on in my university , i couldn't do much to project. And I regret it.

Sounds cool. So I have created the issue for login page I'll create an issue for about us page as well.

Sounds cool. So I have created the issue for login page I'll create an issue for about us page as well.

Is that ok?

Is that ok?

Ya you could create issue for it if you want, And also you should create issue for rent_bike ,Bikes ,Offers ,Contact us And Should create a new page for profile section

Ya you could create issue for it if you want, And also you should create issue for rent_bike ,Bikes ,Offers ,Contact us And Should create a new page for profile section

Rent_bikes and bikes have already been done check the repo. I'll create for contact us, offers a and profile section

Rent_bikes and bikes have already been done check the repo. I'll create for contact us, offers a and profile section

ok

ok


Implement stdlib sort.

I am giving this a try and I am left wondering how to achieve :
let a = PArray (V.fromList [PString "world", PBoolean True, PString "hello"])
a ^. _PArray.traverse._PString
-- gives "helloworld" how can I get ["hello", "world"] so I can do List.sort on it ?

I guess there is something simple that I don't see yet ;-)
Any hint would be welcomed.

I guess in practice I should really throw an exception when the array is not all PString or all PNumber

I came up with this so far:
sort :: PValue -> InterpreterMonad PValue
sort (PArray s) = do
  let toText (PString v) = return v
      toText _ = throwPosError ("sort(): the current implementation only sort a list of strings")
  v <- mapM toText (V.toList s)
  return $ PArray (V.fromList (map PString (List.sort v)))
sort x = throwPosError ("sort(): Expect to sort an array, not" <+> pretty x)

Is there a way to make this a bit idiomatic ?

Answering quickly from the phone. ^. Is view. It returns a single value,
which is a monoidal summary in case of things that are not lenses
(traversal). You need tolistof, or ^.. Here.
Le 7 août 2017 3:35 PM, "Pi3r"<EMAIL_ADDRESS>a écrit :

I am giving this a try and I am left wondering how to achieve :
let a = PArray (V.fromList [PString "world", PBoolean True, PString "hello"])
a ^. _PArray.traverse._PString
-- gives "helloworld" how can I get ["hello", "world"] so I can do List.sort on it ?
I guess there is something simple that I don't see yet ;-)
Any hint would be welcomed.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bartavelle/language-puppet/issues/211, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ABIQ703RUN4dafKjRDjN4P-64xtIyLZIks5sVxK1gaJpZM4Ovces
.

Do you see a way to make the current implementation working for both array of string and ints ? I am quite curious about this.

I have a few minutes with a computer, so:

toText already exists (resolvePValueString)!
what is the requirement when sorting an array with heterogeneous values ?

To mimic the ruby implementation, array with heteregenous value should fail. In ruby, array with boolean values also fails.
I knew about resolvePValueString but didn't use it because it might not do what is expected with array of boolean values or integer values.
Out of curiosity I would love to see an implementation that only sort array of ints and array of strings. I am wondering how to handle the fact that we need to go from PValue to String and Int, sort such array and then back to the previous type.

Just pushed an example with code  duplication

Thanks !

Factorized the code, in case you want to see the kind of things you can do with prisms.


Added mocked API call support to testing framework

This PR adds the ability for Slack API calls to be mocked and implements mocking for the conversations.members, conversations.history, channels.list, groups.list, im.list, users.info and chat.postMessage calls.
With this PR we can finally test our more complicated scripts and work towards complete test coverage. I have demonstrated this by fully testing mock.py and welcome.py which both rely extensively on the Slack API.
Comments and feedback much appreciated :^)

Can now be closed - no more async

Actually there's a lot of good non-async stuff in here

yeah I opened #296 to track the porting of the good shit, async stuff was minimal. Will probably keep this PR and rename it

PR needs to be retargeted to master

Retargeted to base branch

@TRManderson this PR is now ready for review if you have the time at some point (no rush <3)
@jdcaperon @nicklambourne as well if either of you would care to review (also no rush)
most of this was done when very tired so pls lemme know if something is dumb/needs further explaining


[wip] Add release manifests

Part of the SIG release work
Tested at https://github.com/openshift-knative/serverless-operator/pull/1642
Adds openshift folder as in other midstream repos. Plan is to automate this for each new release branch cut upstream.

Closing this as image injection didnt land in 1.24 at the S-O side.


[FlurryWatchConnectivityProxy methodSignatureForSelector:]

I'm using 7.5.2 version of Flurry iOS SDK and I'm getting a lot of crash reports related to your library.
Please find attached crash report for more details.
report.txt

@josipbernat Thanks for the head's up, we're on it and taking a look.

@josipbernat we think we've found the problem and can reproduce the issue.  Our crack engineer @abhandary is hot on the trail.  No ETA yet, but it's a confirmed issue and we're going to address it ASAP.  Thanks for your patience!
Also, I hear that if you send candy to @dlow-yahoo-inc it might get solved faster.  I am in no way advocating bribery, mind you, but he's also hot on the case, and, well, candy goes a long way!

We have a few apps that recently upgraded to Flurry 7.6.4 (from 7.5.1 and 7.2.1), and we're experiencing a large number of related crashes.  I'll supply some details in case it is helpful.
tl;dr - In the short term, we'll have to roll back our Flurry pod and others (like Crittercism & Mixpanel).  Please let us know ASAP if you've made any progress on this issue!
Unfortunately, we can't reproduce this crash - but we see large numbers of stack traces like this in Crittercism:
SIGBUS - BUS_ADRERR
0	libsystem_malloc.dylib 0x0000000183b0a9d4 szone_malloc_should_clear + 5408
1	libsystem_malloc.dylib 0x0000000183b09468 malloc_zone_malloc + 112
2	CoreFoundation 0x0000000183e1b0f8 _CFRuntimeCreateInstance + 312
3	CoreFoundation 0x0000000183f05e98 __CFStringCreateImmutableFunnel3 + 1884
4	CoreFoundation 0x0000000183e1c8c0 CFStringCreateWithBytes + 40
5	Foundation 0x000000018480ea90 -[NSPlaceholderString initWithBytes:length:encoding:] + 140
6	Foundation 0x000000018480e9e4 +[NSString stringWithUTF8String:] + 144
7	Foundation 0x000000018482a200 NSStringFromSelector + 44
8	Flurry_iOS_SDK 0x000000010060d4ec -[FlurryWatchConnectivityProxy respondsToSelector:] (FlurryWatchConnectivity.m:59)
!	9	NoWait_Host 0x00000001002f11c4 -[CRWCSessionDelegateProxy respondsToSelector:] (/Users/sdkbuilder/.jenkins/jobs/crittercism-ios/workspace/src/Crittercism-iOS/CRWCSessionDelegateProxy.m:226)
10	Flurry_iOS_SDK 0x000000010060d5cc -[FlurryWatchConnectivityProxy respondsToSelector:] (FlurryWatchConnectivity.m:75)
11	NoWait_Host 0x00000001002f11c4 -[CRWCSessionDelegateProxy respondsToSelector:] (/Users/sdkbuilder/.jenkins/jobs/crittercism-ios/workspace/src/Crittercism-iOS/CRWCSessionDelegateProxy.m:226)
12	Flurry_iOS_SDK 0x000000010060d5cc -[FlurryWatchConnectivityProxy respondsToSelector:] (FlurryWatchConnectivity.m:75)

The last 2 lines repeat dozens of times.  The stack trace labels line 9 - CRWCSessionDelegateProxy - as the crash line, but it's unclear if the culprit is Flurry or Crittercism.
One important note is that one of our apps does not have any related watch extension or code, and yet it still gets these (seemingly) watch related crashes.  Both apps, however, receive the crash above.
As part of our recent app upgrades, the Crittercism pod also jumped to version 5.5.5 (from 5.5.1 and 5.4.0).  Crittercism 5.4.0 was apparently one of their last versions without watch monitoring, but by 5.5.1 they did have it - see monitorWCSession in their API.  When we were running Flurry 7.5.1 and Crittercism 5.5.1 - on the app with a watch extension - we did not receive these issues.
A few of our other pods updated during our recent releases, too, and I can post before and after podfile.lock lists if it helps.  For example, it appears that the most recent versions of Mixpanel add an exception handler that could conflict with Flurry and/or Crittercism.  Based on the stack trace and the OP's report, I'm leaning towards Flurry/Crittercism watch support as the problem.
We've also contacted Crittercism, and I'll post an update if they have more details.

@ogel please send in to<EMAIL_ADDRESS>and we will let you know about a workaround.


Test coverage should improve

As I'm using GitList day in and out I would prefer to increase the test level and thereby the stability of the GitList project and allowing proper testing of future releases and other PHP versions. I tried to do this for the original (See https://github.com/klaussilveira/gitlist/pull/468) but never got merged.
My approach would be to port the pending pull request to this fork, which

Introduces vfsStream to mock any file system operations (seems legit as GitList extensively relies on the file system)
Start the use of namespaces in the test folder to mimic the sources folder
Introducing the specifying of the covers methods limiting the coverage information to the specified unit under test.

Before taking the effort the second time I would like to validate the approach in order to have my pull request, once done, merged within a reasonable time.
Please let me hear your thoughts.

Hi @DannyvdSluijs,
I like testing with continuous integration. As long as it is compatible with phpunit, feel free to add some tests and send a PR ;) However, I've filed #4 about migrating to Silex 2 API. Does this result in any complications for testing?

@alehaa I'm quite sure it will not, and otherwise I'll find out. It will remain phpunit testing. Just wanted to outline the approach a bit more to validate before taking the effort. ;-)
Will see if I can atlas port the make the same as in the pull mentioned earlier.

Ok sounds good. Maybe you can fork his branch and reuse it? Think better testing might help to find any issues in #4 then. ;)

Merged #5.


possible implementation of a "v-if" directive

Hello Pavel,
domc looks really interesting (although I did not get "v-for" working properly on list updates), which is why I am currently playing around with it.
In order to understand the underlying logic, I started implementing a "v-if" directive. It may be used as follows:

<tag v-if="scopeProp">...</tag> where scopeProp is the name of a (boolean) scope property. The <tag/> will be shown if scopeProp is true
<tag v-if="(args) => expr">...</tag> where args is an (optionally empty) comma-separated list of scope properties and expr an expression which must evaluate to true in order for <tag/> to be shown. When used in the expression, this refers to the local scope
<tag v-if="(args) => { statements }">...</tag> where args is an (optionally empty) comma-separated list of scope properties and statements the body of a function which should return true in order for <tag/> to be rendered. When used in the function body, this refers to the local scope

Source code follows below:
  customDirectives['if'] = function setup (initialNode, Directive) {
    if ((Directive == null) || (Directive.trim() === '')) {
      Directive = '() => true'
    }

    const IdentifierPattern = /^\s*([_$a-z][_$a-z0-9]*)\s*$/i
    const FunctionPattern   = /^\s*\(\s*([_$a-z][_$a-z0-9]*(?:\s*,\s*[_$a-z][_$a-z0-9]*)*)?\s*\)\s*=>\s*([\s\S]+)$/i

    let Match
      Match = IdentifierPattern.exec(Directive)
      if (Match != null) {
        Match = [null, Match[1], `{ return (${Match[1]} == true) }`]
      } else {
        Match = FunctionPattern.exec(Directive)
        if (Match == null) throw new Error(
          'domc: invalid "v-if" condition given'
        )
      }
    let [_,Parameters,Body] = Match
      Parameters = (Parameters || '').trim().replace(/\s*,\s*/g,',').split(',')
      if (Parameters[0] === '') { Parameters = [] }

      Body = Body.trim()
      switch (true) {
        case (Body === ''):
          Body = 'return true'
          break
        case Body.startsWith('{'):
          Body = Body.slice(1).replace(/\}\s*$/,'').trim()
          break
        default:
          Body = 'return ' + Body
      }
    let Predicate
      try {
        Predicate = new Function(Parameters.join(','),Body)
      } catch (Signal) {
        throw new Error(
          'domc: could not compile "v-if" condition, reason: ' + Signal
        )
      }
    const Template     = domc(initialNode)
    let   renderedNode = initialNode
    let   isVisible    = false

    function update (Scope) {
      let shouldBeVisible
        try {
          let ArgumentList = Parameters.map((Parameter) => Scope[Parameter])
          shouldBeVisible = (Predicate.apply(Scope,ArgumentList) === true)
        } catch (Signal) {
          throw new Error(
            'domc: could not evaluate "v-if" condition, reason: ' + Signal
          )
        }
      if (shouldBeVisible) {
        let localScope = Object.assign({},Scope)
        if (isVisible) {
          renderedNode.update(localScope)
        } else {
          renderedNode.replaceWith(
            renderedNode = Template.createInstance(localScope)
          )
        }
      } else {
        if (isVisible) {
          renderedNode.replaceWith(
            renderedNode = document.createElement('div')
          )
          renderedNode.style.display = 'none'
        }
      }
      isVisible = shouldBeVisible
    }
    return update
  }

If it turns out to work reliably, I'll also create a Pull Request

Hello, as you created #15, let's continue discussion there. Will close this issue.


Error 500

When i try logging in/out an error 500, no errror logged on error file, kindly test admin.cfb.co.ke and me know if you know way round this

Error 500 means that internal server error occurred, you have to enable php errors output to figure out what is going on. And then either solve the problem your self or create an issue with more detailed explanation.

I have enabled all error in my PHP.ini it doesnt show any error,  the problem seems to be random as sometime it works well sometime it throws this error, sometime after i loggin it direct me to favicon.ico url i really can not figure out why this is happening

It should show errors if php is configured correctly to show errors.
sometime after i loggin it direct me to favicon.ico url
this probably means that your server is configured in a wrong way.


Giveaway feature

We use SoCuul/GivneawayBot for running giveaways. Should we move away from 3rd party non-maintained giveaway bot and include the feature in Testauskoira?

@DrVilepis @lajp This should be your next priority in development, after all other base-level features are functional.

Noted

Yeah, I've already started the implementation to some degree.. Also I think @Mixu78 is/was working on this.

This is now implemeted by #29
Thank you @Mixu78 for your amazing work on this!


Fix grammatical error

This change is

This is grammatically correct because "plug-ins" is plural. It would be "rejects" if the sentence was "If a plug-in in the sequence rejects the request..."


Replacement of "compile" with "implementation"

As "compile" is going to be deprecated end-2018, this PR replaces with "implementation" that is the new usage.

Awesome, thanks!


Also support Kotlin ?

I have found this fascinating if using Java for android native apps development. But what if we develop apps with Kotlin ?

Hey @burkaslarry since Kotlin is fully interop, CameraKit should work in Kotlin without issue! Do you run into issues?

I ran into this absurd issue trynna upgrade to version 0.12.x. After a full build I get hundreds of previously nonexistent nullability errors in all my kotlin files. This happens only for this particular library (and versions > 0.11.0) when added as gradle library dependency. Would appreciate if anyone comes up with a clue or faced similar problems.

what if 1.2.0 ?

@iftekhar-ahmed Can you outline what version of Kotlin and some example errors?

I have used kotlin 1.2.0  . seems ok .could you please tell me ....any examples of using captureImage with completion handler  ?

I have sen the doc , no page for mentioning this.

@austinkettner I tried kotlin 1.1.60. Here is sample build errors -
library version - 0.12.1
`e: /Workspace/tise-android/app/src/main/java/com/tise/tise/adapters/AbsFragmentPagerAdapter.kt: (29, 5): 'destroyItem' overrides nothing
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/adapters/AbsFragmentPagerAdapter.kt: (31, 27): Type mismatch: inferred type is ViewGroup? but ViewGroup was expected
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (119, 68): Type mismatch: inferred type is Context? but Context was expected
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (121, 53): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type FragmentActivity?
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (137, 64): Type mismatch: inferred type is Context? but Context was expected
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (139, 49): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type FragmentActivity?
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (161, 52): Type mismatch: inferred type is Context? but Context was expected
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (163, 37): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type FragmentActivity?
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (186, 27): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Bundle?
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (187, 27): Smart cast to 'AppCompatActivity' is impossible, because 'activity' is a property that has open or custom getter
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (216, 43): Type mismatch: inferred type is Context? but Context was expected
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (227, 5): 'onCreateView' overrides nothing
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (232, 5): 'onViewCreated' overrides nothing
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (233, 29): Type mismatch: inferred type is View? but View was expected
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (243, 86): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Context?
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AddToUDLDialogFragment.kt: (269, 18): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Bundle?
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AttributeValuesListFragment.kt: (61, 33): Type parameter bound for T in val  T.javaClass: Class
is not satisfied: inferred type FragmentActivity? is not a subtype of Any
e: /Workspace/tise-android/app/src/main/java/com/tise/tise/fragments/AttributeValuesListFragment.kt: (61, 43): Type inference failed: Not enough information to infer parameter T in val <T : Any!> Class.simpleName: String!

What went wrong:
Execution failed for task ':app:compileDebugKotlin'.

Compilation error. See log for more details
`

@froesmatheus I ended up ditching the library. Later discovered the library had nothing to do with the kotlin errors. Google on some appcompat version update, decided all getContext(), getActivity() calls are candidates for null return types and kotlin compiler just put the icing on the cake(!). That's why so many errors showed up. You gotta put the Force RTE !! or check nulls with elvis ?: here


institution_id registration of CAMS

Hello,
My colleague Li Jianduo have register our institution on Mar 15 2017.
Here I repeat the information again:
institution_id = CAMS
institution = Chinese Academy of Meteorological Sciences, Beijing 100081, China
Thank you!
Best regards,
Xinayo Rong

Hi @camscmip6 we have CAMS registered already, see https://github.com/WCRP-CMIP/CMIP6_CVs/blob/master/CMIP6_institution_id.json#L8 - as you note this was registered on the 20th March 2017 https://github.com/WCRP-CMIP/CMIP6_CVs/issues/245
For this reason I will close this issue


Use BlockManipulator exclusively for insert methods in RoutesFileManipulator

Continuation of #53.
My goal with this PR is to fully replace insert, insert_before, and insert_after, but I'll at least start with insert and see how far I can get.

This one's proving to be a little difficult, I'll have to really take a step back and analyze both insert methods before moving any further. I think they're both pretty powerful pieces of code, they're just kind of easy to get lost in when trying to look at the whole scope of things.

RoutesFileManipulator#insert has officially been replaced with Scaffolding::BlockManipulator#insert!!! That was crazy 🥵
The only two left are:

insert_before
insert_after

If it turns out to be too crazy, I'll cut this PR here after standardrb --fix and start an new one.


Compatibility with 1.1.2647

1.1.2647 has added and changed features relating to royalty and psycasting. Please add support for meditation to BPC.

This doesn't make sense. Closing it.


ARROW-8336: [Packaging][deb] Use libthrift-dev on Debian 10 and Ubuntu 19.10 or later

They have Trhift 0.11.0 or later.

@github-actions crossbow submit debian-buster ubuntu-eoan ubuntu-focal

Oh the dreaded
cp: error writing 'debian/libarrow-python-dev//usr/lib/x86_64-linux-gnu/libarrow_python.a': No space left on device

+1
"No space left on device" is unrelated to this. I'll fix it in another pull request.
I confirmed that all of them found system Thrift.


search_dates neglects timezone information

It looks quite strange to me that while parse() manages to parse timezone information and returns timezone-aware datetime object by default:
>>> from dateparser import parse
>>> parse('January 12, 2012 10:00 PM EST')
datetime.datetime(2012, 1, 12, 22, 0, tzinfo=<StaticTzInfo 'EST'>)
>>> parse("Aug 06, 2018 05:05 PM CDT")
datetime.datetime(2018, 8, 6, 17, 5, tzinfo=<StaticTzInfo 'CDT'>)

The same does not apply to dateparser.search.search_dates():
>>> from dateparser.search import search_dates
>>> search_dates("Aug 06, 2018 05:05 PM CDT")
[('Aug 06, 2018 05:05 PM', datetime.datetime(2018, 8, 6, 17, 5))]

Closed with https://github.com/scrapinghub/dateparser/pull/544.


Integrate with ssh-credentials-plugin and credentials-plugin

Also fixed JENKINS-6714 (as opposed to just complaining that keyboard-interactive is not supported), i.e. keyboard-interactive now works.
Before merging it needs some checks that backwards compatability works, i.e. upgrading does not bork your system.
Also need to check that configuration is only locked in if you save the slave configuration... as long as you don't save, should be able to roll-back to previous version.
Might need that magic configuration in the pom to say what the data consistency version is

+1 for keyboard-interactive support for the SSH slave plugin. Would solve a lot of my current problems!


mypy does not understand output of binary operations

What happened?
When doing operations on numpy arrays and xarray variables mypy does not understand that the output is always a xarray variable regardless of the order. See example.
What did you expect to happen?
mypy to pass for the example code.
Minimal Complete Verifiable Example
import numpy as np
import xarray as xr

x = np.array([1, 2, 4])
v = xr.Variable(["x"], x)

# numpy first:
xv = x * v
xv.values  # error: "ndarray[Any, dtype[bool_]]" has no attribute "values"  [attr-defined]
if isinstance(xv, xr.Variable):
    xv.values

# variable first:
vx = v * x
vx.values
if isinstance(vx, xr.Variable):
    vx.values

MVCE confirmation

[X] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray.
[X] Complete example — the example is self-contained, including all data and the text of any traceback.
[X] Verifiable example — the example copy & pastes into an IPython prompt or Binder notebook, returning the result.
[X] New issue — a search of GitHub Issues suggests this is not a duplicate.

Relevant log output
No response
Anything else we need to know?

I just realized that the _typed_ops.pyi type definitions are wrong.
e.g. DataArray.__add__ will return NotImplemented on Datasets which in turn should then call Dataset.__radd__.
In type definitions, it should simply not accept Datasets at all, and mypy will realize this and use Dataset.__radd__ instead.
So all these overloads are useless.
But not sure if this solves the problem, I have not tested it yet!
In a mini test example this worked for me:
class A:
    i: int

    def __init__(self, i: int) -> None:
        self.i = i

    def __add__(self, other: A | int) -> A:
        if isinstance(other, A):
            return A(self.i + other.i)
        if isinstance(other, int):
            return A(self.i + other)
        return NotImplemented

    def __radd__(self, other: A | int) -> A:
        return self + other

    def __str__(self):
        return f"A({self.i})"

class B:
    ii: dict[str, int]

    def __init__(self, ii: dict[str, int]) -> None:
        self.ii = ii

    def __add__(self, other: A | B | int) -> B:
        if isinstance(other, B):
            return B(
                {k: i + other.ii.get(k, 0) for k, i in self.ii.items()}
                | {k: o for k, o in other.ii.items() if k not in self.ii}
            )
        if isinstance(other, A):
            return B({k: i + other.i for k, i in self.ii.items()})
        if isinstance(other, int):
            return B({k: i + other for k, i in self.ii.items()})
        return NotImplemented

    def __radd__(self, other: A | B | int) -> B:
        return self + other

    def __str__(self):
        return f"B({self.ii})"

a = A(1)
b = B({"a": 5})

print(a + 1)
print(1 + a)
print(a + a)

print(b + 5)
print(5 + b)
print(b + b)

print(a + b)
print(b + a)

reveal_type(a + 1)
reveal_type(1 + a)
reveal_type(a + a)

reveal_type(b + 5)
reveal_type(5 + b)
reveal_type(b + b)

reveal_type(a + b)
reveal_type(b + a)

I have entered quite the rabbit hole here.
This is not only a typing issue anymore :/
Somehow the operators used in xarray are not doing what the python standard dictates: return NotImplemented when you get an unknown type. Instead we pass everything down to the underlying data types.
This results in weird error messages like:
import xarray as xr
xr.DataArray([1, 2, 3]) + {"asd"}

raises:

TypeError: unsupported operand type(s) for +: 'int' and 'set'

but it should be "TypeError: unsupported operand type(s) for +: 'xarray.core.DataArray' and 'set'"
It seems that we have done this only for xarray objects but not all other types.
Back to static typing:
I still don't know how to best type the other argument of these ops...
In principle this method is supposed to accept ANYTHING, so the type should be object and then I might have to add some overloads for the compatible data and their return types.
However, -> NotImplemented or Literal[NotImplemented] or similar does not work. It seems that mypy is happy if I remove this overload entirely (i.e. do not use other: object at all and only use the compatible one), I only get some complaints about the Mapping class which could be ignored.

Ok, I could improve the typing a bit of the ops but I fear that numpy is too dominant here...
Numpy types its __add__ with a type that includes SupportsArray, a Protocol that defines a __array__ method.
In other words: a xarray.Variable falls into this type and the type checker will always think that np.ndarray.__add__(self, xr.Variable(...) -> np.ndarray just as you wrote.
So this particular problem is a numpy upstream problem :/ Feel free to open a PR over there, but I don't see a quick fix for this on numpys side...

I coincidentally came across this today — I think it might be the same issue, but can open a new issue if not.
With this code:
diff --git a/xarray/tests/test_variable.py b/xarray/tests/test_variable.py
index 3c40d0a2..193cde41 100644
--- a/xarray/tests/test_variable.py
+++ b/xarray/tests/test_variable.py
@@ -26,6 +26,7 @@
     VectorizedIndexer,
 )
 from xarray.core.pycompat import array_type
+from xarray.core.types import T_DataWithCoords, T_Xarray
 from xarray.core.utils import NDArrayMixin
 from xarray.core.variable import as_compatible_data, as_variable
 from xarray.tests import (
@@ -395,6 +396,9 @@ def test_1d_math(self, dtype: np.typing.DTypeLike) -> None:
         assert isinstance(0 + v, Variable)
         assert not isinstance(0 + v, IndexVariable)

+    def test_type_pow(self, x: T_DataWithCoords) -> T_DataWithCoords:
+        return x**2
+
     def test_1d_reduce(self):
         x = np.arange(5)
         v = self.cls(["x"], x)

We get this error:
xarray/tests/test_variable.py: note: In member "test_type_pow" of class "VariableSubclassobjects":
xarray/tests/test_variable.py:400: error: Unsupported operand types for ** ("T_DataWithCoords" and "int")

I coincidentally came across this today — I think it might be the same issue, but can open a new issue if not.
With this code:
diff --git a/xarray/tests/test_variable.py b/xarray/tests/test_variable.py
index 3c40d0a2..193cde41 100644
--- a/xarray/tests/test_variable.py
+++ b/xarray/tests/test_variable.py
@@ -26,6 +26,7 @@
     VectorizedIndexer,
 )
 from xarray.core.pycompat import array_type
+from xarray.core.types import T_DataWithCoords, T_Xarray
 from xarray.core.utils import NDArrayMixin
 from xarray.core.variable import as_compatible_data, as_variable
 from xarray.tests import (
@@ -395,6 +396,9 @@ def test_1d_math(self, dtype: np.typing.DTypeLike) -> None:
         assert isinstance(0 + v, Variable)
         assert not isinstance(0 + v, IndexVariable)

+    def test_type_pow(self, x: T_DataWithCoords) -> T_DataWithCoords:
+        return x**2
+
     def test_1d_reduce(self):
         x = np.arange(5)
         v = self.cls(["x"], x)

We get this error:
xarray/tests/test_variable.py: note: In member "test_type_pow" of class "VariableSubclassobjects":
xarray/tests/test_variable.py:400: error: Unsupported operand types for ** ("T_DataWithCoords" and "int")

This might be because the typed_ops is only added into the class hierarchy at the DataArray and Dataset level, but not for DataWithCoords.
If you change that to T_Xarray then it should work.

Yes, you're completely correct — thanks! (This would be fixed by #8208, coincidentally...)
I'll minimize these to reduce the noise

Related:
[1, 2 ,3] == DataArray([1, 2, 3], dims=["t"])

will be inferred to bool. Same for anything basically, including np.ndarray.
There is no way to prevent this currently. Requires a typeshed update.
Caused by https://github.com/python/typeshed/issues/8217 / https://discuss.python.org/t/make-type-hints-for-eq-of-primitives-less-strict/34240

Is there anything we can do here or should we close?

Closing as upstream issue


Add LOG_LEVEL & supporting log functions

Issue Ref: https://github.com/veqryn/kube-cloudwatch-autoscaler/issues/9
Adds ERROR (red prefix), INFO (green prefix), DEBUG (yellow prefix) functions controlled by LOG_LEVEL env var.

Will try get a test run built.

Local test run output.

Test run with LOG_LEVEL=ERROR

I assume you are actively using this in production, correct?
If so, can you please have a look at the other 1 issue and other 1 PR, and see we should fix or merge those?
(I was previously using this project in production, but stopped when that project got shut down, so I am hesitant to make changes without being able to thoroughly test them.)

I assume you are actively using this in production, correct? If so, can you please have a look at the other 1 issue and other 1 PR, and see we should fix or merge those? (I was previously using this project in production, but stopped when that project got shut down, so I am hesitant to make changes without being able to thoroughly test them.)

I had a look at the other PR, not exactly sure why you would want to pass through a raw CW value e.g. scale to the depth of an SQS queue with 1,000,000 items. Given it's been 5 years, we could reach out but I reckon that the requester has either moved on or chosen a different path.
Re the trap issue, fixed by passing through exit code.
If you are no longer using this in production, are you happy to keep maintaining it going forward ?

I could add you to the project, if you'd like to help maintain it.

Let me know when you are ready for a merge

Ready.

I could add you to the project, if you'd like to help maintain it.

Up to you, I'm happy to pitch in.

@martin-walsh merged and added you as a collaborator. Let me know if I need to change any other settings for you.


Consider closing error channel as signal to stop

Thanks for the library guys! Found it tonight and its just about exactly what I'm looking for, though I did run into a couple issues while trying to use it that I though I'd ask about addressing before getting too much deeper.
The first is that it doesn't seem possible to know -- after calling stop() -- that the queue is flushed. This is because the errors channel is never closed, so I assume that clients are just supposed to wait some reasonable amount of time after calling stop?
I also wonder whether there's value in providing the two different interfaces (streamer and multi-streamer). It seems like all you really need is 1 "producer", and N "consumers", and the single streamer is just the N=1 case? I ran into this because I was trying to send to a streamer from multiple goroutines, but that requires me to do my own synchonization around streamer. I finally saw the note that you "probably shouldn't use streamer", but that got me wondering whether both of these issues could be addressed by just changing up the interface to always take a "numWorkers" param, and let the client close the requests channel as a stop-signal, then just iterating over the errors channel to know that the queue is drained.
Not sure if that makes any sense (it's past my bedtime and my brain is fried!) but I've tried to lay it out in code here:
http://play.golang.org/p/qBJ5nofG39
Though I obviously understand if you think that deviates too far from your intended use-cases -- just thought I'd float the idea. Thanks anyway -- this looks very useful!

Hey @cameront ! Thank you for providing feedback, and sorry that it took me so long to reply.

Yes, the error channel is never closed, and regardless there isn't any direct way to know when flushing to BigQuery happen. Only way now is to wait/sleep until the timeout occurs.
Yup, documentation could use a face lift regarding the multi/streamer difference, and the "single" Streamer shouldn't really be public at all.

I'm currently working on a "v2" branch that I'll be finalizing in the coming days. It'll introduce breaking changes but will be much clearer and conventional to work with. Some key features include:

sync/async streamer packages. The async subpackage will be the old MultiStreamer (the "single" Streamer will be for internal use only). The sync subpackage will feature inserting in sync, waiting for the response before moving on. Practically async will use sync with goroutines internally.
Using interfaces instead of structs, because golang.
More tests + mocking.

Feel free to take a look at the branch: https://github.com/rounds/go-bqstreamer/tree/add-sync-streamer
I'll be merging it soon.
Thanks again for the feedback, I'd be happy to hear more in the future.

I'd forgot - I'll also take the "flushed" notification channel you requested into account, will keep this issue updated.


Move quick open to editor that is the target of the operation

For Ctrl+Tab it would be much better if quick open opens on the area of the editor that it targets. Once we have support for that we can also play around with using this for other quick open handlers that target the active editor (goto line, goto symbol). Though while the former is mandatory, the latter can be done as part of an experiment to measure the impact.

For now we decide to not push for it but rather revisit the icon of the overflow.


Add explanation for running example.

Thank you! I moved it to the example directory as the main readme as that's where I feel it belongs.


net/frr add disable-connected-check option

While working on an Azure setup where the neighbor isn't within visible range, we stumbled upon the "disable-connected-check" option to allow loopback addresses.
Reading a bit further there seem to be different ways of dealing with similar kind of situations.
Either by setting an ebgp-multihop ttl value or to enable the disable-connected-check option. Since the multihop didn't come with a help text, it seemed like a good idea to add at least the upstream frr one. Knowning that the current multihop fieldtype currently is wrong ("enabling" will set a ttl of 255, where it should have been a number)
Used the following resources:

https://nexp.com.ua/technologies/rns/bgp-loopbacks/
https://docs.frrouting.org/en/latest/bgp.html
https://github.com/FRRouting/frr/issues/2713

Ideally one should change the ebgp-multihop to an int some day as the current option always seems to enforce the maximum ttl when set, but this will need a migration as well.

to test:
opnsense-patch -c plugins 8b1facb

@mimugmail thanks!


Invalid string functions and/or string syntax

Overview
Upon note creation, a bunch of error messages pop up in Obsidian, detailing what looks like an invalid string function or invalid string syntax (image 1)
Steps to reproduce

Install plugin and place API key into field
Query any movie
Upon note creation on movie retrieval, error message will appear

Additional
Additionally, the actors field is not filled with data (image 2), nor is the trailer_embed field being populated with data (image 3), however I assume the YouTube 'trailer_embed' field is not being added because I have not added a YouTube API key to the plugin
Image 1

Image 2

Image 3

From reviewing the code and errors a bit, I feel the error is occurring on this line of code
However, take my analysis with a grain of salt, as I am not fluent in Typescripts and/or Javascript

Hi @Zapperz0398, This seems to be an issue in the default template, to circumvent this until i am able to push a fix you can create a custom Template file in the settings and edit the Actors field to be just {{Actors}}.
Make sure to always edit the template in source mode, as Obsidian will sometimes break the template if it is changed in live preview mode.


Active Validator number

The number of validators currently includes the sum of all bonded and unbonded validators.
We need to introduce another metric to display only active and bonded validators.

Whilst implementing this can we also introduce an "unbonded" metric so we can have a true circulating supply calculation.
The current circulating calculation current considers unbonded validators in 21 days unbond period as circulating when in reality it is not circulating until it has been withdrawn from the validator.
Unbonded = unbonded stake still locked into validator.


fix(asdf/node): dont install npm again

Defaults to using the version of npm that is present with the
installed version of node. This prevents issues where the npm latest
version requires a version of node that is not in use, and in turn,
explodes the asdf node default npm packages install step silently.

Except it was on automerge :laughing:


Text is drawing immediately

Hi, because this library doesn't support animating text, I converted my text into paths. However, the text is being drawn immediately in a oneByOne animation, before the elements defined before it.  Thanks for this library!

Hi @maxwellito, could you please help with this?

Hello!In this case, I would suspect the script that created the outlines of the text wasn’t optimised and created weird shapes. Can you try to pass your SVG in SVGOMG? I suspect it will fix the paths.SVGOMG - SVGO's Missing GUIjakearchibald.github.ioMessage ID: @.***>


Unable to add user key from the admin panel

Plugin version
v1.0.16
netbox-plugin-extensions version
None
NetBox version
v3.2.1
Python version
3.8
Steps to Reproduce
The admin panel does not let a selection for the user in the add form.
Expected Behavior
I have a few bot accounts on NetBox which do not have a usable password so we cannot log in as them to add the user key. However, as a superuser, I should be able to update their user keys to the database.
Observed Behavior
Unable to select the user from the admin form to add the user key

This is not supported and you would need to open a feature request however it is unlikely any new features will be added


Add support for returning summarized node status

Specifying the --status flag excludes the detailed (full) results of get-validator-info.
Adds some additional details to the status section.
Additional warnings

Denylisted Nodes
Mode, when not participating
Ledger Sync Status and transaction counts when the ledgers are not synced

Signed-off-by: Wade Barnes<EMAIL_ADDRESS>

These changes are to make the monitoring script useful as a troubleshooting / on-boarding tool when the full details of get-validator-info are not required.

@WadeBarnes -- looking good.  How about adding
"--net " where there are a list of networks and genesis-urls.  E.g. "--net smn" (Sovrin Mainnet), "--net sst" (Staging) "--net sbu" (Builder) -- something like that.  The list could be in an external file, but that's probably too much work -- embedded in the file is fine.  Could also have "--net vn" (VON Network) for localhost:9000/genesis.

@swcurran, I like that idea.


Show floating link editor for autolinks

Fixes #4202
I found it really confusing that the link editor menu did not show up for autolinks, to the point where I opened an issue thinking it was a bug. Apparently, this was intended, judging from the comment.
This PR makes the floating link editor show for autolinks too, as I think it's a bad UX if the link shows up as blue - looks exactly the same as normal links - but the floating link editor doesn't show up. I guess I wouldn't be the only one getting confused by this, thinking it's a bug.

Looks good to me, could you check if auto link converted to regular link if url is updated? Since it does not make sense to keep it as autolink anymore

Looks good to me, could you check if auto link converted to regular link if url is updated? Since it does not make sense to keep it as autolink anymore

Mh it's not converted currently / it stays as autolink. Is there an easy way to convert it?

With this change regular link toggle edit will stop working

With this change regular link toggle edit will stop working

The regular link toggle still works for me - can you share a screen recording?

@AlessioGr yes it works now you can ignore previous comment

Thank you! Just wanna say I didn't abandon this PR - will work on converting the autolink into a normal link once I find time ^^

Inactivity cleanup. Feel free to reopen a new PR!


Build issues on macOS on Java 9+

I have trouble building the project on macOS on Java 9+.
The issue is that libjvm.dylib has been moved from ${JAVA_HOME}/jre/lib/server to ${JAVA_HOME}/lib/server
On my system it looks like this:
/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/lib/server/libjvm.dylib
/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/lib/server/libjvm.dylib
/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/lib/server/libjvm.dylib
/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/server/libjvm.dylib
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/server/libjvm.dylib

/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/include/jni.h
/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/include/jni.h
/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/include/jni.h
/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/include/jni.h
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/include/jni.h

FYI, jni-rs uses such build script to find a libjvm: https://github.com/jni-rs/jni-rs/blob/master/build.rs#L80
There is a rough bash alternative too from exonum:
# Unfortunately, a simple `which java` will not work for some users (e.g., jenv),
# hence this a bit complex thing.
JAVA_HOME="$(java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' | awk '{print $3}')"
echo "JAVA_HOME=${JAVA_HOME}"

# Find the directory containing libjvm (the relative path has changed in Java 9).
export JAVA_LIB_DIR="$(find ${JAVA_HOME} -type f -name libjvm.\* | xargs -n1 dirname)"

I'm going to close this just because it's such an old issue and I guess it's very likely no longer an issue.
Please reopen if there's still an issue with building on macOS.


when MBProgressHUD is added to self.navaigationController.view, it conflicts with self.nanavaigationController presentViewController

the program will break  in this part, xcode says the view is nil

(id)initWithView:(UIView *)view {
NSAssert(view, @"View must not be nil.");
return [self initWithFrame:view.bounds];
}

If the view is nil here, than you're doing something wrong.

i just add the method in the rootviewcontroller

(void)initHUD{
RootHud = [[MBProgressHUD alloc] initWithView:self.view];
[self.navigationController.view addSubview:RootHud];
RootHud.customView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"error"]];
// Set custom view mode
RootHud.mode = MBProgressHUDModeCustomView;
RootHud.delegate = self;

}
and use the
[self presentViewController:modelViewController animated:YES completion:nil];
in a viewController class which inherits from rootViewController
i try to find the reason but failed. if this isn't a bug, i will try to check my code to find out where the nil comes from

I guess self.view is nil when you call that initHUD method.

thank you for your instructions


Add apha file sort and hide hidden files via config.toml

Added configuration option for alphanumeric sorting in the fille list rather than creation date/time
Added configuration option for hiding hidden files (starting with".") from the file list

Had a look at the tests. Can't make head or tail of what they're supposed to be doing, so have no clue what you want there.


Fixed LB related test cases to use new  service link format

@alena1108 , can you pelase review the changes done to use  use new  service link format.

LGTM


Xcode 10.2 - SWIFT_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0.

No matter what I try it seems this plugin is stopping me from building without downgrading my xcode back to 10.1. Does anyone have any suggestions? Is there a Fork that has migrated to a newer version of swift?

+1
also with me, my Xcode is 10.2.
I also tried this solution #157   but get some errors related to the swift compiler.

I solved it just setting Swift Language Version to Swift 4 in Xcode, see https://stackoverflow.com/a/55373853/1805493


feat!: DBTP-1002 Remove support for 100% AWS Copilot version of DBT Platform

Addresses DBTP-1002
This is a huge breaking change. I would really appreciate a multi person review!
Huge documentation cleanup to follow.
Passing end to end tests run: https://eu-west-2.console.aws.amazon.com/codesuite/codepipeline/pipelines/willg-end-to-end-tests/executions/8104488d-f2f8-4502-9f2d-4948e05cf239/visualization?region=eu-west-2

Checklist:
Title:

[x] Scope included as per conventional commits
[x] Ticket reference included (unless it's a quick out of ticket thing)

Description:

[x] Link to ticket included (unless it's a quick out of ticket thing)
[x] Includes tests (or an explanation for why it doesn't)
~[ ] If the work includes user interface changes, before and after screenshots included in description~
~[ ] Includes any applicable changes to the documentation in this code base~
~[ ] Includes link(s) to any applicable changes to the documentation in the DBT Platform Documentation (can be to a pull request)~

Tasks:

[x] Trigger the pull request regression tests for this branch and confirm that they are passing

:x: 4 Tests Failed:

Tests completed
Failed
Passed
Skipped

727
4
723
0

View the top 3 failed tests by shortest run time

tests/platform_helper/test_conduit_helpers.py::test_create_addon_client_task_abort_with_message_on_other_exceptions

Stack Traces | 0.002s run time

.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1392: in patched
    with self.decoration_helper(patched,
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1374: in decoration_helper
    arg = exit_stack.enter_context(patching)
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/contextlib.py:526: in enter_context
    result = _enter(cm)
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1463: in __enter__
    original, local = self.get_original()
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1436: in get_original
    raise AttributeError(
E   AttributeError: <module 'dbt_platform_helper.commands.conduit' from '.../dbt_platform_helper/commands/conduit.py'> does not have the attribute 'is_terraform_project'

tests/platform_helper/test_conduit_helpers.py::test_create_addon_client_task_does_not_add_execution_role_if_role_not_found

Stack Traces | 0.002s run time

.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1392: in patched
    with self.decoration_helper(patched,
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1374: in decoration_helper
    arg = exit_stack.enter_context(patching)
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/contextlib.py:526: in enter_context
    result = _enter(cm)
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1463: in __enter__
    original, local = self.get_original()
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1436: in get_original
    raise AttributeError(
E   AttributeError: <module 'dbt_platform_helper.commands.conduit' from '.../dbt_platform_helper/commands/conduit.py'> does not have the attribute 'is_terraform_project'

tests/platform_helper/test_conduit_helpers.py::test_create_addon_client_task_postgres_is_terraform

Stack Traces | 0.002s run time

.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1392: in patched
    with self.decoration_helper(patched,
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/contextlib.py:137: in __enter__
    return next(self.gen)
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1374: in decoration_helper
    arg = exit_stack.enter_context(patching)
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/contextlib.py:526: in enter_context
    result = _enter(cm)
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1463: in __enter__
    original, local = self.get_original()
.../hostedtoolcache/Python/3.12.7................../x64/lib/python3.12/unittest/mock.py:1436: in get_original
    raise AttributeError(
E   AttributeError: <module 'dbt_platform_helper.commands.conduit' from '.../dbt_platform_helper/commands/conduit.py'> does not have the attribute 'is_terraform_project'

To view individual test run time comparison to the main branch, go to the Test Analytics Dashboard

❌ 48 Tests Failed:
Tests completed	Failed	Passed	Skipped
606	48	558	0
View the top 3 failed tests by shortest run time
To view more test analytics, go to the Test Analytics Dashboard Got feedback? Let us know on Github

Does this thing update as you fix / remove / add tests in the PR?

Does this thing update as you fix / remove / add tests in the PR?

Time will tell.


aura in subfolders no longer work in force:source:push and force:source:deploy

Summary
force:source:push no longer supports aura subfolders in the source code. Prior to 7.129, this worked just fine
Steps To Reproduce:
Have a source based project with the aurain a folder structure like this:
aura
+--folder1
| \ --aura
| +--myAuraCmp1
| \ --myAuraCmp2
--myAuraCmp3
SFDX 7.146 or newer
run force:source:push or force:source:deploy
Expected result
Source push to succeed
Actual result
Deploy Errors:
Failed to handle component xxxxx, file path not expected
System Information
{
"cliVersion": "sfdx-cli/7.145.0",
"architecture": "win32-x64",
"nodeVersion": "node-v16.14.2",
"osVersion": "Windows 11"
}

Hi @zhebinliu 👋🏼
In sfdx v7.144.2  the source:* commands were migrated to use the source-deploy-retrieve library.
The previous source commands unintentionally supported that file structure, but the new library requires every aura components to be in a folder.
Try with this:
force-app/main/default/
...
aura
├── myAuraCmp1
│   ├── myAuraCmp1.cmp
│   ├── myAuraCmp1.cmp-meta.xml
├── myAuraCmp2
│   ├── myAuraCmp2.cmp
│   ├── myAuraCmp2.cmp-meta.xml
├── myAuraCmp3
│   ├── myAuraCmp3.cmp
│   ├── myAuraCmp3.cmp-meta.xml

Aura definition bundle docs: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_auradefinitionbundle.htm
With that folder layout you should be able to deploy your project, I'm going to close this issue but please let me know if that doesn't work for you, thanks!


development docs fix scaffolding 9x

docs: remove repositoryUrl from up to MES v9 scaffolding
docs: remove repositoryUrl from up to MES v9 scaffolding

closes #327


Update CODEOWNERS

Adding myself as a code owner so I can stay on top of issues and PRs filed.

No changes needing a change description found.

You can try these changes here

🛝 Playground
🌐 Website
📚 Next docs

@timotheeguerin @allenjzhang @markcowl can one of you please approve this PR?

@allenjzhang ping, plz approve.

@mario-guerra do you need to be code owner if your goal is just to be able to watch PRs?

@timotheeguerin I want to be notified when issues, discussions, and PRs are filed, is there a way to enable that without being a code owner?

You should able to watch the repo and configure more or less notifcations i believe

Thanks @timotheeguerin I didn't know that, I've signed up for the notifications I want.

so can we close that?


Removing int check in moving average

This PR closes #754

@seanpmorgan can you please take a look at it
@Hyperparticle FYI


doc: followup #89 add client demo

done by @merrymercy

Close this for now and wait for @ying1123 and @merrymercy to raise a new one.


Suggest my review. I made simple arrangements. Version 1298 continued.

https://github.com/qwertyu131/Knight-Online-Client-Source

"Suggest my review" ? What do you mean ?

Onur ben mustafa herkese acık olarak paylaştım projeyi yaptıklarımı.

I'm not sure what you're after here, since the projects appear independent we can't directly merge in changes.

I have talked with him, and he said that he just wanted to let us know of his project, so this issue can be deleted.


Is the order of batched embeddings data indeterministic?

Describe the bug
Looking over the code related to embeddings, I've noticed:
https://github.com/openai/openai-python/blob/c556584eff3b36c92278e6af62cfe02ebb68fb65/openai/embeddings_utils.py#L48-L49
Which I have not seen in the API documentation (or other examples), tho I may have missed it. Should the user expect that the order of returned batched embeddings from the API may not be deterministic and thus not be in the same order as input data?
To Reproduce
get_embeddings(["foo bar", "foo baz"])

Code snippets
No response
OS
macOS
Python version
python 3.10
Library version
0.27.4

Git blame points me to @lilianweng, would love your input please.

@lilianweng thanks! Will go ahead and PR to delete those lines to avoid future confusion. Unless you believe there's a value in keeping them.

^ @hallacy wdyt?

Seems fine. Approved and merged


Remove Unix directory separator

Use the same spelling of C: drive everywhere.

Thanks for the contribution @ofthelit !


Not adding additional zones as entities

Hi,
Good work on this.
There appears to be a problem where one multi-zone physical device presents multiple musiccast devices, for example if I use the standard yamaha_musiccast:
media_player:

platform: yamaha_musiccast
host: <IP_ADDRESS>

I see the following entities:
media_player.living_room_main
media_player.living_room_zone3
Once I change to the musiccast_yamaha:
media_player:

platform: musiccast-yamaha
host: <IP_ADDRESS>

I only see one entity:
media_player.living_room_main
Hopefully its an easy fix!
Thanks... Ben

This is just what I was looking for for, great work. Is there any way to get to additional zones to show on single devices as benjycov  described. I have a zone 2 for the patio that I can control if I set it up as yamaha_musiccast, but once I switch it to musiccast_yamaha for the grouping to work it causes the 2nd zone on the receiver to disapear.
Thanks

anyone got luck to see the additional zone?

Fixed it by:
media_player:

platform: musiccast_yamaha
host: <IP_ADDRESS>
platform: yamaha_musiccast
host: <IP_ADDRESS>

Hi arikflorida, are you sure that this fixed the issue? your 1st line is configuring the entity for the new musiccast integration, and your 2nd line is configuring the same device to the original musiccast integration. Are you actually able to group all these speakers? I am still unable to get the zone 2 on my receiver to show in the as an entity unless I use the original musiccast integration yamaha_musiccast but that platform does not give the join/unjoin speaker features that the musiccast_yamaha does.
Thanks

@timberwolf444 have you had any luck with this? I'd really love for my zone2 to show as an additional entity.

Looking into this a little bit with the HASS debug output. It looks like part of the problem is we're getting a null pointer here:
https://github.com/ppanagiotis/pymusiccast/blob/418441f7836e68562f366db017dfa27c040229d6/custom_components/musiccast_yamaha/pymusiccast.py#L97
distribution_info is null:
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 432, in _async_add_entity     await entity.async_device_update(warning=False)   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 550, in async_device_update     await task   File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run     result = self.fn(*self.args, **self.kwargs)   File "/config/custom_components/musiccast_yamaha/media_player.py", line 306, in update     self.refresh_group()   File "/config/custom_components/musiccast_yamaha/media_player.py", line 378, in refresh_group     client_entities = [e for e in entities   File "/config/custom_components/musiccast_yamaha/media_player.py", line 379, in <listcomp>     if e.ip_address in self._zone.group_clients]   File "/config/custom_components/musiccast_yamaha/pymusiccast.py", line 103, in group_clients     if not self.group_is_server:   File "/config/custom_components/musiccast_yamaha/pymusiccast.py", line 97, in group_is_server     return self._distribution_info.get('role') == 'server' and \ AttributeError: 'NoneType' object has no attribute 'get'

I have not had any luck getting the zone 2 working. It looks like someone is working on a new version.
https://github.com/home-assistant/core/pull/51561

@timberwolf444 that is awesome! I'll definitely be looking into that. In the meantime, I have sort of been able to get zone2 to work on mine. A couple of minor code tweaks (checking that distribution_info isn't null above), and then fixing this line:
https://github.com/ppanagiotis/pymusiccast/blob/1d1e9b0df22f85eb3095c34756b77078e2cc0e87/custom_components/musiccast_yamaha/pymusiccast.py#L77
You need to pass the zone_id into the super class.
This allows the second zone to be added, but it doesn't seem to work with the grouping functionality :-/ Not sure why that is just yet, but I'll keep toying with it, while I keep my eye on the rewritten integration. Thanks for the heads up!

@arikflorida @timberwolf444 I just tried out the new version and grouping works great for everything, including zone2!
Installed the component from this branch while I wait on official release:
https://github.com/vigonotion/home-assistant/tree/musiccast-grouping-2


Move documentation to Github Wiki

Instead of having a directory doc with many files, it's best to concentrate everything inside Github Wiki.

[x] Split documentation and code

Use the repository wiki section to know more about code documentation.


fix: carry over collection class name for HigherOrderCollectionProxy

[x] Added or updated tests
[x] Documented user facing changes

This PR fixes an issue where method calls and property accesses on HigherOrderCollectionProxy resulting in wrong collection class.

@canvural Are these problems related to this PR?
https://github.com/nunomaduro/larastan/actions/runs/4195712300/jobs/7275647641

Hi,
This PR just caused PHPStan to fail on our existing project:

To fix the issue we had to make the following changes:

@crynobone Should be fixed with new 2.5.0 release


Version reported by Pelican doesn't match version tagged in our production containers

Pelican Version:
Run ./pelican --version to get version number.
Pelican Service:

[ ] Client
[ ] Plugin
[ ] Registry
[ ] Director
[ ] Origin
[ ] Cache
[X ] Other (please give the detail)

Describe the bug
The osdf production container tagged v7.7.1 reports this on startup:
Starting Pelican...
Running osdf with arguments: origin serve
Version: 7.7.2-next
Build Date: 2024-04-10T19:06:08Z
Build Commit: 5a389787f5fad6d00ca7874766aff8b71826b2a6
Built By: goreleaser

To Reproduce
Run a production container and observe the version
Expected behavior
The version reported by pelican should match the version tagged by the container.

Encountered independently for v7.7.3, which reports v7.7.4-next inside the container.

@CannonLock - the collective memory was that this might be a regression and you may have understood the original fix.  Can you take a look?


Encoding traits, Path + Entry impls

Add a compact_width module
Add a max_power module
Adds Encoder and Decoder traits which work with Ufotofu consumers and producers.
Implements Encoder + Decoder on PathRc
Implements Encoder + Decoder on Entry
Adds an earthstar crate with nascent NamespaceId and IdentityId structs

These are built on top of a wip Cinn25519 implementation with validated shortnames.
I did this to implement Arbitrary on these types so we could use realistic values in fuzz tests as per #17.

This is already enough to review, I will do the relative encodings in a separate branch off of this.
Still needs:

[ ] A non-local Ufotofu dependency

@Frando

The cost is, I guess, that I have to calculate the message length in advance.

To me, the true cost is the write buffer itself. You need to allocate it, and you need to copy its contents into the channel primitive. The ufotofu design allows for zero-copy serialisation, where you write directly to the channel (even if its internal buffer is smaller than the total size of the encoding) without intermediate allocations.
This is a win, and the resulting code is also more (or, at least, quite) elegant (for example, the entry encoder).
The big drawback is having to adopt ufotofu, of course. For obvious reasons I don't consider that as a drawback conceptually, but I cannot talk away the real engineering cost (and risk?), especially since the ufotofu codebase is immature and still undergoing some changes. In particular, you'd need to code against the slice_helpers branch, which should more accurately be called refactor_all_the_things.
I'd be up for a call to help with ufotofu integration and just general high-bandwidth sharing.

You need to allocate it, and you need to copy its contents into the channel primitive.

Not necessarily. My encoder trait encodes into &mut [u8] with the invariant that the slice is at least self.encoded_len() bytes long.
My Channel::send takes item: impl Encoder, checks if the available buffer is at least item.encoded_len, yields if not, and then calls item.encode with a mut slice of the channel buffer.
It does not use MaybeUninitialized, but that is an ortogonal concern.
I do like the design of the ufotofu traits, I am just unclear if the coupling to these new and still unstable traits is required for the quite low-level encoder trait.

My encoder trait encodes into &mut [u8] with the invariant that the slice is at least self.encoded_len() bytes long.

I'm not sure whether we are talking past each other. I'm basically interested in the setting where the buffer of the channel (say, the OS-managed buffer for to write tcp data into) is smaller than the encoding. As far as I'm understanding the sentence I quoted, you'd require a channel that can allocate arbitrarily large buffers on demand, which is what the ufotofu design avoids.
Then again, the code you linked uses io::Write and not &mut [u8], and io::Write does not have this problem. Which is why I feel like I'm misunderstanding something.
In any case, the ufotofu design is pretty much the same as that of io::Write, except it fixes a couple of glaring issues (hardcoded item and error type (the latter being important for encoding), inability to pipe from reader to writer without an intermediate buffer, weirdness around uninitialised memory).

It does not use MaybeUninitialized, but that is an ortogonal concern.

Agreed. I keep switching between being happy or unhappy with the ufotofu approach. But irrespective of those feelings, it will stay the way it is, because it should have the ability to work with uninitialised memory. I just wish it was less of a pain...

interested if the encoding can be made less coupled to the io traits without perf or ergonomic downsides

Yeah, I share the sentiment, but I didn't find a satisfying way to do it. I think the ability for the channel to dictate fragment sizes is crucial, and that is what the "io<-like> traits" are all about. Buf and BufMut from bytes are surprisingly clsoe in some respects, but they have no error handling...
In my opinion, there is simply a void in terms of popular traits/apis in the rust ecosystem for general, io-like traits. And ufotofu fills that void in a - to me - satisfying manner. It just isn't a popular API (yet?).

Feel free to reach out on discord if you want to schedule a call.

Now with zero-copy Path changes merged in.

@Frando Just published ufotofu version 0.2.0 fyi, that one should be fairly stable to code against.


Javascript doesn't seem to be working on fresh app

I have setup a fresh application to play with foundation within Rails app but the javascript doesn't seem to be working:
http://outofhours.herokuapp.com/#overview
I have temporarily pushed the repo to GitHub so you can see the code and file structure:
https://github.com/dannymcc/Out-of-Hours
I am trying to get the simple tabs to work, but as you can see the tabs just stack up.

Wow - that's a great help. Thanks!
It may be helpful to know that I copied and pasted the code for the tabs and tab contents from the Foundation documentation. I assume I messed something up but it may be worth checking.


Allow for negative width/height on drawings

Since drawings cannot currently be mirrored x/y without using negative values, currently mirrored zones throw errors complaining about tokens having negative width/height. It would be nice if instead of throwing an error the negative token values were parsed as a mirror X/Y (+/- any necessary offset) to create a mirror realm type of thing.

Have you tried using the Mirror horizontally / Mirror vertically settings which are specifically intended for making mirrored clone regions? You shouldn't need to set width/height to negative values.

I will also just take the absolute width/height when cloning though just to avoid errors


OpenBSD

Here is what I found during code review of the druntime changes.
Two more things that I haven't fixed.

The sem_timedwait does a busy wait. Probably we can find a better solution using pthread_cond_timedwait.
core.sys.posix.signal.sigaction_t has an sa_restorer field.
I think this is linux only and maybe we should split the definition
instead of using version (Posix).

Overall it looks pretty good for the size of the changes.

Why didn't this end up in druntime?


Including this package breaks all my tests

running
: yarn run test
yarn run v1.22.10
$ mocha -r ts-node/register -r esm tests/**/*.test.ts

../node_modules/react-native/index.js:13
import typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/AccessibilityInfo';
       ^

SyntaxError: Invalid or unexpected token
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

any idea what this could be? Fairly new at js/ts, so it could be user error or lack of knowledge.

Not sure why you're running mocha instead of React Native, but this isn't related to this library. Looks like a typescript import error.

they are unit tests, not integration tests. how should I run them? yes, it's a typescript error, I narrowed it down to 'require' being used

This is the problem - https://github.com/nandorojo/expo-firestore-offline-persistence/blob/master/src/index.ts#L4
How do you run your unit tests if not with mocha?


The webview shakes in the scrolling component.

Steps to reproduce
1.Webview in the ListView/CustomScrollView
2.ListView expands and the content is scrollable
3.When the finger is placed on the WebView area, held down without moving, or slightly moved up and down
Expected results
Normal scrolling
Actual results
Shaking occurs
Code sample
Code sample
class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});
  final String title;
  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  late WebViewController controller;

  @override
  void initState() {
    super.initState();
    controller = WebViewController()
      ..setJavaScriptMode(JavaScriptMode.unrestricted)
      ..loadFlutterAsset("assets/hello.html");
    ;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: ListView(
        padding: const EdgeInsets.only(bottom: 100),
        children: <Widget>[
          Container(height: 300,color: Colors.amber),
          Container(height: 100,color: Colors.pink),
          Container(height: 100,color: Colors.yellow),
          Container(height: 100,color: Colors.grey),
          Container(height: 100,color: Colors.red),
          SizedBox(height: 300, child: WebViewWidget(controller: controller)),
        ],
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media
https://github.com/user-attachments/assets/dd2221e8-0e3d-4df8-a0bd-0e196bdb1ea7
here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.24.3, on Microsoft Windows [版本 10.0.22631.4460], locale zh-CN)
    • Flutter version 3.24.3 on channel stable at E:\Program Files\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (9 weeks ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at C:\Users\mxkj1\AppData\Local\Android\sdk
    • Platform android-35, build-tools 35.0.0
    • Java binary at: C:\Users\mxkj1\AppData\Local\Programs\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0--11852314)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.6.2)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.6.33723.286
    • Windows 10 SDK version 10.0.22000.0

[√] Android Studio (version 2024.2)
    • Android Studio at C:\Users\mxkj1\AppData\Local\Programs\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0--11852314)

[√] IntelliJ IDEA Ultimate Edition (version 2024.3)
    • IntelliJ at C:\Users\mxkj1\AppData\Local\Programs\IntelliJ IDEA Ultimate
    • Flutter plugin version 82.2.4
    • Dart plugin version 243.21565.120

[√] VS Code (version 1.96.0-insider)
    • VS Code at C:\Users\mxkj1\AppData\Local\Programs\Microsoft VS Code Insiders
    • Flutter extension version 3.101.20241031

[√] Connected device (4 available)
    • SM G9910 (mobile) • <IP_ADDRESS>:38797 • android-arm64  • Android 14 (API 34)
    • Windows (desktop) • windows              • windows-x64    • Microsoft Windows [版本 10.0.22631.4460]
    • Chrome (web)      • chrome               • web-javascript • Google Chrome 130.0.6723.117
    • Edge (web)        • edge                 • web-javascript • Microsoft Edge 130.0.2849.80

[√] Network resources
    • All expected network resources are available.

Thanks for the report. This is a platform issue on Android. I'm closing this issue in favor of https://github.com/flutter/flutter/issues/135531 which has been confirmed recently. Please follow up on it for updates.


The chosen app name is now being respected

A flag --app-name which sets the root app folder name (in the future also package.json "name" property)
Refactored generation service which is now simpler
Component tests against the generation module

@rluvaton Thanks for the review, appreciate the comments
Since this is the generator, I don't bother perfecting it rather concentrate on the generated code


Scaling of EEG data not 10e-6?

In my EEG data, I get inconsistent results when I look at the raw data in two ways:

I access the data directly using eeg, _ = raw[:, :].
I convert to a data_frame using df = raw.as_data_frame().

Now when I compare the actual data values, I get a ratio of 10e5. This is somewhat unexpected, because I thought the original EEG data is measured in volts and gets converted to microvolts (i.e. 10e-6) when converting to a data frame.

have a look at the as_data_frame code. It's not much used so likely to be a
bit broken.

Nevermind, I accidentally used 10e6 instead of 1e6, so everything is fine :-).


Server Problem

My server is having a error in console : http://imgur.com/KRVCaQd
Someone please help me to fix this problem anybody can join on the sv.

not critical, not a real error. look through issues - somebody has asked this already

Can you give me a link please? I need to solve this problem :(

I'd like to solve this "error", too, but here's what freaky said:
https://github.com/RocketMod/Rocket/issues/684#issuecomment-218714229
:(

hmm maybe instal mono ?
http://www.mono-project.com/docs/getting-started/install/windows/

@Uneska maybe, but I don't think that the error is of any importance... Who knows what'll happen if you actually get it to find mono.exe

hmm change location mono with source rocket mod

;p

IT IS NOT an issue...


Add scope for code-blocks with unrecognised languages

This enables third-party grammars to embed themselves into a Markdown document through injections:

This way, all a grammar needs to add to be highlighted in Markdown snippets is to add this line:
injectionSelector: "source.embedded.NAME"

Notes:

While doing this, I also stumbled across a bug where any unmarked code-block is incorrectly matched as AsciiDoc. The culprit turned out to be a stray pipe | at the end of the capturing group, which of course will match anything. EDIT 2017-04-30: Moved to a separate PR: #201
The extra pattern is necessary  for overcoming a technical limitation. See atom/first-mate#82.

Following up on this... I nearly opened a PR with the same AsciiDoc-but-not fix.

There's a huge backlog, unfortunately. The Atom folks are working on prioritised PRs first.

If a separate PR was opened just targeting the asc fix it would probably get merged a lot sooner.

Can do. Mind if I cheekily add support for embedded APL and Roff in the meantime? Heh.

Staged: #201

@50Wliu Is it worth me taking a crack at fixing the contentName bug in first-mate?

If not, well, feel free to speak up, since I'm already doing so...

@50Wliu Okay, done: atom/first-mate#95. I hope I've fixed it correctly; I'm not at all familiar with first-mate's codebase.

@50Wliu I've removed the hacky workaround I originally used to leverage atom/first-mate#95. You can merge this once that hits upstream. =)

Blocked on getting a new first-mate release out (I don't have permissions) and waiting for at least beta to pass.

Has there been a new first-mate release yet? Just wondering, I noticed the latest Atom release includes improved tokenisation performance, so I'm wondering if there's been a new module release that's unblocked this...


Use ProcessExecution for swift tasks

Use ProcessExecution instead of ShellExecution. There is no need to setup a new shell to run each swift process.

The only question this raises for me is, do we have a guarantee that swift is always going to be an absolute path? By switching to ProcessExecution, we do gain efficiency but it means that we need to build the commands without any wildcards to expand and using absolute paths. We already controlled the environment explicitly, so we shouldn't have to worry about that.

The swift executable will either be found in the $PATH or has been set to an absolute path. We currently don't build any commands with wildcards.

The swift executable will either be found in the $PATH or has been set to an absolute path. We currently don't build any commands with wildcards.

This is a problem.  AIUI, ProcessExecution will not honour PATH, it needs the absolute path to invoke.  We should be able to locate it once and cache that value and use that for the subsequent invocations.

This doesn't appear to be the case on macOS. I'm running with just swift and it works fine.

Oh, nice, in that case, LGTM!


The link to the pre-training model file is not working

Thanks for the quality work, the link to the pre-training model file seems to be dead, can you restore it? Appreciated!

Same issue, PLZ

Same issue. Please fix it.

Same issue.


i18n(fr): Updated components.mdx

What kind of changes does this PR include?

Changes or translations of Starlight docs site content

Description

What does this PR change? Give us a brief description.
Updated components.mdx based on these commits faa70de584bf596fdd7184c4a8622d67d1410ecf & dc42569bddfae2c48ea60c0dd5cc70643a129a68

Merci pour le code review @HiDeoo 😁


[CI] Enable remote_download_minimal for test jobs

This is deliberately not applied for release jobs as they need to fetch the release binary even if it is cached.

[ ] Only merge this on Wednesday after #2331 had one week to soak.