tarantool / tt

Command-line utility to manage Tarantool applications
Other
99 stars 11 forks source link

Consider extending default ignore list on pack #810

Open DifferentialOrange opened 5 months ago

DifferentialOrange commented 5 months ago

Now tt pack ignores some files (for example, .git and .gitignore) on artifact packing by default. There are some popular scenarios that seems to better be covered by default.

Command packs previous artifact

$ tt create vshard_cluster --name myapp290324
   • Creating application in "/home/moiseevgeorgy/Development/sandbox/myapp290324"
   • Using built-in 'vshard_cluster' template.
Bucket count (default: 3000): 
Storage replication sets count (default: 2): 
Storage replicas per replication set count (>=2) (default: 2): 
Routers count (default: 1): 
   • Application 'myapp290324' created successfully
What's next?
Build and start 'myapp290324' application:
    $ tt build myapp290324
    $ tt start myapp290324

Pay attention that default passwords were generated,
you can change it in the config.yaml.
$ cd ./myapp290324/
$ tt init
$ tt pack
$ tt pack tgz
   • Generating new tt.yaml for the new package
   • Apps to pack: myapp290324 
   • Running rocks make       
No existing manifest. Attempting to rebuild...
   • Application was successfully built
   • myapp290324 rocks are built successfully
   • Creating tarball.        
   • Bundle is packed successfully to /home/moiseevgeorgy/Development/sandbox/myapp290324/myapp290324-0.1.0.0.x86_64.tar.gz.
$ tar -ztvf myapp290324-0.1.0.0.x86_64.tar.gz 
drwx------ moiseevgeorgy/moiseevgeorgy 0 2024-03-29 17:53 .
drwxr-x--- moiseevgeorgy/moiseevgeorgy 0 2024-03-29 17:53 bin
...
drwxr-x--- moiseevgeorgy/moiseevgeorgy        0 2024-03-29 17:53 myapp290324/templates
-rw-r--r-- moiseevgeorgy/moiseevgeorgy     1495 2024-03-29 17:53 myapp290324/tt.yaml
-rw-rw-r-- moiseevgeorgy/moiseevgeorgy      365 2024-03-29 17:53 tt.yaml

Rebuild the artifact after some changes.

$ tt pack tgz
$ tar -ztvf myapp290324-0.1.0.0.x86_64.tar.gz 
drwx------ moiseevgeorgy/moiseevgeorgy 0 2024-03-29 17:55 .
drwxr-x--- moiseevgeorgy/moiseevgeorgy 0 2024-03-29 17:55 bin
...
-rw-rw-r-- moiseevgeorgy/moiseevgeorgy 25630806 2024-03-29 17:55 myapp290324/myapp290324-0.1.0.0.x86_64.tar.gz
...
drwxr-x--- moiseevgeorgy/moiseevgeorgy        0 2024-03-29 17:55 myapp290324/templates
-rw-r--r-- moiseevgeorgy/moiseevgeorgy     1495 2024-03-29 17:55 myapp290324/tt.yaml
-rw-rw-r-- moiseevgeorgy/moiseevgeorgy      365 2024-03-29 17:55 tt.yaml

Rebuild the artifact after more changes.

$ tt pack tgz
$ tar -ztvf myapp290324-0.1.0.0.x86_64.tar.gz 
drwx------ moiseevgeorgy/moiseevgeorgy 0 2024-03-29 17:56 .
drwxr-x--- moiseevgeorgy/moiseevgeorgy 0 2024-03-29 17:56 bin
...
-rw-rw-r-- moiseevgeorgy/moiseevgeorgy 51182800 2024-03-29 17:56 myapp290324/myapp290324-0.1.0.0.x86_64.tar.gz
...
-rw-r--r-- moiseevgeorgy/moiseevgeorgy     1495 2024-03-29 17:56 myapp290324/tt.yaml
-rw-rw-r-- moiseevgeorgy/moiseevgeorgy      365 2024-03-29 17:56 tt.yaml

And so on.

Command packs credentials file

$ cat tt.yaml
ee:
  credential_path: ./credentials.txt
$ cat credentials.txt
mylogin
mypassword
$ tt pack tgz
$ tar -ztvf myapp290324-0.1.0.0.x86_64.tar.gz
drwx------ moiseevgeorgy/moiseevgeorgy 0 2024-03-29 18:03 .
drwxr-x--- moiseevgeorgy/moiseevgeorgy 0 2024-03-29 18:03 bin
...
-rw------- moiseevgeorgy/moiseevgeorgy       20 2024-03-29 18:03 myapp290324/credentials.txt
...
-rw-r--r-- moiseevgeorgy/moiseevgeorgy      1495 2024-03-29 18:03 myapp290324/tt.yaml
-rw-rw-r-- moiseevgeorgy/moiseevgeorgy       365 2024-03-29 18:03 tt.yaml
psergee commented 5 months ago

Why do we need to chdir to the application directory and create one more env there? Why is this a popular scenario?

DifferentialOrange commented 5 months ago

Why do we need to chdir to the application directory and create one more env there?

I chdir to application directory to develop my application. I create env per application since this is the way I usually work with local environment: Lua rocks, Python venv, git. If it is forbidden, let's forbid to work like this in documentation and, if possible, with tt init call. As far as I remember env discussions, it was planned that env inside the application is fine.

Why is this a popular scenario?

Do we have any statistics or independent research on non-tt developers which scenarios are popular? I think we're not.

DifferentialOrange commented 5 months ago

tt init --help says

Create tt environment config for application in current directory

and for me it sounds like it encourages to create per-application env, not forbids it.

psergee commented 5 months ago

let's forbid to work like this in documentation

Cannot be forbidden due to cartridge-cli compatibility.

Do we have any statistics or independent research on non-tt developers which scenarios are popular?

There are some popular scenarios

Please ask the author of the comment above.

DifferentialOrange commented 5 months ago

Please ask the author of the comment above.

Yeah, that's fair. Do we have a proper step-by-step guide on how to work with tt-compatible application (full cycle, not separate commands)? It seems that my understanding of the approach is not the same as you have.

DifferentialOrange commented 5 months ago

By popular scenarios, I have meant "re-pack application that has been packed some time ago" and "pack application if I work with credentials". If my issues do not directly tied to these but to some other things -- let's at least fixate it here.