teuton 2.11.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,52 @@
1
+ [<< back](../../README.md)
2
+
3
+ # Contributing
4
+
5
+ List of things to do, classified into 3 sections:
6
+ * (A) I know read and write.
7
+ * (B) I work as IT teacher
8
+ * (C) I want to program using Ruby language
9
+
10
+ > I write this list without any criteria.
11
+ > Only an unordered list of interesting/usefull things to be done.
12
+
13
+ ## Section A
14
+
15
+ Documentation
16
+
17
+ * Revise documentation.
18
+ * Make videos showing how to use this tool
19
+ * Video about download and install this tool
20
+ * Test installation scripts
21
+ * Vídeo with Windows installation.
22
+ * Video using examples 01 to 05...
23
+ * Write a special documentation for novice
24
+
25
+ ## Section B
26
+
27
+ * Create your own (simple or complex) teuton tests.
28
+ * Upload your own tests to github.com/teuton-software/challenge repository.
29
+ * Make videos showing how to create our own tests and run it on VMs.
30
+
31
+ ## Section C
32
+
33
+ Contact with us to help develop this tool.
34
+
35
+ 1. Make sure you have Ruby installed
36
+ 1. Fork it and clone it
37
+ 1. Create your feature branch (`git checkout -b my-new-feature`)
38
+ 1. Commit your changes (`git commit -am 'Add some feature'`)
39
+ 1. Push to the branch (`git push origin my-new-feature`)
40
+ 1. Create new Pull Request.
41
+
42
+ > You can also [create issues](https://github.com/teuton-software/teuton/issues) with your requests, incidences or suggestions.
43
+
44
+ **Development environment installation**
45
+
46
+ * git clone REPO
47
+ * install ruby-dev or ruby-devel
48
+ * debian => sudo apt install ruby-dev build-essential
49
+ * debian => ssh make gcc ruby-devel
50
+ * gem install bundler
51
+ * bundle install
52
+ * rake
@@ -0,0 +1,162 @@
1
+ [<< back](../../README.md)
2
+
3
+ # Roadmap Teuton v3.0.0 - 20260209
4
+
5
+ **Cambios menores:**
6
+
7
+ * "Limpiar" las funciones "deprecated"
8
+ * Cambiar "teuton readme" por "teuton doc".
9
+ * Modificar código, documentación y los ejemplos
10
+ * Modificar los ejemplos de dvarrui/teuton-tests
11
+ * Añadir opciones de lenguaje a `teuton doc`.
12
+ * Por defecto se usará `lang=en`.
13
+ * Pero poder especificar el idioma usando el paráemetro `lang`. Por ejemplo :`teuton doc --lang=es`
14
+ * Ampliar las estadísticas de salida.
15
+ * Improve RESUME report or create stat-report, with stat information.
16
+ * the worst target/task/case,
17
+ * the best target/task/case,
18
+ * the slowest target/task/case,
19
+ * the fastest target/task/case, etc.
20
+ * Related targets: group of targets that always have the same state in every case.
21
+
22
+ **Cambios mayores:**
23
+
24
+ * Aplicar las recomendaciones del informe de seguridad de Andrés.
25
+ * Crear nueva gema `teuton-panel` (v2) que sustituirá la versión obsoleta actual.
26
+ * Modificar/ampliar las funciones de `teuton config` para facilitar el trabajo a `teuton-panel`.
27
+ * tt_include
28
+ * tt_include_params
29
+ * aplanar/desaplanar config file.
30
+ * Nueva feature "eventos".
31
+ * [Propuesta](https://github.com/dvarrui/teuton-book/blob/main/docs/03.eventos/index.md)
32
+ * Nueva gema `teuton-panel`
33
+ * Nuevo repo `teuton-book`: para documentación, tutoriales en español.
34
+
35
+ **teuton-panel (v2.0.0)**
36
+
37
+ Consultar en el repostorio `teuton-panel`. EN PROCESO!!!
38
+
39
+ * config cases IMPORTANTE:
40
+ * config/remote:
41
+ * accept-remote-config. activar/desactivar configuraciones remotas
42
+ * Acceptar post formulario y vía get curl con ruta.
43
+ * config/list: mostrar listado con info de alumnos
44
+ * Elegir ubicación de almacenamiento de las configuraciones
45
+ * run BAJA PRIORIDAD:
46
+ * Ejecutar por el profesor
47
+ * Todos
48
+ * a una selección
49
+ * El alumno solicita su propia ejecución vía curl
50
+ * every: repeticiones en bucle de I iteraciones, cada T tiempo.
51
+ * Elegir ubicación de almacenamiento de los informes
52
+ * Al finalizar cada ejecución se muestre un listado con los resultados
53
+ * readme/doc BAJA PRIORIDAD:
54
+ * activar auto "teuton doc" a página web para los alumnos.
55
+ * config panel:
56
+ * panel/new: crear fichero de configuración del panel
57
+ * panel/save: save configuración del panel
58
+
59
+ ---
60
+
61
+ # TODO list para el FUTURO
62
+
63
+ ## Ideas
64
+
65
+ Esta es una lista de ideas para que no se me olvide... lo podemos ir ajustando 😊
66
+
67
+ * **IDEA**. Editor de tests:
68
+ * Editor de tests ?! .... lo veo complejo... a menos que se empiece por una versión simplificada..
69
+ * El DSL es tan sencillo que no le veo sentido a un editor de retos.
70
+ * Pero si podemos aprovechar y crear una" librería " de los módulos más frecuentes?!... una ayuda para facilitar la creación de test... esto se puede emparejar con el editor de test...
71
+ * **SEND**. `send :email_to => :members_emails`... esto requiere que cada caso tenga un email y que además el profesor tenga configurado el acceso a su cuenta de correo... para poder enviar copias de los informes....
72
+ * **HELP**. When students demand help they could recibe some advises. More ideas: bonus, lives, etc.
73
+ * **FEATURE - SAVE STATE**:
74
+ * Save case state or progress. var/tesname/states.db ¿?
75
+ * save partial grades. Before play challenge read previous moodle.cvs.
76
+ * Then play challenge and when creates new moodle.csv... we could preseve old cases(grades) 100% for example.
77
+ * Create 2 evaluation modes:
78
+ 1. Evaluate targets (current mode): `start eval: :targets`
79
+ 1. Evaluate task: `start eval: :groups` and perhaps add group weight?
80
+ 1. config file with `tt_eval: groups`
81
+ * Propuestas de sdelquin
82
+ * Docker en vez de vagrant?? → https://www.cloudbees.com/blog/ssh-into-a-docker-container-how-to-execute-your-commands
83
+ * Tablas "bonitas" en terminal → https://github.com/piotrmurach/tty-markdown#17-table
84
+ * Documentación en https://readthedocs.org/ ??
85
+ * **DOCUMENTACION**
86
+ * Snode Dockerfile with SSH server
87
+ * **PENSAR**: Script to set **static IP**
88
+ * FEATURE: Auto Parse new input format, and detect parse errors
89
+ * **FEATURE - EXPORT**. Sign reports generated with GPG... just to verify autenticity if needed.
90
+ * **ngrok**:
91
+ * Doc ngrok use. Use cases and tutorial
92
+ * Doc host1_route combined with ngrok
93
+ * **FEATURE**: Host object so "host(:debian)" return a Host object so
94
+
95
+ ```
96
+ h = host(:debian)
97
+ h.ip -> get(:debian_ip)
98
+ h.username -> get(:debian_username)
99
+ h.password -> get(:debian_password)
100
+ h.port
101
+ h.route
102
+ h.protocol
103
+ ```
104
+
105
+ * **PENSAR**: Change export to show **command output** into reports.
106
+
107
+ ## Internal changes
108
+
109
+ * Implement "scp" over Telnet ¿?
110
+ * Default port values ssh/telnet and default username values (root, Administrator)
111
+ * Use travis
112
+ * `expect_equal "camaleon"`, same as `expect result.equal "camaleon"`.
113
+ * REVISE: verify get(:key) and get('key') works fine!
114
+ * REVISE: Formatter: xml
115
+ * HallOfFame test
116
+ * Rename Laboratory to Checker
117
+ * Unify messages ERROR, INFO, WARN. etc
118
+ * Add tt_label as alias of tt_members
119
+ * **TEST**: actualizar las pruebas con vagrant para la versión actual. Mejora de la calidad del código.
120
+ * **DOCS** PROMOCIONAR. Documentar y hacer videos. Tener foros de la comunidad o presencia en reddit o stackoverflow.... o algo parecido???
121
+
122
+ ## Docker/podman integration
123
+
124
+ Host definition example:
125
+
126
+ ```
127
+ host1_ip:
128
+ host1_port:
129
+ host1_username:
130
+ host1_password:
131
+
132
+ host1_docker_image: "debian:latest"
133
+ host1_docker_name (default value) -> "testname_hostname_case01" as dockername
134
+ host1_docker_preffix: (Code added to docker name) "idp" -> "idp_hostname_case01"
135
+
136
+ host1_docker_vol_rw: "_, _, _"
137
+ host1_docker_vol_ro: "_, _, _"
138
+ ```
139
+
140
+ * Folders to mount docker volumes
141
+ Create temp folders for every case/host.
142
+ but... When create theses folders?
143
+ (1) While running? This may be done automaticaly at running first step
144
+ It's easy but temp folders that not exists before running test
145
+ (2) Before run? New command as: "teuton create-temp" TESTNAME
146
+ It's usefull if we need to put files into temp folders (volumes)
147
+ before running test.
148
+
149
+ ```
150
+ var
151
+ └── test_1
152
+ └── tmp
153
+ ├── case01
154
+ │   ├── host1
155
+ │   └── host2
156
+ ├── case02
157
+ │   ├── host1
158
+ │   └── host2
159
+ └── case03
160
+    ├── host1
161
+    └── host2
162
+ ```
data/docs/dsl/expect.md CHANGED
@@ -97,8 +97,10 @@ run 'cat /etc/passwd'
97
97
 
98
98
  Then we can check result with:
99
99
 
100
- * **expect result.find(/obiwan|kenobi/).count.eq(1)**, expect there exists only 1 line with "obiwan" or "kenobi".
101
- * **expect result.find(/darth/).find(/vader/).count.gt(2)**, expect there exists more than 2 lines with texts "darth" and "vader".
102
- * **expect result.not_find('#').find('yoda').count.lt(3)**, expects there exists less than 3 lines with text "yoda" and without "#" symbol.
100
+ ```ruby
101
+ expect result.find(/obiwan|kenobi/).count.eq(1) # only 1 line with "obiwan" or "kenobi".
102
+ expect result.find(/darth/).find(/vader/).count.gt(2) # more than 2 lines with texts "darth" and "vader".
103
+ expect result.not_find('#').find('yoda').count.lt(3) # less than 3 lines with text "yoda" and without "#" symbol.
104
+ ```
103
105
 
104
106
  Read more about [result](result.md) object.
@@ -1,5 +1,5 @@
1
1
  module Teuton
2
- VERSION = "2.11.0"
2
+ VERSION = "3.0.0"
3
3
  APPNAME = "teuton"
4
4
  GEMNAME = "teuton"
5
5
  DOCKERNAME = "dvarrui/#{GEMNAME}"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teuton
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Vargas Ruiz
@@ -131,9 +131,9 @@ extra_rdoc_files:
131
131
  - docs/commands/readme.md
132
132
  - docs/commands/run.md
133
133
  - docs/config_file.md
134
- - docs/devel/README.md
135
- - docs/devel/contributions.md
134
+ - docs/devel/contribute.md
136
135
  - docs/devel/diagram.md
136
+ - docs/devel/todo.md
137
137
  - docs/dsl/README.md
138
138
  - docs/dsl/expect.md
139
139
  - docs/dsl/export.md
@@ -197,9 +197,9 @@ files:
197
197
  - docs/commands/readme.md
198
198
  - docs/commands/run.md
199
199
  - docs/config_file.md
200
- - docs/devel/README.md
201
- - docs/devel/contributions.md
200
+ - docs/devel/contribute.md
202
201
  - docs/devel/diagram.md
202
+ - docs/devel/todo.md
203
203
  - docs/dsl/README.md
204
204
  - docs/dsl/expect.md
205
205
  - docs/dsl/export.md
@@ -349,7 +349,7 @@ files:
349
349
  - lib/teuton/version.rb
350
350
  homepage: https://github.com/teuton-software/teuton
351
351
  licenses:
352
- - GPL-3.0
352
+ - MPL-2.0
353
353
  metadata: {}
354
354
  rdoc_options: []
355
355
  require_paths:
@@ -365,7 +365,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
365
365
  - !ruby/object:Gem::Version
366
366
  version: '0'
367
367
  requirements: []
368
- rubygems_version: 3.7.2
368
+ rubygems_version: 4.0.10
369
369
  specification_version: 4
370
370
  summary: Teuton (Infrastructure test)
371
371
  test_files: []
data/docs/devel/README.md DELETED
@@ -1,12 +0,0 @@
1
-
2
- Development process:
3
-
4
- Process
5
- git clone REPO
6
- install ruby-dev or ruby-devel
7
- debian => sudo apt install ruby-dev build-essential
8
- debian => ssh make gcc ruby-devel
9
-
10
- gem install bundler
11
- bundle install
12
- rake
@@ -1,32 +0,0 @@
1
-
2
- # TO-DO list
3
-
4
- List of things to do, classified into 3 sections:
5
- * (A) I know read and write.
6
- * (B) I work as IT teacher
7
- * (C) I want to program ruby language
8
-
9
- > I write this list without any criteria.
10
- > Only an unordered list of interesting/usefull things to be done.
11
-
12
- ## Section A
13
-
14
- Documentation
15
-
16
- * Revise documentation.
17
- * Make videos showing how to use this tool
18
- * Video about download and install this tool
19
- * Test installation scripts
20
- * Vídeo with Windows installation.
21
- * Video using examples 01 to 05...
22
- * Write a special documentation for novice
23
-
24
- ## Section B
25
-
26
- * Create your own (simple or complex) teuton tests.
27
- * Upload your own tests to github.com/teuton-software/challenge repository.
28
-
29
- ## Section C
30
-
31
- * Contact with us to help develop this tool :-)
32
-