You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by se...@apache.org on 2020/07/07 11:07:34 UTC

[whimsy] branch master updated: += create_ metthod

This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git


The following commit(s) were added to refs/heads/master by this push:
     new 4d3e6fc  += create_ metthod
4d3e6fc is described below

commit 4d3e6fc5da801224cda3421041a86750984dc711
Author: Sebb <se...@apache.org>
AuthorDate: Tue Jul 7 12:07:23 2020 +0100

    += create_ metthod
---
 lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
index 6c78056..0dfdb60 100644
--- a/lib/whimsy/asf/svn.rb
+++ b/lib/whimsy/asf/svn.rb
@@ -717,7 +717,36 @@ module ASF
         FileUtils.rm_rf tmpdir unless temp
       end
     end
-      
+
+    # DRAFT DRAFT
+    # create a new file and fail if it already exists
+    # Parameters:
+    #  directory - parent directory as an SVN URL
+    #  filename - name of file to create
+    #  source - file to upload
+    #  msg - commit message
+    #  env - user/pass
+    #  _ - wunderbar context
+    # Returns:
+    # 0 on success
+    # 1 if the file exists
+    # RuntimeError on unexpected error
+    def self.create_(directory, filename, source, msg, env, _)
+      parentrev, err = self.getInfoItem(directory, 'revision', env.user, env.password)
+      unless parentrev
+        throw RuntimeError.new("Failed to get revision for #{directory}: #{err}")
+      end
+      target = File.join(directory, filename)
+      out, err = self.svn('list', target, {env: env})
+      return 1 if out # already exists
+      # Need to check for unexpected errors; the error message does not include the full repo URL
+      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}' not found}
+        throw RuntimeError.new("#{filename} already exists! #{err}")
+      end
+      commands = [['put', source, target]]
+      self.svnmucc_(commands, msg, env, _, parentrev)
+    end
+
     # DRAFT DRAFT DRAFT
     # checkout file and update it using svnmucc put
     # the block can return additional info, which is used 


Re: ASF::SVN.create_ method used in roster-emeritus

Posted by Craig Russell <ap...@gmail.com>.
Reducing the regular expression gets past this particular error. 

err =~ %r{^svn: warning: W160013:} # file does not exist error

How specific do we want to make this test? 

Thanks,
Craig

> On Jul 9, 2020, at 10:03 AM, Craig Russell <ap...@gmail.com> wrote:
> 
> Hi Sebb,
> 
> Maybe the regular expression is too strict or doesn't cover all the cases. The code expects not only to get an error but a very specific kind of error.
> 
>       # Need to check for unexpected errors; the error message does not include the full repo URL
> unless err =~ 
> %r{^svn: warning: W160013: Path '.+#{filename}' not found}
> throw RuntimeError.new("#{filename} already exists! #{err}")
> 
> Could you tell a bit more about what you are checking for here? 
> 
> Thanks,
> Craig
> 
>> On Jul 8, 2020, at 4:00 PM, Craig Russell <apache.clr@gmail.com <ma...@gmail.com>> wrote:
>> 
>> svn: warning: W160013: URL 'https://svn.apache.org/repos/private/documents/emeritus-requests-received/clr.txt <https://svn.apache.org/repos/private/documents/emeritus-requests-received/clr.txt>' non-existent in revision 98098\nsvn: E200009: Could not list all targets because some targets don't exist\n
> 
> Craig L Russell
> clr@apache.org <ma...@apache.org>
> 

Craig L Russell
clr@apache.org


Re: ASF::SVN.create_ method used in roster-emeritus

Posted by Craig Russell <ap...@gmail.com>.
Hi Sebb,

Maybe the regular expression is too strict or doesn't cover all the cases. The code expects not only to get an error but a very specific kind of error.

      # Need to check for unexpected errors; the error message does not include the full repo URL
unless err =~ 
%r{^svn: warning: W160013: Path '.+#{filename}' not found}
throw RuntimeError.new("#{filename} already exists! #{err}")

Could you tell a bit more about what you are checking for here? 

Thanks,
Craig

> On Jul 8, 2020, at 4:00 PM, Craig Russell <ap...@gmail.com> wrote:
> 
> svn: warning: W160013: URL 'https://svn.apache.org/repos/private/documents/emeritus-requests-received/clr.txt <https://svn.apache.org/repos/private/documents/emeritus-requests-received/clr.txt>' non-existent in revision 98098\nsvn: E200009: Could not list all targets because some targets don't exist\n

Craig L Russell
clr@apache.org


Re: ASF::SVN.create_ method used in roster-emeritus

Posted by sebb <se...@gmail.com>.
I don't have time to look at it now, but here is a sample way to test
the library code:

-- cut here --
#!/usr/bin/env ruby

$LOAD_PATH.unshift '/srv/whimsy/lib'
require 'whimsy/asf'
require 'wunderbar'

def env
  Struct.new(:user, :password).new('test', nil) # as needed for SVN repo
end

name=`date +'%H-%M.tmp'`.chomp # create a new name every minute
Wunderbar.json do |_|
    rc = ASF::SVN.create_('file:////var/tools/svnrep/test',name,__FILE__,'Test',
env, _)
   puts "rc = #{rc}"
end
-- cut here --

On Thu, 9 Jul 2020 at 00:00, Craig Russell <ap...@gmail.com> wrote:
>
> I've pushed changes to roster-emeritus branch to:
> - enable sending email to secretary, cc member
> - enable creating the file emeritus-requests-received/member.txt
>
> There is a problem with the create_ function. [1]
>
> Any ideas?
>
> Thanks,
> Craig
>
> Line 83:
>   # Write the emeritus request to emeritus-requests-received
>   EMERITUS_REQUEST_URL = ASF::SVN.svnpath!('emeritus-requests-received').untaint
> 83=>  rc = ASF::SVN.create_(EMERITUS_REQUEST_URL, "#{USERID}.txt", signed_request, "Emeritus request from #{USERNAME}  (#{USERID}", env, _)
>
> [1] {
>   "exception": "#<UncaughtThrowError: uncaught throw #<RuntimeError: clr.txt already exists! svn: warning: W160013: URL 'https://svn.apache.org/repos/private/documents/emeritus-requests-received/clr.txt' non-existent in revision 98098\nsvn: E200009: Could not list all targets because some targets don't exist\n>>",
>   "backtrace": [
>     "/Users/clr/apache/git/whimsy/lib/whimsy/asf/svn.rb:757:in `throw'",
>     "/Users/clr/apache/git/whimsy/lib/whimsy/asf/svn.rb:757:in `create_'",
>     "/Users/clr/apache/git/whimsy/www/roster/views/actions/memstat.json.rb:83:in `_evaluate'",
>     "/Users/clr/apache/git/whimsy/www/roster/main.rb:204:in `block in <top (required)>'",
>     "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:225:in `call'",
>     "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:50:in `call'",
>     "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:202:in `call'",
>     "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:256:in `call'"
>   ]
> }
>
> > On Jul 8, 2020, at 2:57 PM, Craig Russell <ap...@gmail.com> wrote:
> >
> > Hi Sebb,
> >
> > Here's the code snippet from memstat.json.rb.
> >
> >   EMERITUS_REQUEST_URL = ASF::SVN.svnpath('emeritus-requests-received').untaint
> >   rc = ASF::SVN.create_(EMERITUS_REQUEST_URL, "#{USERID}.txt", signed_request, "Emeritus request from #{USERNAME}  (#{USERID}", env, _)
> >   if rc == 1 break # do nothing if there is already an emeritus request
> >
> > I'm not sure about whether if rc==1 break is correct. There is nothing else to do if there is already a pending emeritus request... And there was already an exception if there was anything else amiss.
> >
> > This is actually a lot more readable than I expected when I asked if there was a create_ function.
> >
> > Craig
> >
> >> On Jul 8, 2020, at 12:39 PM, sebb <sebbaz@gmail.com <ma...@gmail.com>> wrote:
> >>
> >> By all means test it.
> >>
> >> I think it works, however it may be necessary to change the API or
> >> behaviour which is why it is marked as draft.
> >>
> >> On Wed, 8 Jul 2020 at 19:46, Craig Russell <apache.clr@gmail.com <ma...@gmail.com>> wrote:
> >>>
> >>> Hi Sebb,
> >>>
> >>> Is this ready for testing, or should I wait?
> >>>
> >>> Thanks,
> >>> Craig
> >>>
> >>>> Begin forwarded message:
> >>>>
> >>>> From: sebb@apache.org <ma...@apache.org>
> >>>> Subject: [whimsy] branch master updated: += create_ metthod
> >>>> Date: July 7, 2020 at 4:07:34 AM PDT
> >>>> To: "commits@whimsical.apache.org <ma...@whimsical.apache.org>" <commits@whimsical.apache.org <ma...@whimsical.apache.org>>
> >>>> Reply-To: dev@whimsical.apache.org <ma...@whimsical.apache.org>
> >>>>
> >>>> This is an automated email from the ASF dual-hosted git repository.
> >>>>
> >>>> sebb pushed a commit to branch master
> >>>> in repository https://gitbox.apache.org/repos/asf/whimsy.git <https://gitbox.apache.org/repos/asf/whimsy.git>
> >>>>
> >>>>
> >>>> The following commit(s) were added to refs/heads/master by this push:
> >>>>    new 4d3e6fc  += create_ metthod
> >>>> 4d3e6fc is described below
> >>>>
> >>>> commit 4d3e6fc5da801224cda3421041a86750984dc711
> >>>> Author: Sebb <sebb@apache.org <ma...@apache.org>>
> >>>> AuthorDate: Tue Jul 7 12:07:23 2020 +0100
> >>>>
> >>>>   += create_ metthod
> >>>> ---
> >>>> lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
> >>>> 1 file changed, 30 insertions(+), 1 deletion(-)
> >>>>
> >>>> diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
> >>>> index 6c78056..0dfdb60 100644
> >>>> --- a/lib/whimsy/asf/svn.rb
> >>>> +++ b/lib/whimsy/asf/svn.rb
> >>>> @@ -717,7 +717,36 @@ module ASF
> >>>>        FileUtils.rm_rf tmpdir unless temp
> >>>>      end
> >>>>    end
> >>>> -
> >>>> +
> >>>> +    # DRAFT DRAFT
> >>>> +    # create a new file and fail if it already exists
> >>>> +    # Parameters:
> >>>> +    #  directory - parent directory as an SVN URL
> >>>> +    #  filename - name of file to create
> >>>> +    #  source - file to upload
> >>>> +    #  msg - commit message
> >>>> +    #  env - user/pass
> >>>> +    #  _ - wunderbar context
> >>>> +    # Returns:
> >>>> +    # 0 on success
> >>>> +    # 1 if the file exists
> >>>> +    # RuntimeError on unexpected error
> >>>> +    def self.create_(directory, filename, source, msg, env, _)
> >>>> +      parentrev, err = self.getInfoItem(directory, 'revision', env.user, env.password)
> >>>> +      unless parentrev
> >>>> +        throw RuntimeError.new("Failed to get revision for #{directory}: #{err}")
> >>>> +      end
> >>>> +      target = File.join(directory, filename)
> >>>> +      out, err = self.svn('list', target, {env: env})
> >>>> +      return 1 if out # already exists
> >>>> +      # Need to check for unexpected errors; the error message does not include the full repo URL
> >>>> +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}' not found}
> >>>> +        throw RuntimeError.new("#{filename} already exists! #{err}")
> >>>> +      end
> >>>> +      commands = [['put', source, target]]
> >>>> +      self.svnmucc_(commands, msg, env, _, parentrev)
> >>>> +    end
> >>>> +
> >>>>    # DRAFT DRAFT DRAFT
> >>>>    # checkout file and update it using svnmucc put
> >>>>    # the block can return additional info, which is used
> >>>>
> >>>
> >>> Craig L Russell
> >>> clr@apache.org <ma...@apache.org>
> >>>
> >
> > Craig L Russell
> > clr@apache.org <ma...@apache.org>
> >
>
> Craig L Russell
> clr@apache.org
>

Re: ASF::SVN.create_ method used in roster-emeritus

Posted by Craig Russell <ap...@gmail.com>.
I've pushed changes to roster-emeritus branch to:
- enable sending email to secretary, cc member
- enable creating the file emeritus-requests-received/member.txt

There is a problem with the create_ function. [1]

Any ideas?

Thanks,
Craig

Line 83: 
  # Write the emeritus request to emeritus-requests-received
  EMERITUS_REQUEST_URL = ASF::SVN.svnpath!('emeritus-requests-received').untaint
83=>  rc = ASF::SVN.create_(EMERITUS_REQUEST_URL, "#{USERID}.txt", signed_request, "Emeritus request from #{USERNAME}  (#{USERID}", env, _)

[1] {
  "exception": "#<UncaughtThrowError: uncaught throw #<RuntimeError: clr.txt already exists! svn: warning: W160013: URL 'https://svn.apache.org/repos/private/documents/emeritus-requests-received/clr.txt' non-existent in revision 98098\nsvn: E200009: Could not list all targets because some targets don't exist\n>>",
  "backtrace": [
    "/Users/clr/apache/git/whimsy/lib/whimsy/asf/svn.rb:757:in `throw'",
    "/Users/clr/apache/git/whimsy/lib/whimsy/asf/svn.rb:757:in `create_'",
    "/Users/clr/apache/git/whimsy/www/roster/views/actions/memstat.json.rb:83:in `_evaluate'",
    "/Users/clr/apache/git/whimsy/www/roster/main.rb:204:in `block in <top (required)>'",
    "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:225:in `call'",
    "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:50:in `call'",
    "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:202:in `call'",
    "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:256:in `call'"
  ]
}

> On Jul 8, 2020, at 2:57 PM, Craig Russell <ap...@gmail.com> wrote:
> 
> Hi Sebb,
> 
> Here's the code snippet from memstat.json.rb. 
> 
>   EMERITUS_REQUEST_URL = ASF::SVN.svnpath('emeritus-requests-received').untaint
>   rc = ASF::SVN.create_(EMERITUS_REQUEST_URL, "#{USERID}.txt", signed_request, "Emeritus request from #{USERNAME}  (#{USERID}", env, _)
>   if rc == 1 break # do nothing if there is already an emeritus request
> 
> I'm not sure about whether if rc==1 break is correct. There is nothing else to do if there is already a pending emeritus request... And there was already an exception if there was anything else amiss.
> 
> This is actually a lot more readable than I expected when I asked if there was a create_ function. 
> 
> Craig
> 
>> On Jul 8, 2020, at 12:39 PM, sebb <sebbaz@gmail.com <ma...@gmail.com>> wrote:
>> 
>> By all means test it.
>> 
>> I think it works, however it may be necessary to change the API or
>> behaviour which is why it is marked as draft.
>> 
>> On Wed, 8 Jul 2020 at 19:46, Craig Russell <apache.clr@gmail.com <ma...@gmail.com>> wrote:
>>> 
>>> Hi Sebb,
>>> 
>>> Is this ready for testing, or should I wait?
>>> 
>>> Thanks,
>>> Craig
>>> 
>>>> Begin forwarded message:
>>>> 
>>>> From: sebb@apache.org <ma...@apache.org>
>>>> Subject: [whimsy] branch master updated: += create_ metthod
>>>> Date: July 7, 2020 at 4:07:34 AM PDT
>>>> To: "commits@whimsical.apache.org <ma...@whimsical.apache.org>" <commits@whimsical.apache.org <ma...@whimsical.apache.org>>
>>>> Reply-To: dev@whimsical.apache.org <ma...@whimsical.apache.org>
>>>> 
>>>> This is an automated email from the ASF dual-hosted git repository.
>>>> 
>>>> sebb pushed a commit to branch master
>>>> in repository https://gitbox.apache.org/repos/asf/whimsy.git <https://gitbox.apache.org/repos/asf/whimsy.git>
>>>> 
>>>> 
>>>> The following commit(s) were added to refs/heads/master by this push:
>>>>    new 4d3e6fc  += create_ metthod
>>>> 4d3e6fc is described below
>>>> 
>>>> commit 4d3e6fc5da801224cda3421041a86750984dc711
>>>> Author: Sebb <sebb@apache.org <ma...@apache.org>>
>>>> AuthorDate: Tue Jul 7 12:07:23 2020 +0100
>>>> 
>>>>   += create_ metthod
>>>> ---
>>>> lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
>>>> 1 file changed, 30 insertions(+), 1 deletion(-)
>>>> 
>>>> diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
>>>> index 6c78056..0dfdb60 100644
>>>> --- a/lib/whimsy/asf/svn.rb
>>>> +++ b/lib/whimsy/asf/svn.rb
>>>> @@ -717,7 +717,36 @@ module ASF
>>>>        FileUtils.rm_rf tmpdir unless temp
>>>>      end
>>>>    end
>>>> -
>>>> +
>>>> +    # DRAFT DRAFT
>>>> +    # create a new file and fail if it already exists
>>>> +    # Parameters:
>>>> +    #  directory - parent directory as an SVN URL
>>>> +    #  filename - name of file to create
>>>> +    #  source - file to upload
>>>> +    #  msg - commit message
>>>> +    #  env - user/pass
>>>> +    #  _ - wunderbar context
>>>> +    # Returns:
>>>> +    # 0 on success
>>>> +    # 1 if the file exists
>>>> +    # RuntimeError on unexpected error
>>>> +    def self.create_(directory, filename, source, msg, env, _)
>>>> +      parentrev, err = self.getInfoItem(directory, 'revision', env.user, env.password)
>>>> +      unless parentrev
>>>> +        throw RuntimeError.new("Failed to get revision for #{directory}: #{err}")
>>>> +      end
>>>> +      target = File.join(directory, filename)
>>>> +      out, err = self.svn('list', target, {env: env})
>>>> +      return 1 if out # already exists
>>>> +      # Need to check for unexpected errors; the error message does not include the full repo URL
>>>> +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}' not found}
>>>> +        throw RuntimeError.new("#{filename} already exists! #{err}")
>>>> +      end
>>>> +      commands = [['put', source, target]]
>>>> +      self.svnmucc_(commands, msg, env, _, parentrev)
>>>> +    end
>>>> +
>>>>    # DRAFT DRAFT DRAFT
>>>>    # checkout file and update it using svnmucc put
>>>>    # the block can return additional info, which is used
>>>> 
>>> 
>>> Craig L Russell
>>> clr@apache.org <ma...@apache.org>
>>> 
> 
> Craig L Russell
> clr@apache.org <ma...@apache.org>
> 

Craig L Russell
clr@apache.org


ASF::SVN.create_ method used in roster-emeritus

Posted by Craig Russell <ap...@gmail.com>.
Hi Sebb,

Here's the code snippet from memstat.json.rb. 

  EMERITUS_REQUEST_URL = ASF::SVN.svnpath('emeritus-requests-received').untaint
  rc = ASF::SVN.create_(EMERITUS_REQUEST_URL, "#{USERID}.txt", signed_request, "Emeritus request from #{USERNAME}  (#{USERID}", env, _)
  if rc == 1 break # do nothing if there is already an emeritus request

I'm not sure about whether if rc==1 break is correct. There is nothing else to do if there is already a pending emeritus request... And there was already an exception if there was anything else amiss.

This is actually a lot more readable than I expected when I asked if there was a create_ function. 

Craig

> On Jul 8, 2020, at 12:39 PM, sebb <se...@gmail.com> wrote:
> 
> By all means test it.
> 
> I think it works, however it may be necessary to change the API or
> behaviour which is why it is marked as draft.
> 
> On Wed, 8 Jul 2020 at 19:46, Craig Russell <ap...@gmail.com> wrote:
>> 
>> Hi Sebb,
>> 
>> Is this ready for testing, or should I wait?
>> 
>> Thanks,
>> Craig
>> 
>>> Begin forwarded message:
>>> 
>>> From: sebb@apache.org
>>> Subject: [whimsy] branch master updated: += create_ metthod
>>> Date: July 7, 2020 at 4:07:34 AM PDT
>>> To: "commits@whimsical.apache.org" <co...@whimsical.apache.org>
>>> Reply-To: dev@whimsical.apache.org
>>> 
>>> This is an automated email from the ASF dual-hosted git repository.
>>> 
>>> sebb pushed a commit to branch master
>>> in repository https://gitbox.apache.org/repos/asf/whimsy.git
>>> 
>>> 
>>> The following commit(s) were added to refs/heads/master by this push:
>>>    new 4d3e6fc  += create_ metthod
>>> 4d3e6fc is described below
>>> 
>>> commit 4d3e6fc5da801224cda3421041a86750984dc711
>>> Author: Sebb <se...@apache.org>
>>> AuthorDate: Tue Jul 7 12:07:23 2020 +0100
>>> 
>>>   += create_ metthod
>>> ---
>>> lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
>>> 1 file changed, 30 insertions(+), 1 deletion(-)
>>> 
>>> diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
>>> index 6c78056..0dfdb60 100644
>>> --- a/lib/whimsy/asf/svn.rb
>>> +++ b/lib/whimsy/asf/svn.rb
>>> @@ -717,7 +717,36 @@ module ASF
>>>        FileUtils.rm_rf tmpdir unless temp
>>>      end
>>>    end
>>> -
>>> +
>>> +    # DRAFT DRAFT
>>> +    # create a new file and fail if it already exists
>>> +    # Parameters:
>>> +    #  directory - parent directory as an SVN URL
>>> +    #  filename - name of file to create
>>> +    #  source - file to upload
>>> +    #  msg - commit message
>>> +    #  env - user/pass
>>> +    #  _ - wunderbar context
>>> +    # Returns:
>>> +    # 0 on success
>>> +    # 1 if the file exists
>>> +    # RuntimeError on unexpected error
>>> +    def self.create_(directory, filename, source, msg, env, _)
>>> +      parentrev, err = self.getInfoItem(directory, 'revision', env.user, env.password)
>>> +      unless parentrev
>>> +        throw RuntimeError.new("Failed to get revision for #{directory}: #{err}")
>>> +      end
>>> +      target = File.join(directory, filename)
>>> +      out, err = self.svn('list', target, {env: env})
>>> +      return 1 if out # already exists
>>> +      # Need to check for unexpected errors; the error message does not include the full repo URL
>>> +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}' not found}
>>> +        throw RuntimeError.new("#{filename} already exists! #{err}")
>>> +      end
>>> +      commands = [['put', source, target]]
>>> +      self.svnmucc_(commands, msg, env, _, parentrev)
>>> +    end
>>> +
>>>    # DRAFT DRAFT DRAFT
>>>    # checkout file and update it using svnmucc put
>>>    # the block can return additional info, which is used
>>> 
>> 
>> Craig L Russell
>> clr@apache.org
>> 

Craig L Russell
clr@apache.org


Re: [whimsy] branch master updated: += create_ metthod

Posted by sebb <se...@gmail.com>.
By all means test it.

I think it works, however it may be necessary to change the API or
behaviour which is why it is marked as draft.

On Wed, 8 Jul 2020 at 19:46, Craig Russell <ap...@gmail.com> wrote:
>
> Hi Sebb,
>
> Is this ready for testing, or should I wait?
>
> Thanks,
> Craig
>
> > Begin forwarded message:
> >
> > From: sebb@apache.org
> > Subject: [whimsy] branch master updated: += create_ metthod
> > Date: July 7, 2020 at 4:07:34 AM PDT
> > To: "commits@whimsical.apache.org" <co...@whimsical.apache.org>
> > Reply-To: dev@whimsical.apache.org
> >
> > This is an automated email from the ASF dual-hosted git repository.
> >
> > sebb pushed a commit to branch master
> > in repository https://gitbox.apache.org/repos/asf/whimsy.git
> >
> >
> > The following commit(s) were added to refs/heads/master by this push:
> >     new 4d3e6fc  += create_ metthod
> > 4d3e6fc is described below
> >
> > commit 4d3e6fc5da801224cda3421041a86750984dc711
> > Author: Sebb <se...@apache.org>
> > AuthorDate: Tue Jul 7 12:07:23 2020 +0100
> >
> >    += create_ metthod
> > ---
> > lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
> > 1 file changed, 30 insertions(+), 1 deletion(-)
> >
> > diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
> > index 6c78056..0dfdb60 100644
> > --- a/lib/whimsy/asf/svn.rb
> > +++ b/lib/whimsy/asf/svn.rb
> > @@ -717,7 +717,36 @@ module ASF
> >         FileUtils.rm_rf tmpdir unless temp
> >       end
> >     end
> > -
> > +
> > +    # DRAFT DRAFT
> > +    # create a new file and fail if it already exists
> > +    # Parameters:
> > +    #  directory - parent directory as an SVN URL
> > +    #  filename - name of file to create
> > +    #  source - file to upload
> > +    #  msg - commit message
> > +    #  env - user/pass
> > +    #  _ - wunderbar context
> > +    # Returns:
> > +    # 0 on success
> > +    # 1 if the file exists
> > +    # RuntimeError on unexpected error
> > +    def self.create_(directory, filename, source, msg, env, _)
> > +      parentrev, err = self.getInfoItem(directory, 'revision', env.user, env.password)
> > +      unless parentrev
> > +        throw RuntimeError.new("Failed to get revision for #{directory}: #{err}")
> > +      end
> > +      target = File.join(directory, filename)
> > +      out, err = self.svn('list', target, {env: env})
> > +      return 1 if out # already exists
> > +      # Need to check for unexpected errors; the error message does not include the full repo URL
> > +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}' not found}
> > +        throw RuntimeError.new("#{filename} already exists! #{err}")
> > +      end
> > +      commands = [['put', source, target]]
> > +      self.svnmucc_(commands, msg, env, _, parentrev)
> > +    end
> > +
> >     # DRAFT DRAFT DRAFT
> >     # checkout file and update it using svnmucc put
> >     # the block can return additional info, which is used
> >
>
> Craig L Russell
> clr@apache.org
>

Re: [whimsy] branch master updated: += create_ metthod

Posted by Matt Sicker <bo...@gmail.com>.
This might not be the best example use case, my mistake. This would
probably make more sense if we had far more users. I work in the CI/CD
space, and we've generally concluded that use of feature flags is one
of those key capabilities of high performance teams [1] as it allows
trunk-based development rather than using longer-lived feature
branches. Essentially, if you're working on something in the trunk
that isn't fully baked, it's nice to ensure it doesn't get in the way
of production until it's finished basically.

[1]: https://cloud.google.com/blog/products/devops-sre/the-2019-accelerate-state-of-devops-elite-performance-productivity-and-scaling

On Thu, 9 Jul 2020 at 06:07, sebb <se...@gmail.com> wrote:
>
> Having skimmed the article, I'm not sure which code would qualify.
> In particular, a new method seems out of scope
>
> On Thu, 9 Jul 2020 at 02:04, Matt Sicker <bo...@gmail.com> wrote:
> >
> > https://www.martinfowler.com/articles/feature-toggles.html
> >
> >
> > On Wed, Jul 8, 2020 at 14:40 sebb <se...@gmail.com> wrote:
> >
> > > Sorry, I don't understand what you mean by 'feature flags'
> > >
> > > On Wed, 8 Jul 2020 at 19:55, Matt Sicker <bo...@gmail.com> wrote:
> > > >
> > > > Would be nice to mark feature flags as feature flags. We are
> > > > continuously deploying this after all :)
> > > >
> > > > On Wed, 8 Jul 2020 at 13:46, Craig Russell <ap...@gmail.com> wrote:
> > > > >
> > > > > Hi Sebb,
> > > > >
> > > > > Is this ready for testing, or should I wait?
> > > > >
> > > > > Thanks,
> > > > > Craig
> > > > >
> > > > > > Begin forwarded message:
> > > > > >
> > > > > > From: sebb@apache.org
> > > > > > Subject: [whimsy] branch master updated: += create_ metthod
> > > > > > Date: July 7, 2020 at 4:07:34 AM PDT
> > > > > > To: "commits@whimsical.apache.org" <co...@whimsical.apache.org>
> > > > > > Reply-To: dev@whimsical.apache.org
> > > > > >
> > > > > > This is an automated email from the ASF dual-hosted git repository.
> > > > > >
> > > > > > sebb pushed a commit to branch master
> > > > > > in repository https://gitbox.apache.org/repos/asf/whimsy.git
> > > > > >
> > > > > >
> > > > > > The following commit(s) were added to refs/heads/master by this push:
> > > > > >     new 4d3e6fc  += create_ metthod
> > > > > > 4d3e6fc is described below
> > > > > >
> > > > > > commit 4d3e6fc5da801224cda3421041a86750984dc711
> > > > > > Author: Sebb <se...@apache.org>
> > > > > > AuthorDate: Tue Jul 7 12:07:23 2020 +0100
> > > > > >
> > > > > >    += create_ metthod
> > > > > > ---
> > > > > > lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
> > > > > > 1 file changed, 30 insertions(+), 1 deletion(-)
> > > > > >
> > > > > > diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
> > > > > > index 6c78056..0dfdb60 100644
> > > > > > --- a/lib/whimsy/asf/svn.rb
> > > > > > +++ b/lib/whimsy/asf/svn.rb
> > > > > > @@ -717,7 +717,36 @@ module ASF
> > > > > >         FileUtils.rm_rf tmpdir unless temp
> > > > > >       end
> > > > > >     end
> > > > > > -
> > > > > > +
> > > > > > +    # DRAFT DRAFT
> > > > > > +    # create a new file and fail if it already exists
> > > > > > +    # Parameters:
> > > > > > +    #  directory - parent directory as an SVN URL
> > > > > > +    #  filename - name of file to create
> > > > > > +    #  source - file to upload
> > > > > > +    #  msg - commit message
> > > > > > +    #  env - user/pass
> > > > > > +    #  _ - wunderbar context
> > > > > > +    # Returns:
> > > > > > +    # 0 on success
> > > > > > +    # 1 if the file exists
> > > > > > +    # RuntimeError on unexpected error
> > > > > > +    def self.create_(directory, filename, source, msg, env, _)
> > > > > > +      parentrev, err = self.getInfoItem(directory, 'revision',
> > > env.user, env.password)
> > > > > > +      unless parentrev
> > > > > > +        throw RuntimeError.new("Failed to get revision for
> > > #{directory}: #{err}")
> > > > > > +      end
> > > > > > +      target = File.join(directory, filename)
> > > > > > +      out, err = self.svn('list', target, {env: env})
> > > > > > +      return 1 if out # already exists
> > > > > > +      # Need to check for unexpected errors; the error message does
> > > not include the full repo URL
> > > > > > +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}'
> > > not found}
> > > > > > +        throw RuntimeError.new("#{filename} already exists! #{err}")
> > > > > > +      end
> > > > > > +      commands = [['put', source, target]]
> > > > > > +      self.svnmucc_(commands, msg, env, _, parentrev)
> > > > > > +    end
> > > > > > +
> > > > > >     # DRAFT DRAFT DRAFT
> > > > > >     # checkout file and update it using svnmucc put
> > > > > >     # the block can return additional info, which is used
> > > > > >
> > > > >
> > > > > Craig L Russell
> > > > > clr@apache.org
> > > > >
> > > >
> > > >
> > > > --
> > > > Matt Sicker <bo...@gmail.com>
> > >
> > --
> > Matt Sicker <bo...@gmail.com>



-- 
Matt Sicker <bo...@gmail.com>

Re: [whimsy] branch master updated: += create_ metthod

Posted by sebb <se...@gmail.com>.
Having skimmed the article, I'm not sure which code would qualify.
In particular, a new method seems out of scope

On Thu, 9 Jul 2020 at 02:04, Matt Sicker <bo...@gmail.com> wrote:
>
> https://www.martinfowler.com/articles/feature-toggles.html
>
>
> On Wed, Jul 8, 2020 at 14:40 sebb <se...@gmail.com> wrote:
>
> > Sorry, I don't understand what you mean by 'feature flags'
> >
> > On Wed, 8 Jul 2020 at 19:55, Matt Sicker <bo...@gmail.com> wrote:
> > >
> > > Would be nice to mark feature flags as feature flags. We are
> > > continuously deploying this after all :)
> > >
> > > On Wed, 8 Jul 2020 at 13:46, Craig Russell <ap...@gmail.com> wrote:
> > > >
> > > > Hi Sebb,
> > > >
> > > > Is this ready for testing, or should I wait?
> > > >
> > > > Thanks,
> > > > Craig
> > > >
> > > > > Begin forwarded message:
> > > > >
> > > > > From: sebb@apache.org
> > > > > Subject: [whimsy] branch master updated: += create_ metthod
> > > > > Date: July 7, 2020 at 4:07:34 AM PDT
> > > > > To: "commits@whimsical.apache.org" <co...@whimsical.apache.org>
> > > > > Reply-To: dev@whimsical.apache.org
> > > > >
> > > > > This is an automated email from the ASF dual-hosted git repository.
> > > > >
> > > > > sebb pushed a commit to branch master
> > > > > in repository https://gitbox.apache.org/repos/asf/whimsy.git
> > > > >
> > > > >
> > > > > The following commit(s) were added to refs/heads/master by this push:
> > > > >     new 4d3e6fc  += create_ metthod
> > > > > 4d3e6fc is described below
> > > > >
> > > > > commit 4d3e6fc5da801224cda3421041a86750984dc711
> > > > > Author: Sebb <se...@apache.org>
> > > > > AuthorDate: Tue Jul 7 12:07:23 2020 +0100
> > > > >
> > > > >    += create_ metthod
> > > > > ---
> > > > > lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
> > > > > 1 file changed, 30 insertions(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
> > > > > index 6c78056..0dfdb60 100644
> > > > > --- a/lib/whimsy/asf/svn.rb
> > > > > +++ b/lib/whimsy/asf/svn.rb
> > > > > @@ -717,7 +717,36 @@ module ASF
> > > > >         FileUtils.rm_rf tmpdir unless temp
> > > > >       end
> > > > >     end
> > > > > -
> > > > > +
> > > > > +    # DRAFT DRAFT
> > > > > +    # create a new file and fail if it already exists
> > > > > +    # Parameters:
> > > > > +    #  directory - parent directory as an SVN URL
> > > > > +    #  filename - name of file to create
> > > > > +    #  source - file to upload
> > > > > +    #  msg - commit message
> > > > > +    #  env - user/pass
> > > > > +    #  _ - wunderbar context
> > > > > +    # Returns:
> > > > > +    # 0 on success
> > > > > +    # 1 if the file exists
> > > > > +    # RuntimeError on unexpected error
> > > > > +    def self.create_(directory, filename, source, msg, env, _)
> > > > > +      parentrev, err = self.getInfoItem(directory, 'revision',
> > env.user, env.password)
> > > > > +      unless parentrev
> > > > > +        throw RuntimeError.new("Failed to get revision for
> > #{directory}: #{err}")
> > > > > +      end
> > > > > +      target = File.join(directory, filename)
> > > > > +      out, err = self.svn('list', target, {env: env})
> > > > > +      return 1 if out # already exists
> > > > > +      # Need to check for unexpected errors; the error message does
> > not include the full repo URL
> > > > > +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}'
> > not found}
> > > > > +        throw RuntimeError.new("#{filename} already exists! #{err}")
> > > > > +      end
> > > > > +      commands = [['put', source, target]]
> > > > > +      self.svnmucc_(commands, msg, env, _, parentrev)
> > > > > +    end
> > > > > +
> > > > >     # DRAFT DRAFT DRAFT
> > > > >     # checkout file and update it using svnmucc put
> > > > >     # the block can return additional info, which is used
> > > > >
> > > >
> > > > Craig L Russell
> > > > clr@apache.org
> > > >
> > >
> > >
> > > --
> > > Matt Sicker <bo...@gmail.com>
> >
> --
> Matt Sicker <bo...@gmail.com>

Re: [whimsy] branch master updated: += create_ metthod

Posted by Matt Sicker <bo...@gmail.com>.
https://www.martinfowler.com/articles/feature-toggles.html


On Wed, Jul 8, 2020 at 14:40 sebb <se...@gmail.com> wrote:

> Sorry, I don't understand what you mean by 'feature flags'
>
> On Wed, 8 Jul 2020 at 19:55, Matt Sicker <bo...@gmail.com> wrote:
> >
> > Would be nice to mark feature flags as feature flags. We are
> > continuously deploying this after all :)
> >
> > On Wed, 8 Jul 2020 at 13:46, Craig Russell <ap...@gmail.com> wrote:
> > >
> > > Hi Sebb,
> > >
> > > Is this ready for testing, or should I wait?
> > >
> > > Thanks,
> > > Craig
> > >
> > > > Begin forwarded message:
> > > >
> > > > From: sebb@apache.org
> > > > Subject: [whimsy] branch master updated: += create_ metthod
> > > > Date: July 7, 2020 at 4:07:34 AM PDT
> > > > To: "commits@whimsical.apache.org" <co...@whimsical.apache.org>
> > > > Reply-To: dev@whimsical.apache.org
> > > >
> > > > This is an automated email from the ASF dual-hosted git repository.
> > > >
> > > > sebb pushed a commit to branch master
> > > > in repository https://gitbox.apache.org/repos/asf/whimsy.git
> > > >
> > > >
> > > > The following commit(s) were added to refs/heads/master by this push:
> > > >     new 4d3e6fc  += create_ metthod
> > > > 4d3e6fc is described below
> > > >
> > > > commit 4d3e6fc5da801224cda3421041a86750984dc711
> > > > Author: Sebb <se...@apache.org>
> > > > AuthorDate: Tue Jul 7 12:07:23 2020 +0100
> > > >
> > > >    += create_ metthod
> > > > ---
> > > > lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
> > > > 1 file changed, 30 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
> > > > index 6c78056..0dfdb60 100644
> > > > --- a/lib/whimsy/asf/svn.rb
> > > > +++ b/lib/whimsy/asf/svn.rb
> > > > @@ -717,7 +717,36 @@ module ASF
> > > >         FileUtils.rm_rf tmpdir unless temp
> > > >       end
> > > >     end
> > > > -
> > > > +
> > > > +    # DRAFT DRAFT
> > > > +    # create a new file and fail if it already exists
> > > > +    # Parameters:
> > > > +    #  directory - parent directory as an SVN URL
> > > > +    #  filename - name of file to create
> > > > +    #  source - file to upload
> > > > +    #  msg - commit message
> > > > +    #  env - user/pass
> > > > +    #  _ - wunderbar context
> > > > +    # Returns:
> > > > +    # 0 on success
> > > > +    # 1 if the file exists
> > > > +    # RuntimeError on unexpected error
> > > > +    def self.create_(directory, filename, source, msg, env, _)
> > > > +      parentrev, err = self.getInfoItem(directory, 'revision',
> env.user, env.password)
> > > > +      unless parentrev
> > > > +        throw RuntimeError.new("Failed to get revision for
> #{directory}: #{err}")
> > > > +      end
> > > > +      target = File.join(directory, filename)
> > > > +      out, err = self.svn('list', target, {env: env})
> > > > +      return 1 if out # already exists
> > > > +      # Need to check for unexpected errors; the error message does
> not include the full repo URL
> > > > +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}'
> not found}
> > > > +        throw RuntimeError.new("#{filename} already exists! #{err}")
> > > > +      end
> > > > +      commands = [['put', source, target]]
> > > > +      self.svnmucc_(commands, msg, env, _, parentrev)
> > > > +    end
> > > > +
> > > >     # DRAFT DRAFT DRAFT
> > > >     # checkout file and update it using svnmucc put
> > > >     # the block can return additional info, which is used
> > > >
> > >
> > > Craig L Russell
> > > clr@apache.org
> > >
> >
> >
> > --
> > Matt Sicker <bo...@gmail.com>
>
-- 
Matt Sicker <bo...@gmail.com>

Re: [whimsy] branch master updated: += create_ metthod

Posted by sebb <se...@gmail.com>.
Sorry, I don't understand what you mean by 'feature flags'

On Wed, 8 Jul 2020 at 19:55, Matt Sicker <bo...@gmail.com> wrote:
>
> Would be nice to mark feature flags as feature flags. We are
> continuously deploying this after all :)
>
> On Wed, 8 Jul 2020 at 13:46, Craig Russell <ap...@gmail.com> wrote:
> >
> > Hi Sebb,
> >
> > Is this ready for testing, or should I wait?
> >
> > Thanks,
> > Craig
> >
> > > Begin forwarded message:
> > >
> > > From: sebb@apache.org
> > > Subject: [whimsy] branch master updated: += create_ metthod
> > > Date: July 7, 2020 at 4:07:34 AM PDT
> > > To: "commits@whimsical.apache.org" <co...@whimsical.apache.org>
> > > Reply-To: dev@whimsical.apache.org
> > >
> > > This is an automated email from the ASF dual-hosted git repository.
> > >
> > > sebb pushed a commit to branch master
> > > in repository https://gitbox.apache.org/repos/asf/whimsy.git
> > >
> > >
> > > The following commit(s) were added to refs/heads/master by this push:
> > >     new 4d3e6fc  += create_ metthod
> > > 4d3e6fc is described below
> > >
> > > commit 4d3e6fc5da801224cda3421041a86750984dc711
> > > Author: Sebb <se...@apache.org>
> > > AuthorDate: Tue Jul 7 12:07:23 2020 +0100
> > >
> > >    += create_ metthod
> > > ---
> > > lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
> > > 1 file changed, 30 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
> > > index 6c78056..0dfdb60 100644
> > > --- a/lib/whimsy/asf/svn.rb
> > > +++ b/lib/whimsy/asf/svn.rb
> > > @@ -717,7 +717,36 @@ module ASF
> > >         FileUtils.rm_rf tmpdir unless temp
> > >       end
> > >     end
> > > -
> > > +
> > > +    # DRAFT DRAFT
> > > +    # create a new file and fail if it already exists
> > > +    # Parameters:
> > > +    #  directory - parent directory as an SVN URL
> > > +    #  filename - name of file to create
> > > +    #  source - file to upload
> > > +    #  msg - commit message
> > > +    #  env - user/pass
> > > +    #  _ - wunderbar context
> > > +    # Returns:
> > > +    # 0 on success
> > > +    # 1 if the file exists
> > > +    # RuntimeError on unexpected error
> > > +    def self.create_(directory, filename, source, msg, env, _)
> > > +      parentrev, err = self.getInfoItem(directory, 'revision', env.user, env.password)
> > > +      unless parentrev
> > > +        throw RuntimeError.new("Failed to get revision for #{directory}: #{err}")
> > > +      end
> > > +      target = File.join(directory, filename)
> > > +      out, err = self.svn('list', target, {env: env})
> > > +      return 1 if out # already exists
> > > +      # Need to check for unexpected errors; the error message does not include the full repo URL
> > > +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}' not found}
> > > +        throw RuntimeError.new("#{filename} already exists! #{err}")
> > > +      end
> > > +      commands = [['put', source, target]]
> > > +      self.svnmucc_(commands, msg, env, _, parentrev)
> > > +    end
> > > +
> > >     # DRAFT DRAFT DRAFT
> > >     # checkout file and update it using svnmucc put
> > >     # the block can return additional info, which is used
> > >
> >
> > Craig L Russell
> > clr@apache.org
> >
>
>
> --
> Matt Sicker <bo...@gmail.com>

Re: [whimsy] branch master updated: += create_ metthod

Posted by Matt Sicker <bo...@gmail.com>.
Would be nice to mark feature flags as feature flags. We are
continuously deploying this after all :)

On Wed, 8 Jul 2020 at 13:46, Craig Russell <ap...@gmail.com> wrote:
>
> Hi Sebb,
>
> Is this ready for testing, or should I wait?
>
> Thanks,
> Craig
>
> > Begin forwarded message:
> >
> > From: sebb@apache.org
> > Subject: [whimsy] branch master updated: += create_ metthod
> > Date: July 7, 2020 at 4:07:34 AM PDT
> > To: "commits@whimsical.apache.org" <co...@whimsical.apache.org>
> > Reply-To: dev@whimsical.apache.org
> >
> > This is an automated email from the ASF dual-hosted git repository.
> >
> > sebb pushed a commit to branch master
> > in repository https://gitbox.apache.org/repos/asf/whimsy.git
> >
> >
> > The following commit(s) were added to refs/heads/master by this push:
> >     new 4d3e6fc  += create_ metthod
> > 4d3e6fc is described below
> >
> > commit 4d3e6fc5da801224cda3421041a86750984dc711
> > Author: Sebb <se...@apache.org>
> > AuthorDate: Tue Jul 7 12:07:23 2020 +0100
> >
> >    += create_ metthod
> > ---
> > lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
> > 1 file changed, 30 insertions(+), 1 deletion(-)
> >
> > diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
> > index 6c78056..0dfdb60 100644
> > --- a/lib/whimsy/asf/svn.rb
> > +++ b/lib/whimsy/asf/svn.rb
> > @@ -717,7 +717,36 @@ module ASF
> >         FileUtils.rm_rf tmpdir unless temp
> >       end
> >     end
> > -
> > +
> > +    # DRAFT DRAFT
> > +    # create a new file and fail if it already exists
> > +    # Parameters:
> > +    #  directory - parent directory as an SVN URL
> > +    #  filename - name of file to create
> > +    #  source - file to upload
> > +    #  msg - commit message
> > +    #  env - user/pass
> > +    #  _ - wunderbar context
> > +    # Returns:
> > +    # 0 on success
> > +    # 1 if the file exists
> > +    # RuntimeError on unexpected error
> > +    def self.create_(directory, filename, source, msg, env, _)
> > +      parentrev, err = self.getInfoItem(directory, 'revision', env.user, env.password)
> > +      unless parentrev
> > +        throw RuntimeError.new("Failed to get revision for #{directory}: #{err}")
> > +      end
> > +      target = File.join(directory, filename)
> > +      out, err = self.svn('list', target, {env: env})
> > +      return 1 if out # already exists
> > +      # Need to check for unexpected errors; the error message does not include the full repo URL
> > +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}' not found}
> > +        throw RuntimeError.new("#{filename} already exists! #{err}")
> > +      end
> > +      commands = [['put', source, target]]
> > +      self.svnmucc_(commands, msg, env, _, parentrev)
> > +    end
> > +
> >     # DRAFT DRAFT DRAFT
> >     # checkout file and update it using svnmucc put
> >     # the block can return additional info, which is used
> >
>
> Craig L Russell
> clr@apache.org
>


-- 
Matt Sicker <bo...@gmail.com>

Fwd: [whimsy] branch master updated: += create_ metthod

Posted by Craig Russell <ap...@gmail.com>.
Hi Sebb,

Is this ready for testing, or should I wait?

Thanks,
Craig

> Begin forwarded message:
> 
> From: sebb@apache.org
> Subject: [whimsy] branch master updated: += create_ metthod
> Date: July 7, 2020 at 4:07:34 AM PDT
> To: "commits@whimsical.apache.org" <co...@whimsical.apache.org>
> Reply-To: dev@whimsical.apache.org
> 
> This is an automated email from the ASF dual-hosted git repository.
> 
> sebb pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/whimsy.git
> 
> 
> The following commit(s) were added to refs/heads/master by this push:
>     new 4d3e6fc  += create_ metthod
> 4d3e6fc is described below
> 
> commit 4d3e6fc5da801224cda3421041a86750984dc711
> Author: Sebb <se...@apache.org>
> AuthorDate: Tue Jul 7 12:07:23 2020 +0100
> 
>    += create_ metthod
> ---
> lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
> 1 file changed, 30 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
> index 6c78056..0dfdb60 100644
> --- a/lib/whimsy/asf/svn.rb
> +++ b/lib/whimsy/asf/svn.rb
> @@ -717,7 +717,36 @@ module ASF
>         FileUtils.rm_rf tmpdir unless temp
>       end
>     end
> -      
> +
> +    # DRAFT DRAFT
> +    # create a new file and fail if it already exists
> +    # Parameters:
> +    #  directory - parent directory as an SVN URL
> +    #  filename - name of file to create
> +    #  source - file to upload
> +    #  msg - commit message
> +    #  env - user/pass
> +    #  _ - wunderbar context
> +    # Returns:
> +    # 0 on success
> +    # 1 if the file exists
> +    # RuntimeError on unexpected error
> +    def self.create_(directory, filename, source, msg, env, _)
> +      parentrev, err = self.getInfoItem(directory, 'revision', env.user, env.password)
> +      unless parentrev
> +        throw RuntimeError.new("Failed to get revision for #{directory}: #{err}")
> +      end
> +      target = File.join(directory, filename)
> +      out, err = self.svn('list', target, {env: env})
> +      return 1 if out # already exists
> +      # Need to check for unexpected errors; the error message does not include the full repo URL
> +      unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}' not found}
> +        throw RuntimeError.new("#{filename} already exists! #{err}")
> +      end
> +      commands = [['put', source, target]]
> +      self.svnmucc_(commands, msg, env, _, parentrev)
> +    end
> +
>     # DRAFT DRAFT DRAFT
>     # checkout file and update it using svnmucc put
>     # the block can return additional info, which is used 
> 

Craig L Russell
clr@apache.org